回答:
一般的な意味では、任意のラスターファイル形式で使用できるアフィン変換パラメーターを使用します。GDALでは、これはGetGeoTransform()またはPostGISのST_GeoReference()関数で使用できます。これらの6つのパラメーターを見つけた後、パラメーターがどれかを判別するだけで、線形空間で変換する関数を作成できます。
たとえば、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)には以下が含まれます。