Answers:
从一般意义上讲,使用仿射变换参数,该参数应可用于任何栅格文件格式。对于GDAL,可通过GetGeoTransform()或PostGIS的ST_GeoReference()函数使用。找到这六个参数后,只需确定一个参数即可,然后可以制作一个函数以在线性空间中进行变换。
例如,使用Python:
from osgeo import gdal
ds = gdal.Open('myfile.tif')
# unravel GDAL affine transform parameters
c, a, b, f, d, e = ds.GetGeoTransform()
def pixel2coord(col, row):
"""Returns global coordinates to pixel center using base-0 raster index"""
xp = a * col + b * row + a * 0.5 + b * 0.5 + c
yp = d * col + e * row + d * 0.5 + e * 0.5 + f
return(xp, yp)
例如,如果在col = 10,row = 22处有一个像素,则到像素中心的实际坐标为:
>>> pixel2coord(10, 22)
(2780000.0, 6162300.0)
可以使用ST_Affine()为PostGIS 编写类似的内容。
GeoTIFF随附的世界文件(.tfw)包含: