Mit der Spatial Analyst-Lizenz verfügbar.
Mit der 3D Analyst-Lizenz verfügbar.
Zusammenfassung
Ermittelt Parameter einer Raster-Oberfläche , z. B. Ausrichtung, Neigung und Krümmung.
Weitere Informationen zur Funktionsweise von "Oberflächenparameter"
Verwendung
Die Ausgabeparameter werden Zelle für Zelle berechnet, indem eine lokale Oberfläche um eine Zielzelle angeordnet wird. Es können fünf Oberflächenparameter berechnet werden: Neigung, Ausrichtung, Mittlere Krümmung, Tangentialkrümmung (Normalkontur) und Profilkrümmung (Normalneigungslinie). Diese Optionen sind im Parameter Parametertyp (parameter_type in Python) verfügbar.
Alle Ausgabeparameter werden mit geodätischen Koordinaten und Gleichungen berechnet.
Wenn für den Parametertyp die Option Neigung (SLOPE in Python) angegeben ist, stellt die Ausgabe die Änderungsrate der Höhe für jede Zelle im digitalen Höhenmodell (DEM) dar. Dies ist die erste Ableitung eines DEM. Der Wertebereich aus der Neigungsausgabe hängt vom Typ der Maßeinheiten ab.
Wenn für den Parametertyp die Option Ausrichtung (ASPECT in Python) angegeben ist, gibt die Ausgabe die Kompassrichtung des Gefälles für jede Position an. Die Ausrichtung wird als positive Gradangabe von 0 bis 360 ausgedrückt, wobei im Uhrzeigersinn von Norden aus gemessen wird.
Mit der Krümmung wird die Form einer Oberfläche beschrieben. In den Geowissenschaften hilft sie, die Auswirkungen der Schwerkraft, Erosion und anderer auf die Oberfläche wirkender Kräfte zu verstehen. Sie wird zusammen mit anderen Oberflächenparametern verwendet, um Terrains zu identifizieren und zu klassifizieren.
- Die Mittlere Krümmung (MEAN_CURVATURE in Python) misst die Gesamtkrümmung der Oberfläche. Sie wird als Mittelwert der minimalen und maximalen Krümmung berechnet. Wenn sie als Parametertyp angegeben ist, entspricht die Ausgabe dem Mittelwert der Profilkrümmung (Normalneigungslinie) und Tangentialkrümmung (Normalkontur). Ihr Vorzeichen (positiv oder negativ) ist außer bei Extremwerten kein definitiver Indikator. Hohe positive Werte geben Bereiche mit maximaler Abtragung und hohe negative Werte Bereiche mit maximaler Akkumulation an (Minár et al., 2020).
- Die Profilkrümmung (Normalneigungslinie) (PROFILE_CURVATURE in Python) misst die geometrische Normalkrümmung entlang der Neigungslinie. Positive Werte geben Bereiche mit Beschleunigung des Flusses und der Erosion der Oberfläche an. Eine negative Profilkrümmung gibt Bereiche mit Verlangsamung des Flusses und der Ablagerungen der Oberfläche an. Eine positive Profilkrümmung (Normalneigungslinie) bedeutet, dass die Oberfläche an der Zelle in Neigungsrichtung konvex ist. Eine negative Krümmung bedeutet, dass die Oberfläche an der Zelle in der gleichen Richtung konkav ist. Der Wert 0 gibt an, dass die Oberfläche eben ist.
- Die Tangentialkrümmung (Normalkontur) (TANGENTIAL_CURVATURE in Python) misst die geometrische Normalkrümmung senkrecht zur Neigungslinie, tangential zur Konturlinie. Positive Werte geben Bereiche mit unterschiedlichem Oberflächenfluss an. Negative Tangentialkrümmungen geben Bereiche mit konvergierendem Oberflächenfluss an. Eine positive Tangentialkrümmung (Normalkontur) bedeutet, dass die Oberfläche an der senkrecht zur Neigungsrichtung ausgerichteten Zelle konvex ist. Eine negative Krümmung bedeutet, dass die Oberfläche an der senkrecht zur Neigung ausgerichteten Zelle konkav ist. Der Wert 0 gibt an, dass die Oberfläche eben ist.
Mit der Option Quadratisch (QUADRATIC in Python) in Typ der lokalen Oberfläche (local_surface_type in Python) wird keine genaue Übereinstimmung mit den benachbarten Zellen erzielt.. Dies ist die Standardoption, und sie wird für die meisten Daten und Anwendungen empfohlen.
- Durch die quadratische Oberfläche werden die Auswirkungen verrauschter Oberflächendaten, z. B. einer LIDAR-Oberfläche mit hoher Auflösung, minimiert. Dies ist besonders wichtig, wenn die Krümmung berechnet wird.
- Die quadratische Oberfläche sollte verwendet werden, wenn eine Nachbarschaftsgröße angegeben wird, die die Zellengröße überschreitet, und wenn die Option "Adaptive Nachbarschaft" verwendet wird.
Mit der Option Biquadratisch (BIQUADRATIC in Python) in Typ der lokalen Oberfläche wird eine genaue Übereinstimmung mit den Daten aus den benachbarten Zellen erzielt.
- Diese Option eignet sich für eine äußerst genaue Eingabeoberfläche.
- Wenn die Nachbarschaftsentfernung die Eingabe-Raster-Zellengröße überschreitet, gehen die Genauigkeitsvorteile des Oberflächentyps "Biquadratisch" verloren. Der Standardwert der Nachbarschaftsentfernung (gleich der Zellengröße) sollte nicht geändert werden.
Die Nachbarschaftsentfernung (neighborhood_distance in Python) bestimmt die Nachbarschaftsgröße und dient zur Berechnung des Oberflächenparameters über die Entfernung vom Mittelpunkt der Zielzelle.
- Sie darf nicht geringer als die Eingabe-Raster-Zellengröße sein.
- Eine geringe Nachbarschaftsentfernung erfasst eher die lokale Variabilität in der Landschaft, also Merkmale kleinerer Landschafts-Features. Bei Höhendaten mit hoher Auflösung sind größere Entfernungen möglicherweise besser geeignet.
Wenn der Parameter Adaptive Nachbarschaft verwenden aktiviert ist (bzw. use_adaptive_neighborhood in Python auf ADAPTIVE_NEIGHBORHOOD festgelegt ist), ändert sich die Nachbarschaftsentfernung mit der Variabilität im Terrain. Die Nachbarschaftsentfernung verringert sich, wenn die Variabilität im Berechnungsfenster zu groß ist.
Die Z-Oberflächeneinheit (z-unit in Python) muss angegeben werden, damit die Neigungsausgabe richtig berechnet wird.
Enthält das vertikale Koordinatensystem des Eingabe-Rasters eine Z-Einheit, wird sie automatisch angewendet. Es wird empfohlen, eine Z-Einheit für das Eingabe-Raster zu definieren, wenn keine vorhanden ist. Mithilfe des Werkzeugs Projektion definieren können Sie eine Z-Einheit angeben. Sollte keine vorhanden sein, wird als Standardeinheit Meter verwendet.
Der Wertebereich der Neigungsausgabe hängt vom Typ der Maßeinheiten für Messwert der Ausgabeneigung (output_slope_measurement in Python) ab.
- Für Grad (DEGREE in Python) können Neigungswerte von 0 bis 90 angegeben werden.
- Für Prozentanstieg (PERCENT_RISE in Python) können Werte von 0 bis zu theoretisch unendlich angegeben werden. Eine flache Oberfläche entspricht 0 Prozent, eine Oberfläche mit 45 Grad entspricht 100 Prozent. Wenn die Oberfläche senkrechter wird, verstärkt sich der prozentuale Anstieg.
Wenn der Parameter Geodätische Azimute projizieren aktiviert ist (bzw. in Python project_geodesic_azimuths auf PROJECT_GEODESIC_AZIMUTHS festgelegt ist), gilt Folgendes:
- 360 Grad stellt den Norden dar.
- Die Azimute werden projiziert, um die Verzerrung zu korrigieren, die durch ein nicht konformes Ausgabekoordinatensystem verursacht wird. Diese Winkel können verwendet werden, um Punkte entlang der steilsten Abwärtsneigung genau zu verorten.
Wenn der Parameter Äquatorausrichtung verwenden aktiviert ist (bzw. in Python project_geodesic_azimuths auf USE_EQUATORIAL_ASPECT festgelegt ist), wird die Ausrichtung ab einem Punkt auf dem Äquator gemessen, um die in der Nähe der Pole auftretende Richtungsverzerrung auszugleichen. Diese Option stellt sicher, dass die Nord-Süd- und Ost-West-Achse senkrecht zueinander ausgerichtet sind.
Aktivieren Sie den Parameter Äquatorausrichtung verwenden, wenn sich das Terrain nahe am Nord- oder Südpol befindet.
Quellen:
- James D.E., M.D. Tomer, S.A. Porter. (2014). Trans-scalar landform segmentation from high-resolution digital elevation models. Poster präsentiert bei der jährlichen ESRI User Conference, Juli 2014, San Diego, Kalifornien, USA.
- Minár, J., Evans, I. S. und Jenčo, M. (2020). A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414. https://doi.org/10.1016/j.earscirev.2020.103414
Syntax
arcpy.3d.SurfaceParameters(in_raster, out_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect})
Parameter | Erklärung | Datentyp |
in_raster | Das Eingabe-Oberflächen-Raster. | Raster Layer |
out_raster | Das Ausgabe-Raster. Es weist den Typ "Float" auf. | Raster Dataset |
parameter_type (optional) | Bestimmt den Typ des zu berechnenden Ausgabe-Oberflächenparameters.
| String |
local_surface_type (optional) | Bestimmt den Typ der Oberflächenfunktion, die um die Zielzelle angewendet wird.
| String |
neighborhood_distance (optional) | Die Ausgabe wird über diese Entfernung ab dem Mittelpunkt der Zielzelle berechnet. Sie bestimmt die Nachbarschaftsgröße. Der Standardwert ist die Eingabe-Raster-Zellengröße. Das Ergebnis ist eine 3x3-Nachbarschaft. | Linear Unit |
use_adaptive_neighborhood (optional) | Lässt variierende Nachbarschaftsentfernungen entsprechend Änderungen der Landschaft zu. Die maximale Entfernung wird durch die Nachbarschaftsentfernung bestimmt. Die minimale Entfernung ist die Eingabe-Raster-Zellengröße.
| Boolean |
z_unit (optional) | Die lineare Einheit vertikaler Z-Werte. Sie wird durch ein vertikales Koordinatensystem definiert, sofern vorhanden. Falls kein vertikales Koordinatensystem vorhanden ist, sollte die Z-Einheit mithilfe der Einheitenliste festgelegt werden, um eine korrekte geodätische Berechnung sicherzustellen. Die Standardeinstellung lautet Meter.
| String |
output_slope_measurement (optional) | Wenn parameter_type gleich SLOPE ist, werden hiermit die Maßeinheiten (Grad oder Prozent) der Ausgabeneigungs-Raster bestimmt.
| String |
project_geodesic_azimuths (optional) | Legt fest, ob geodätische Azimute projiziert werden, um die durch den Ausgabe-Raumbezug verursachte Winkelverzerrung zu korrigieren.
| Boolean |
use_equatorial_aspect (optional) | Die Ausrichtung wird ab einem Punkt auf dem Äquator gemessen.
| Boolean |
Codebeispiel
Anhand des folgenden Beispiels wird die Verwendung dieses Werkzeugs im Python-Fenster veranschaulicht.
In diesem Beispiel wird mit einer adaptiven Nachbarschaftsmethode ein Neigungs-Raster mit Ausgabewerten in Prozent generiert. Die maximale Nachbarschaftsentfernung beträgt 5 Meter.
from arcpy.ddd import *
SurfaceParameters("elevation_1m.tif", "C:/data/output/outsurfaceparameters01.tif",
"", "", "5 METERS", "ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
In diesem Beispiel wird mit einer adaptiven Nachbarschaftsmethode ein Raster mit Profilkrümmung (Normalneigungslinie) generiert. Die maximale Nachbarschaftsentfernung beträgt 10 Meter.
# Name: SurfaceParameters_Ex_02.py
# Description: Derive profile (normal slope line) curvature for a 1m
# resolution elevation raster over an adaptive neighborhood distance of maximum 10m.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy.ddd import *
# Set environment settings
arcpy.env.workspace = "C:/data"
# Check out the ArcGIS 3D Analyst extension license
arcpy.CheckOutExtension("3D")
# Set local variables
inRaster = "elevation_1m.tif"
outRaster = "C:/data/output/outsurfaceparameters02.tif"
inParameterType = "PROFILE_CURVATURE"
inNeighborhoodDistance = "10 METERS"
inUseAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"
# Execute the tool
SurfaceParameters(inRaster, outRaster, inParameterType, "",
inNeighborhoodDistance, inUseAdaptiveNeighborhood)
Im folgenden Beispiel wird die Verwendung dieses Werkzeugs in einem eigenständigen Python-Skript veranschaulicht.
In diesem Beispiel wird mit einer Nachbarschaftsentfernung von 5 Metern ein Ausrichtungs-Raster generiert. Richtungsverzerrungen aufgrund nicht winkeltreuer Projektion werden korrigiert.
# Name: SurfaceParameters_Ex_03.py
# Description: Derive aspect for an elevation surface over a distance of 5m, correct
# for direction distortion from non-conformal projection system.
# Requirements: 3D Analyst Extension
# Import system modules
import arcpy
from arcpy.ddd import *
# Set environment settings
arcpy.env.workspace = "C:/data"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("3D")
# Set local variables
inRaster = "elevation_1m.tif"
outRaster = "C:/data/output/outsurfaceparameters03.tif"
inParameterType = "ASPECT"
inNeighborhoodDistance = "5 METERS"
inProjectGeodesicAzimuths = "PROJECT_GEODESIC_AZIMUTHS"
# Execute the tool
SurfaceParameters(inRaster, outRaster, inParameterType, "", inNeighborhoodDistance,
"", "", "", inProjectGeodesicAzimuths)
Umgebungen
Lizenzinformationen
- Basic: Erfordert 3D Analyst oder Spatial Analyst
- Standard: Erfordert 3D Analyst oder Spatial Analyst
- Advanced: Erfordert 3D Analyst oder Spatial Analyst