Wie erhalte ich eine hypsometrische Kurve aus Höhendaten?


8

Ich habe meine Höhendaten, kann aber keine Attributtabelle daraus erstellen. Daher bin ich mir nicht sicher, wie ich diese Daten in eine Tabelle aufnehmen kann, um eine hypsometrische Kurve zu erstellen.

Antworten:


10

Das Raster wird im Gleitkommaformat als einzelne Werte in jeder Zelle gespeichert. Daher hat es keine Attributtabelle. Eine effektive Lösung besteht darin, die Werte zu diskretisieren und in das Ganzzahlformat zu konvertieren. Dadurch wird eine Attributtabelle erstellt, die beim Zeichnen ein Histogramm ergibt. Seine kumulativen Summen sind die hypsometrische Kurve.

DEM erleichtert

Das Erscheinungsbild der hypsometrischen Kurve (in CDF-Form) für dieses Beispiel-DEM (ein Teil von Illinois, verfügbar unter http://exampledata.wolfram.com/ArcGRID.zip ) variiert mit der Feinheit der Wertdiskretisierung. Die folgenden Bilder verwenden Behälter mit einer Größe von 5, 1 bzw. 1/5 Metern. Wie Sie sehen können, kann man mit mäßig groben Behältern eine präzise Kurve erhalten.

Hypsometrische Kurven

Das Diskretisieren eines Rasters umfasst zwei Operationen, die in einem Schritt ausgeführt werden können: Teilen durch die Behälterbreite und Abschneiden (oder Runden, wenn Sie dies bevorzugen). Zum Beispiel können Höhen in Metern durch Teilen durch 0,1, gefolgt von Abschneiden, wie in in Schritten von 0,1 Metern diskretisiert werden

Int( [elevation] / 0.1 )

Diese oder eine ähnliche Syntax wird in fast jeder Version von ArcGIS (und auch in vielen anderen Raster-GIS) verwendet.


Wenn die Höhen sowohl positiv als auch negativ sein können, prüfen Sie, ob Ihre Version von ArcGIS eine FloorFunktion unterstützt , da einige IntImplementierungen eher nach 0 als nach unten abgeschnitten werden , wodurch sich die Breite des Bin mit 0 verdoppelt (ein unerwünschtes Ergebnis).
whuber

1
@Kirk Das ist eine gute Idee, aber meine Erfahrung mit ESRI-Software und statistischen Berechnungen führt dazu, dass ich ihr misstraue. Wo ist die detaillierte Dokumentation? ZB genau welche Art von Probenahmeverfahren wird verwendet? Wo ist der Beweis dafür, dass es das richtige Ergebnis erzielt? Und wenn es solche Beweise gibt - beispielsweise durch umfangreiche Benutzertests und Reverse Engineering - müssen wir alles wegwerfen und mit dem nächsten Software-Patch von vorne beginnen.
whuber

1
Nun, ich wollte vorschlagen, Ihre eigene IBinFunction2 anzuschließen , aber ich sehe, dass dort steht: "Diese Schnittstelle ist nicht für die Verwendung durch externe Entwickler vorgesehen." Naja.
Kirk Kuykendall

2
Ich würde @whuber wiederholen; Die Statistiken von ESRI sind verdächtig. Wir haben uns zwei Jahre lang beim technischen Support beschwert, dass ihre Perzentile / Quartile falsch berechnet werden und nicht einmal innerhalb der Software konsistent sind. Wir haben ihnen empirisch gezeigt, dass sie weder "genau" noch "interpoliert" sind. Ihre Antwort ist, dass sie "die Daten abtasten", aber keine Details preisgeben.
Jeffrey Evans

1
@ Jeffrey Ich habe mich 2006 mit ESRI-Vertretern getroffen und ihnen dieses Thema (unter anderem) vorgestellt. Zu diesem Zeitpunkt hatte ich drei verschiedene Berechnungen von Standardabweichungen in ArcGIS dokumentiert, von denen mindestens eine eindeutig ein Fehler war. Ich mag und benutze ArcGIS wegen seiner Stärken, aber aufgrund dieser Art von Verhalten bin ich gezwungen zu folgern, dass statistische Analysen - jeglicher Art - nicht dazu gehören.
whuber

5

Normalerweise benutze ich R dafür. Sie können GDAL-Raster-Datensätze mit rgdal(aus CRAN) lesen und dann mit (integriert) eine empirische kumulative Verteilung für die Höhenwerte erstellen ecdf.

Zum Beispiel habe ich mein DEM in einer GeoTIFF-Datei, in R verwenden:

library(rgdal)
topo <- readGDAL("mytoporaster.tif")
plot(ecdf(topo$band1), main="Hypsometric curve", xlab="Elevation (m)")

hypsometrische Kurve


+1 Gute Lösung. Sie können diese Kurve (ausführlich) auch in R analysieren.
whuber

1

hypsometrische Kurve

Siehe auch das Tutorial bei Carleton .


Diese Abbildung erinnert uns daran, dass es (mindestens) drei verschiedene Ideen der "hypsometrischen Kurve" gibt. Laut Wikipedia handelt es sich um eine empirische CDF von Höhen. Nach dieser Darstellung handelt es sich um die komplementäre CDF. Und nach anderen Referenzen handelt es sich um ein Histogramm (empirisches PDF).
whuber

0

Ich bin auf dieses Dokument gestoßen, in dem es um eine 9.x ArcGIS-Erweiterung geht.

CalHypso: Eine ArcGIS-Erweiterung zur Berechnung hypsometrischer Kurven und ihrer statistischen Momente. Anwendungen zur Analyse von Einzugsgebieten in Südostspanien

Die Erweiterung mit Beispieldaten finden Sie an diesem Download-Speicherort .

Für den Datensatz funktioniert die Erweiterung in ArcGIS 10.4.1.


Ich warf einen Blick auf den Code, um zu sehen, wie gut er funktionieren könnte. Ich hörte auf, sobald ich die Bubblesort-Implementierung erreichte - ich musste nicht weiter lesen.
whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.