Stai leggendo il set di dati di elevazione nazionale (ArcGrid / GridFloat / IMG) con solo strumenti Python?


10

Ho trovato dati di elevazione di alta precisione (risoluzione 1/3 - 1/9 di secondo d'arco) dal set di dati di elevazione nazionale fornito da USGS. È disponibile nei formati IMG, Arcgrid e GridFloat. So che ArcGrid corrisponde a un pacchetto software a pagamento, ma sto cercando di attenermi all'uso di strumenti disponibili gratuitamente.

Ho dati GPS che sto cercando di correlare con il livello del suolo.

Esistono librerie Python che mi permetteranno di trasformare i dati GPS in altitudine usando un file di dati nei formati IMG, ArcGrid o GridFloat?

Risposte:


7

Lavorare con il file IMG direttamente in Python è semplice con i binding GDAL. Ad esempio, è possibile leggere i dati direttamente in un array 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)

Per un esempio più completo di stampa di dati in formato IMG, vedere questo script che ha generato l'immagine qui sotto. Per la trasformazione dei dati GPS in altitudine, dovrai campionare l'array NumPy risultante.

inserisci qui la descrizione dell'immagine


4

Il National Map Viewer utilizzava una piattaforma software diversa, il che rendeva possibile convertire i dati in GeoTIFF dopo aver selezionato i riquadri. Alcuni provider di dati regionali preferiscono anche GeoTIFF. Ma questo potrebbe non esserti di aiuto.

Tuttavia, la buona notizia è che gdalè in grado di funzionare con tutti e tre questi formati. ArcGrid è un formato binario ESRI, il formato di dati DEM di GridFloat USGS e l'IMG di proprietà di Erdas, che produce il software Imagine. Probabilmente avrei scaricato ArcGrid o il formato IMG e convertito in GeoTIFF: gli stessi USGS hanno un pacchetto di script di conversione basato sul gdal download ( collegamento diretto al file ZIP ). Dovresti trovare le risorse di cui hai bisogno lì.


Grazie per il link e la menzione di gdal, sembra molto utile
circa il

0

La risposta di Kelsey non ha funzionato all'inizio per me perché il file .img ha usato -inf come valore per lo spazio vuoto.

Ho risolto questo aggiungendo la riga:

topo[topo<-1000] = 0

1
Questa non è una risposta alla domanda originale, probabilmente dovrebbe essere una modifica alla risposta accettata
nmtoken
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.