python 地理坐标与投影坐标的转换

本文详细介绍了如何使用Python进行地理坐标(WGS84)与投影坐标(UTM, Albers)之间的相互转换,包括从影像中获取投影信息进行转换的方法。" 125604090,12055531,"HTML表单详解:action, method与input标签
摘要由CSDN通过智能技术生成
1. 地理坐标(WGS84)与投影坐标(UTM)的相互转换
from pyproj import Proj

# 首先定义要转换的投影坐标系
proj1 = Proj("epsg:32601")  
'''
epsg编号通过epsg官网或者arcmap中查询获得,此为WGS 84 / UTM zone 1N投影
或者p1 = Proj('+proj=utm +zone=1 +datum=WGS84 +units=m +no_defs')
'''
lon1,lat1 = proj1(133.0884,47.0982
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`是目标坐标系统的对象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值