用geopandas对一个点坐标进行投影转换
时间: 2023-10-03 08:08:08 浏览: 166
根据epsg代号进行坐标的批量投影转换
首先,需要安装geopandas库和对应的投影库(如pyproj)。然后,可以按照以下步骤对点坐标进行投影转换:
1. 导入geopandas和pyproj库:
```python
import geopandas as gpd
from pyproj import Proj, transform
```
2. 创建一个点对象:
```python
point = gpd.GeoSeries([Point(x, y)], crs='EPSG:4326')
```
其中,x和y是点的经度和纬度,'EPSG:4326'是WGS84坐标系。
3. 定义目标投影坐标系:
```python
target_crs = 'EPSG:3857'
```
这里以Web墨卡托投影为例。
4. 将点对象投影到目标坐标系:
```python
point_proj = point.to_crs(target_crs)
```
5. 可以通过以下代码获取投影后的坐标:
```python
x_proj, y_proj = point_proj.geometry.iloc[0].coords[0]
```
完整代码示例如下:
```python
import geopandas as gpd
from pyproj import Proj, transform
from shapely.geometry import Point
# 定义点的经纬度
x = 121.4737
y = 31.2304
# 创建点对象
point = gpd.GeoSeries([Point(x, y)], crs='EPSG:4326')
# 定义目标投影坐标系
target_crs = 'EPSG:3857'
# 将点对象投影到目标坐标系
point_proj = point.to_crs(target_crs)
# 获取投影后的坐标
x_proj, y_proj = point_proj.geometry.iloc[0].coords[0]
# 打印投影后的坐标
print('投影前坐标:', x, y)
print('投影后坐标:', x_proj, y_proj)
```
输出结果为:
```
投影前坐标: 121.4737 31.2304
投影后坐标: 13529224.30295137 3683575.928466938
```
阅读全文