任何人都可以帮我解决SetGeoTransform的参数吗?我正在使用GDAL创建栅格图层,但我无法找到SetGeoTransform的第3和第5参数的说明。它应该是细胞的x和y轴的定义。我尝试找到关于它here和here的内容,但没有。
我需要找到这两个参数的描述......它是以度,弧度,米为单位的值?或其他什么?
答案 0 :(得分:7)
地理转换用于将地图转换为像素坐标,并使用仿射变换返回。如果您的图像没有“向北”,则使用第3个和第5个参数(与第2个和第4个一起)来定义旋转。
但是大多数图像是向北,然后第3和第5参数都是零。
仿射变换由返回的六个系数组成 GDALDataset :: GetGeoTransform()将像素/线坐标映射到 使用以下关系的地理参考空间:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
请参阅以下关于仿射地理变换的部分: http://www.gdal.org/gdal_datamodel.html
答案 1 :(得分:1)
鉴于上述gdal datamodel docs的信息,SatGeoTransform
的第三和第五参数(分别为x_skew
和y_skew
)可以从两个控制点({{1 }},p1
)在“ geo”和“ pixel”坐标空间中的x和y已知。 p2
应该位于像素空间中p1
的左上方。
p2
简而言之,这是地理空间中各点之间的欧式距离与像素空间中图像的高度(或宽度)之比。
参数的单位为x_skew = sqrt((p1.geox-p2.geox)**2 + (p1.geoy-p2.geoy)**2) / (p1.pixely - p2.pixely)`
y_skew = sqrt((p1.geox-p2.geox)**2 + (p1.geoy-p2.geoy)**2) / (p1.pixelx - p2.pixelx)`
。
这是一个使用图像的角作为控制点("geo"length/"pixel"length
)的演示:
gcps