GeoTIFF dosyasındaki her piksel için lat / lon değerleri nasıl bulunur?


9

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ü?


1
Hedef Lat / Lon ile sorgulama yapabilmek mi? Geotransform özniteliğini kullanarak GDAL ile bunu başarabilirsiniz - Bir python örneği sağlayabilirim. Dönüşüm 2 bantlı geotiff (Band1 - LAT, Band2 - LON) olarak önceden oluşturulabilir, ancak bunu anında yapmanın daha verimli olup olmayacağını merak ediyorum. Sanırım bir kullanım durumu yardımcı olacaktır.
Jay Laura

Yanıtlar:


9

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 .


1

Bu biraz arkaik olabilir: Pikselleri noktalara dönüştürün, lat ve uzun alanlar ekleyin ve lat ve uzun değerlerle doldurun.


0

GeoTIFF ile birlikte gelen dünya dosyası (.tfw) şunları içerir:

  • harita birimlerinde / pikselde x yönünde (ve y yönünde) piksel boyutu ve
  • sol üst pikselin merkezinin x koordinatı (ve y koordinatı). Her pikselin Lat / Lon'daki konumunu hesaplamak için ihtiyacınız olan her şey budur.

2
Açıkladığınız şeye ek olarak, en azından koordinat sistemini bilmeniz gerekir! (Bir dünya dosyası bu bilgileri içermez.)
whuber

1
Ayrıca, her GeoTIFF bir dünya dosyası içermez. Bir gerçek GeoTIFF bir ayrı dosyada, başlığında kaydedilmiş koordinat bilgileri yer alır. Ancak, "GeoTIFF" terimi genellikle bir dünya dosyası olan TIFF görüntülerine uygulanır. Mesele şu ki, her zaman bir TFW olmayacak.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.