gdal 影像投影坐标转换成地理坐标 python
时间: 2023-07-01 20:28:52 浏览: 250
可以使用GDAL库中的`osr`模块来进行坐标转换。以下是一个示例代码,将投影坐标转换为地理坐标:
```python
from osgeo import gdal, osr
# 打开影像
ds = gdal.Open('image.tif')
# 获取投影坐标系
proj = ds.GetProjection()
# 创建投影坐标系对象
in_proj = osr.SpatialReference()
in_proj.ImportFromWkt(proj)
# 获取地理坐标系
geo_proj = in_proj.CloneGeogCS()
# 创建地理坐标系对象
out_proj = osr.SpatialReference()
out_proj.ImportFromEPSG(4326) # WGS84经纬度坐标系
# 创建投影转换对象
transform = osr.CoordinateTransformation(in_proj, out_proj)
# 获取影像尺寸
cols = ds.RasterXSize
rows = ds.RasterYSize
# 获取左上角和右下角像素的投影坐标
gt = ds.GetGeoTransform()
x_min, y_max = gt[0], gt[3]
x_max = gt[0] + gt[1] * cols
y_min = gt[3] + gt[5] * rows
# 投影坐标转地理坐标
ulx, uly, _ = transform.TransformPoint(x_min, y_max)
lrx, lry, _ = transform.TransformPoint(x_max, y_min)
# 输出地理坐标范围
print("左上角坐标:({:.6f}, {:.6f})".format(ulx, uly))
print("右下角坐标:({:.6f}, {:.6f})".format(lrx, lry))
```
其中,`osr.SpatialReference()`用于创建投影或地理坐标系对象,`osr.CoordinateTransformation()`用于创建投影转换对象,`TransformPoint()`方法用于进行坐标转换。这里示例的目标地理坐标系是WGS84经纬度坐标系,可以根据需要修改。
阅读全文