Lecture de l'ensemble de données d'élévation nationale (ArcGrid / GridFloat / IMG) avec des outils Python uniquement?

10

J'ai trouvé des données d'élévation de haute précision (résolution 1/3 - 1/9 seconde d'arc) à partir du jeu de données d'élévation national fourni par l'USGS. Il est disponible aux formats IMG, Arcgrid et GridFloat. Je sais qu'ArcGrid correspond à un progiciel payant, mais j'essaie de m'en tenir à l'utilisation d'outils disponibles gratuitement.

J'ai des données GPS que j'essaie de corréler avec le niveau du sol.

Existe-t-il des bibliothèques python qui me permettront de transformer les données GPS en altitude à l'aide d'un fichier de données aux formats IMG, ArcGrid ou GridFloat?

abnowack
la source

Réponses:

7

Travailler avec le fichier IMG directement en python est simple avec les liaisons GDAL. Par exemple, vous pouvez lire les données directement dans un tableau 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)

Pour un exemple plus complet de traçage des données au format IMG, consultez ce script qui a généré l'image ci-dessous. Pour votre transformation des données GPS en altitude, vous devrez échantillonner la matrice NumPy résultante.

entrez la description de l'image ici

Kelsey
la source
4

Le National Map Viewer utilisait autrefois une plateforme logicielle différente, ce qui permettait de convertir les données en GeoTIFF après la sélection des tuiles. Certains fournisseurs de données régionaux préfèrent également GeoTIFF. Mais cela peut ne pas vous être utile.

Cependant, la bonne nouvelle est qu'il gdalest capable de fonctionner avec ces trois formats. ArcGrid est un format binaire ESRI, le format de données DEM de GridFloat USGS et IMG propriétaire d'Erdas, qui fabrique le logiciel Imagine. Je téléchargerais probablement le format ArcGrid ou IMG et le convertirais en GeoTIFF: L'USGS a lui-même un ensemble de scripts de conversion basés sur le gdal téléchargement ( lien direct vers le fichier ZIP ). Vous devriez y trouver les ressources dont vous avez besoin.

chryss
la source
Merci pour le lien et en mentionnant gdal, cela semble très utile
abnowack
0

La réponse de Kelsey n'a pas fonctionné au départ pour moi car le fichier .img utilisait -inf comme valeur pour l'espace vide.

J'ai résolu cela en ajoutant la ligne:

topo[topo<-1000] = 0
vatlark
la source
1
Ce n'est pas une réponse à la question d'origine, cela devrait probablement être une modification de la réponse acceptée
nmtoken