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文件完成几何校正。

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值