National Elevation Dataset (ArcGrid / GridFloat / IMG) nur mit Python-Tools lesen?

10

Ich habe hochpräzise Höhendaten (1/3 - 1/9 Bogensekunden Auflösung) aus dem von der USGS bereitgestellten Nationalen Höhendatensatz gefunden. Es ist in den Formaten IMG, Arcgrid und GridFloat erhältlich. Ich weiß, dass ArcGrid einem kostenpflichtigen Softwarepaket entspricht, aber ich versuche, frei verfügbare Tools zu verwenden.

Ich habe GPS-Daten, die ich mit dem Boden korrelieren möchte.

Gibt es Python-Bibliotheken, mit denen ich GPS-Daten mithilfe einer Datendatei im IMG-, ArcGrid- oder GridFloat-Format in Höhe umwandeln kann?

abnowack
quelle

Antworten:

7

Das Arbeiten mit der IMG-Datei direkt in Python ist mit den GDAL-Bindungen unkompliziert. Sie können die Daten beispielsweise direkt in ein NumPy-Array einlesen:

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)

Ein vollständigeres Beispiel für das Zeichnen von Daten im IMG-Format finden Sie in diesem Skript, das das folgende Bild generiert hat. Für die Umwandlung von GPS-Daten in Höhen müssen Sie das resultierende NumPy-Array abtasten.

Geben Sie hier die Bildbeschreibung ein

Kelsey
quelle
4

Der National Map Viewer verwendete früher eine andere Softwareplattform, die es ermöglichte, die Daten nach Auswahl der Kacheln in GeoTIFF zu konvertieren. Einige regionale Datenanbieter bevorzugen ebenfalls GeoTIFF. Aber das kann Ihnen nicht weiterhelfen.

Die gute Nachricht ist jedoch, dass gdalmit allen drei Formaten gearbeitet werden kann. ArcGrid ist ein ESRI-Binärformat, das DEM-Datenformat von GridFloat USGS und IMG, das Erdas gehört, der die Imagine-Software herstellt. Ich würde wahrscheinlich entweder das ArcGrid- oder das IMG-Format herunterladen und in GeoTIFF konvertieren: Die USGS selbst haben ein Bündel von Konvertierungsskripten gdal zum Herunterladen (direkter Link zur ZIP-Datei ). Dort sollten Sie die benötigten Ressourcen finden.

Chrys
quelle
Vielen Dank für den Link und die Erwähnung von GDAL, es sieht sehr nützlich aus
abnowack
0

Kelseys Antwort funktionierte zunächst nicht für mich, da die IMG-Datei -inf als Wert für den Leerraum verwendete.

Ich habe dies durch Hinzufügen der Zeile gelöst:

topo[topo<-1000] = 0
Vatlark
quelle
1
Dies ist keine Antwort auf die ursprüngliche Frage, es sollte wahrscheinlich eine Bearbeitung der akzeptierten Antwort sein
nmtoken