使用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文件完成几何校正。
文章出处登录后可见!
已经登录?立即刷新