GeoTIFF dosyası piksel piksel veritabanında depolamak istiyorum. GeoTIFF görüntü üzerinde piksel / lat ile birlikte piksel değerleri depolamak gerekir. Bunu yapmak mümkün mü?
GeoTIFF dosyası piksel piksel veritabanında depolamak istiyorum. GeoTIFF görüntü üzerinde piksel / lat ile birlikte piksel değerleri depolamak gerekir. Bunu yapmak mümkün mü?
Yanıtlar:
Genel anlamda, herhangi bir tarama dosyası biçiminde bulunması gereken yakın çekim dönüşüm parametrelerini kullanın . GDAL ile bu, GetGeoTransform () veya PostGIS ' ST_GeoReference () işleviyle kullanılabilir. Bu altı parametreyi bulduktan sonra, sadece hangilerinin olduklarını belirlemek gerekir, o zaman lineer uzayda dönüşüm için bir fonksiyon yapılabilir.
Örneğin, Python ile:
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)
Örneğin, col = 10, row = 22'de bir piksel varsa, piksel merkezine ilişkin gerçek dünya koordinatları şunlardır:
>>> pixel2coord(10, 22)
(2780000.0, 6162300.0)
ST_Affine () ile PostGIS için benzer bir şey pişirilebilir .
GeoTIFF ile birlikte gelen dünya dosyası (.tfw) şunları içerir: