Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

11 votos

¿Cómo encontrar los valores de lat/lon para cada píxel en un archivo GeoTIFF?

Quiero almacenar un archivo GeoTIFF pixel por pixel en la base de datos. Necesito almacenar los valores de los píxeles junto con la lat/lon de ese píxel en la imagen GeoTIFF. ¿Es posible hacerlo?

1 votos

¿El objetivo es poder consultar por Lat/Lon? Se podría conseguir con GDAL utilizando el atributo geotransformación - puedo proporcionar un ejemplo en python. La conversión podría ser pre-renderizada en un geotiff de 2 bandas (Banda1 - LAT, Banda2 - LON), pero me pregunto si no sería más eficiente hacerlo sobre la marcha. Supongo que un caso de uso ayudaría.

12voto

hernan43 Puntos 566

En un sentido genérico, utilice el transformación afín que deberían estar disponibles con cualquier formato de archivo raster. Con GDAL, esto está disponible con GetGeoTransform() o PostGIS ST_GeoReference() función. Después de encontrar estos seis parámetros, sólo hay que determinar cuáles son, entonces se puede hacer una función que se transforme en el espacio lineal.

Por ejemplo, con 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)

Por ejemplo, si hay un píxel en col=10, row=22, entonces las coordenadas del mundo real al centro del píxel son:

>>> pixel2coord(10, 22)
(2780000.0, 6162300.0)

Algo similar se puede cocinar para PostGIS con ST_Affine() .

1voto

Marshal Kurosh Puntos 1563

El archivo mundial (.tfw) que acompaña a un GeoTIFF contiene:

  • tamaño del píxel en la dirección x (y en la dirección y) en unidades de mapa/píxel y
  • Coordenada x (y coordenada y) del centro del píxel superior izquierdo. Esto es todo lo que necesitas para calcular la posición en Lat/Lon de cada píxel.

2 votos

Además de lo que describes, como mínimo tienes que conocer el sistema de coordenadas. (Un archivo de mundo no incluye esa información).

2 votos

Además, no todos los GeoTIFF contienen un archivo mundial. A verdadero GeoTIFF tiene la información de coordenadas almacenada en la cabecera, no en un archivo separado. Sin embargo, el término "GeoTIFF" se aplica a menudo a las imágenes TIFF con un archivo mundial. La cuestión es que no siempre habrá un TFW.

1voto

kooshmoose Puntos 392

Esto puede ser un poco arcaico: Convertir los píxeles en puntos, añadir campos de latitud y longitud, y rellenar con valores de latitud y longitud.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X