python+GDAL给图像设置地理参考(GeoTransform和Projection的设置)

使用GDAL给遥感影像设置地理参考和投影,分别设置两个参数:GeoTransform和Projection。对于没有附带地理信息的影像,需要从其它途径获取参数,如xml等元数据。

GDAL 中,GeoTransform是一个六个元素的元组。六个参数分别为:

(左上角x坐标, 水平分辨率,旋转参数, 左上角y坐标,旋转参数,-垂直分辨率)

应该注意,最后一个参数是负值,旋转参数一般是0。而对于没有投影的图像(如WGS 84只有地理坐标系),它的分辨率不是以米位单位,而是经纬度,所以不能简单地指定分辨率这两个参数。我是通过获取xml元数据中的经纬度范围和图像尺寸(像素数)计算得到的。如:

Lon_Res = (TopRightLongitude - TopLeftLongitude) / (float(ysize))
Lat_Res = (TopLeftLatitude - BottomLeftLatitude) / (float(xsize))

通过6个参数,就能确定图像在地理空间的位置。投影信息只需指定ESPG代码。代码如下:

# 设置geotransform。只需要左上角经纬度和横纵分辨率。
geotransform = (TopLeftLongitude, Lon_Res, 0, TopLeftLatitude, 0, -Lat_Res)
out_img.SetGeoTransform(geotransform)                  # 设置投影坐标

# 获取地理坐标系统信息,用于选取需要的地理坐标系统
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)  # 定义输出的坐标系为"WGS 84"
out_img.SetProjection(srs.ExportToWkt())  # 给新建图层赋予投影信息

完成地理参考设置后,图像在地理空间中的位置就确定了,在arcgis加载的效果如下:

而实际效果应该为:

可以看出,设置地理参考后,能够将图像呈现在对的位置(左上角坐标和分辨率固定),但无法纠正其几何形变。对高分影像而言,几何校正需要结合提供的rpb文件完成。下一步将使用rpb文件完成几何校正。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年5月19日
下一篇 2022年5月19日

相关推荐