Python地理坐标批量转投影坐标
时间: 2024-09-17 20:05:10 浏览: 66
3857投影坐标和4326地理坐标互转的python代码
在Python中,如果你需要将大量地理坐标(通常是经纬度)从一种投影系统转换到另一种投影系统,可以使用GDAL库,它提供了强大的地理空间数据处理功能。以下是一个简单的步骤示例:
首先,你需要安装GDAL库,如果尚未安装,可以使用pip安装:
```bash
pip install gdal
```
然后,你可以使用以下代码结构:
```python
from osgeo import ogr
def coordinates_transform(input_file, output_file, src_proj, dst_proj):
# 创建源数据对象
source_layer = ogr.Open(input_file)
# 检查文件是否有效
if not source_layer:
print(f"无法打开 {input_file}")
return
# 获取源数据层
source_layer = source_layer.GetLayer()
# 创建输出文件
driver = ogr.GetDriverByName("GeoJSON")
out_datasource = driver.CreateDataSource(output_file)
out_layer = out_datasource.CreateLayer("output", geom_type=ogr.wkbPoint, srs=dst_proj)
# 迭代每条记录
for feature in source_layer:
geom = feature.GetGeometryRef()
# 转换坐标系
transform = osr.CoordinateTransformation(src_proj, dst_proj)
transformed_point = geom.Clone()
transformed_point.Transform(transform)
# 创建新特征
new_feature = ogr.Feature(out_layer.GetLayerDefn())
new_feature.SetGeometry(transformed_point)
out_layer.CreateFeature(new_feature)
# 清理
source_layer.Destroy()
out_datasource.Destroy()
# 使用函数,例如将WGS84坐标转换到UTM
input_file = 'your_input_file.geojson' # 输入的包含地理坐标的文件
output_file = 'output_transformed.geojson' # 输出转换后的文件
src_proj = osr.SpatialReference.WKTFromEPSG(4326) # WGS84
dst_proj = osr.SpatialReference.WKTFromEPSG(32632) # UTM Zone 32N
coordinates_transform(input_file, output_file, src_proj, dst_proj)
```
这里的`input_file`是你含有地理坐标的 GeoJSON、CSV或其他支持的格式,`output_file`是你期望得到的转换后的数据源,`src_proj`是原始坐标系统的Spatial Reference对象,`dst_proj`是目标坐标系统的对象。
阅读全文