python gdal 影像 地理坐标转投影坐标
时间: 2023-11-06 14:19:23 浏览: 159
地理坐标与投影坐标之间的转换
在 GDAL 中,可以通过 `osr` 模块中的 `SpatialReference` 和 `CoordinateTransformation` 类来实现地理坐标与投影坐标的转换。下面是一个简单的例子:
```python
from osgeo import gdal, osr
# 定义源影像和目标影像的文件路径
src_file = 'input.tif'
dst_file = 'output.tif'
# 定义目标投影
dst_proj = 'EPSG:32650' # 例如,设置目标坐标系为 WGS84 UTM Zone 50N
# 打开源影像文件
src_ds = gdal.Open(src_file)
# 获取源影像的地理信息和投影信息
src_geo = src_ds.GetGeoTransform()
src_proj = osr.SpatialReference()
src_proj.ImportFromWkt(src_ds.GetProjection())
# 定义目标投影
dst_proj = osr.SpatialReference()
dst_proj.SetFromUserInput(dst_proj)
# 创建坐标转换对象
coord_trans = osr.CoordinateTransformation(src_proj, dst_proj)
# 计算转换后的坐标
x, y, _ = coord_trans.TransformPoint(src_geo[0], src_geo[3])
# 输出转换后的坐标
print('X: {}'.format(x))
print('Y: {}'.format(y))
# 关闭影像文件
src_ds = None
```
在上面的例子中,我们打开了一个名为 `input.tif` 的影像文件,并获取了其地理信息和投影信息。然后,我们定义了一个名为 `dst_proj` 的目标投影,创建了一个名为 `coord_trans` 的坐标转换对象,并使用 `coord_trans.TransformPoint` 方法计算了转换后的坐标。最后,我们输出了转换后的坐标,并关闭了影像文件。
需要注意的是,在上面的例子中,我们使用了 `osr.SpatialReference.SetFromUserInput` 方法来设置目标投影,该方法可以根据用户输入的字符串自动识别投影坐标系。如果你已经知道目标投影的 EPSG 代码或 WKT 字符串,也可以使用 `osr.SpatialReference.ImportFromEPSG` 或 `osr.SpatialReference.ImportFromWkt` 方法来设置目标投影。
阅读全文