¿Leyendo el conjunto de datos de elevación nacional (ArcGrid / GridFloat / IMG) con las herramientas exclusivas de Python?

10

He encontrado datos de elevación de alta precisión (resolución de 1/3 a 1/9 de segundo de arco) del conjunto de datos de elevación nacional proporcionado por el USGS. Viene en formatos IMG, Arcgrid y GridFloat. Sé que ArcGrid corresponde a un paquete de software pago, pero estoy tratando de mantener el uso de herramientas disponibles gratuitamente.

Tengo datos de GPS que estoy tratando de correlacionar con el nivel del suelo.

¿Hay alguna biblioteca de Python que me permita transformar datos GPS en altitud utilizando un archivo de datos en formatos IMG, ArcGrid o GridFloat?

abnowack
fuente

Respuestas:

7

Trabajar con el archivo IMG directamente en python es sencillo con los enlaces GDAL. Por ejemplo, puede leer los datos directamente en una matriz NumPy:

from osgeo import gdal
geo = gdal.Open('imgn36w100_11.img')
arr = geo.ReadAsArray()
print repr(arr)
array([[ 744.31896973,  743.68762207,  743.1116333 , ...,  550.42498779,
         553.77813721,  556.18640137],
       [ 744.22955322,  743.66082764,  743.05273438, ...,  552.05706787,
         554.81365967,  557.55877686],
       [ 744.0133667 ,  743.49041748,  743.00061035, ...,  553.0123291 ,
         555.78076172,  558.01312256],
       ...,
       [ 568.70880127,  567.33666992,  566.56170654, ...,  447.68035889,
         447.68804932,  447.65426636],
       [ 568.01116943,  566.95739746,  564.23382568, ...,  447.6696167 ,
         447.71224976,  447.62734985],
       [ 565.62896729,  562.65325928,  560.78759766, ...,  447.67129517,
         447.67529297,  447.65179443]], dtype=float32)

Para un ejemplo más completo de trazar datos en formato IMG, vea este script que generó la imagen a continuación. Para su transformación de datos GPS en altitud, tendrá que muestrear la matriz NumPy resultante.

ingrese la descripción de la imagen aquí

Kelsey
fuente
4

National Map Viewer solía usar una plataforma de software diferente, lo que hizo posible convertir los datos a GeoTIFF después de la selección de mosaicos. Algunos proveedores de datos regionales también prefieren GeoTIFF. Pero eso puede no ser de ayuda para usted.

Sin embargo, la buena noticia es que gdalpuede funcionar con estos tres formatos. ArcGrid es un formato binario ESRI, el formato de datos DEM de GridFloat USGS y el IMG propiedad de Erdas, que fabrica el software Imagine. Probablemente descargaría el formato ArcGrid o IMG y lo convertiría a GeoTIFF: los propios USGS tienen un paquete de scripts de conversión basados gdal para descargar ( enlace directo al archivo ZIP ). Debe encontrar los recursos que necesita allí.

chryss
fuente
Gracias por el enlace y mencionando a gdal, parece muy útil
Conocido el
0

La respuesta de Kelsey no funcionó al principio para mí porque el archivo .img usaba -inf como valor para el espacio vacío.

Resolví esto agregando la línea:

topo[topo<-1000] = 0
vatlark
fuente
1
Esta no es una respuesta a la pregunta original, probablemente debería ser una edición de la respuesta aceptada
nmtoken