Beschriftung | Erläuterung | Datentyp |
Eingabe-Oberflächen-Raster | Das Eingabe-Oberflächen-Raster. | Raster Layer |
Ausgabe-Raster | Das Ausgabe-Raster. Es weist den Typ "Gleitkomma" auf. | Raster Dataset |
Parametertyp (optional) | Gibt den Parametertyp der Ausgabe-Oberfläche an, der berechnet wird.
| String |
Typ der lokalen Oberfläche (optional) | Gibt den Typ der Oberflächenfunktion an, die um die Zielzelle angewendet wird.
| String |
Nachbarschaftsentfernung (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 3 x 3-Nachbarschaft. | Linear Unit |
Adaptive Nachbarschaft verwenden (optional) | Gibt an, ob sich die Nachbarschaftsentfernung mit Landschaftsänderungen (adaptiv) ändert. Die maximale Entfernung wird durch die Nachbarschaftsentfernung bestimmt. Die minimale Entfernung ist die Eingabe-Raster-Zellengröße.
| Boolean |
Z-Einheit (optional) | Gibt die lineare Einheit an, die für vertikale Z-Werte verwendet werden soll. Sie wird durch ein vertikales Koordinatensystem definiert, sofern vorhanden. Falls kein vertikales Koordinatensystem vorhanden ist, müssen Sie die Z-Einheit mithilfe der Einheitenliste definieren, um eine korrekte geodätische Berechnung sicherzustellen. Die Standardeinstellung lautet Meter.
| String |
Neigungsmesswert (optional) | Die Maßeinheiten (Grad oder Prozent), die für das Ausgabe-Neigungs-Raster verwendet werden. Dieser Parameter ist nur verfügbar, wenn für den Parameter Parametertyp die Option Neigung festgelegt wurde.
| String |
Geodätische Azimute projizieren (optional) |
Legt fest, ob geodätische Azimute projiziert werden, um die durch den Ausgabe-Raumbezug verursachte Winkelverzerrung zu korrigieren.
Dieser Parameter ist nur verfügbar, wenn für den Parameter Parametertyp die Option Ausrichtung festgelegt wurde. | Boolean |
Äquatorausrichtung verwenden (optional) |
Gibt an, ob die Ausrichtung von einem Punkt am Äquator oder vom Nordpol gemessen wird.
Dieser Parameter ist nur verfügbar, wenn für den Parameter Parametertyp die Option Ausrichtung festgelegt wurde. | Boolean |
Eingabe-Analysemaske (optional) | Die Eingabedaten, die die Positionen für die Analyse definieren. Hierbei kann es sich um ein Raster oder ein Feature-Dataset handeln. Wenn als Eingabe ein Raster verwendet wird, kann dieses ein ganzzahliger Wert oder ein Gleitkommawert sein. Wenn als Eingabe Feature-Daten verwendet werden, kann es sich um Punkte, Linien oder Polygone handeln. Wenn es sich bei den Eingabemaskendaten um ein Raster handelt, wird die Analyse an Positionen mit gültigen Werten, einschließlich Null, durchgeführt. Zellen, die in der Maskeneingabe einen NoData-Wert aufweisen, weisen in der Ausgabe ebenfalls einen NoData-Wert auf. | Composite Geodataset |
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. Für den Parameter Parametertyp (in Python parameter_type) sind folgende Oberflächenparameter verfügbar: Neigung, Ausrichtung, Mittlere Krümmung, Tangentialkrümmung (Normalkontur), Profilkrümmung (Normalneigungslinie), Plankrümmung (projizierte Kontur), Geodätische Torsion der Kontur, Gauß'sche Krümmung und Casorati-Krümmung.
Alle Ausgabeparameter werden mit geodätischen Koordinaten und Gleichungen berechnet.
Wenn für 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 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 können anhand der Krümmung die Auswirkungen der Schwerkraft, der Erosion und anderer auf die Oberfläche wirkender Faktoren erklärt werden. Sie wird zusammen mit anderen Oberflächenparametern verwendet, um Terrains zu identifizieren und zu klassifizieren.
- Mittlere Krümmung (MEAN_CURVATURE in Python): Die Gesamtkrümmung der Oberfläche. Sie wird als Mittelwert der minimalen und maximalen Krümmung berechnet. Wenn sie für 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).
- Profilkrümmung (Normalneigungslinie) (PROFILE_CURVATURE in Python): 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.
- Tangentialkrümmung (Normalkontur) (TANGENTIAL_CURVATURE in Python): 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.
- Plankrümmung (projizierte Kontur) (in Python CONTOUR_CURVATURE): Die Krümmung entlang der Konturlinien.
- Geodätische Torsion der Kontur (in Python CONTOUR_GEODESIC_TORSION): Die Änderungsrate des Neigungswinkels entlang der Konturlinien.
- Gauß'sche Krümmung (in Python GAUSSIAN_CURVATURE): Die allgemeine Krümmung der Oberfläche. Sie wird als Produkt der minimalen und maximalen Krümmung berechnet und kann negative und positive Werte annehmen. Positive Werte weisen auf eine konvexe Oberfläche in dieser Zelle hin, während negative Werte auf eine konkave Oberfläche hinweisen. Der Wert 0 gibt an, dass die Oberfläche eben ist.
- Casorati-Krümmung (in Python CASORATI_CURVATURE): Die allgemeine Krümmung der Oberfläche. Sie kann Null oder positiv sein. Hohe positive Werte weisen auf Bereiche mit scharfen Biegungen in mehrere Richtungen hin.
Die Einheiten aller Krümmungstyp-Ausgaben entsprechen dem Kehrwert (Quadrat des reziproken Wertes für Gauß'sche Krümmung) der X- und Y-Einheiten der Umgebungseinstellung Ausgabe-Koordinatensystem.
Mit der Option Quadratisch des Parameters Typ der lokalen Oberfläche (local_surface_type = "QUADRATIC" 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.
- Verwenden Sie die quadratische Oberfläche, wenn eine Nachbarschaftsgröße angegeben wird, die die Zellengröße überschreitet, und wenn die Option "Adaptive Nachbarschaft" verwendet wird.
Mit der Option Biquadratisch des Parameters Typ der lokalen Oberfläche (local_surface_type = "BIQUADRATIC" in Python) 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. Behalten Sie den Standardwert der Nachbarschaftsentfernung (gleich der Zellengröße) unverändert bei.
Der Parameter 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, z. B. 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 (use_adaptive_neighborhood = "ADAPTIVE_NEIGHBORHOOD" in Python), ändert sich die Nachbarschaftsentfernung mit der Variabilität im Terrain. Die Nachbarschaftsentfernung verringert sich, wenn die Variabilität im Berechnungsfenster zu groß ist.
Es muss ein Parameterwert für Z-Oberflächeneinheit (z_unit in Python) angegeben werden, damit die Neigungsausgabe richtig berechnet wird.
Wenn das vertikale Koordinatensystem des Eingabe-Rasters eine Z-Einheit enthält, 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 von den Maßeinheiten für den Parameter Neigungsmesswert (output_slope_measurement in Python) ab:
- Grad (DEGREE in Python): Es können Neigungswerte von 0 bis 90 angegeben werden.
- Prozentanstieg (PERCENT_RISE in Python): Es 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 (project_geodesic_azimuths = "PROJECT_GEODESIC_AZIMUTHS" in Python ), gilt Folgendes:
- 360 Grad stellt den Norden dar.
- Die Azimute werden projiziert, um die Verzerrung zu korrigieren, die durch einen nicht konformen Wert für die Umgebung vom Typ 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 (project_geodesic_azimuths = "USE_EQUATORIAL_ASPECT" in Python), wird die Ausrichtung ab einem Punkt auf dem Äquator gemessen, um die in der Nähe der Pole auftretende Richtungsverzerrung auszugleichen. Dieser Parameter 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.
Verwenden Sie den Parameter Eingabe-Analysemaske (in_analysis_mask in Python), um die Analyse auf bestimmte zu untersuchende Positionen innerhalb des Eingabe-Oberflächen-Rasters zu begrenzen. Die Positionen können mit Raster- oder Feature-Daten definiert werden. Der Parameter Eingabe-Analysemaske hat Vorrang vor der Umgebungseinstellung Maske.
Wenn der Wert für das Eingabe-Oberflächen-Raster (in_raster in Python) und die unter Eingabe-Analysemaske angegebenen Raster-Daten (in_analysis_mask in Python) die gleiche Zellengröße aufweisen und die Zellen ausgerichtet sind, werden sie direkt im Werkzeug verwendet. Während der Werkzeugausführung wird kein internes Resampling durchgeführt.
Bei Abweichungen der Zellengröße entspricht die Ausgabezellengröße dem Maximum der Eingabedaten. In diesem Fall wird der Wert für Eingabe-Oberflächen-Raster intern als Fang-Raster verwendet. Wenn die Zellengröße übereinstimmt, die Zellen jedoch nicht ausgerichtet sind, wird der Wert für Eingabe-Oberflächen-Raster intern als Fang-Raster verwendet. In beiden Fällen wird ein internes Resampling ausgelöst, bevor der Extraktionsvorgang ausgeführt wird.
Weitere Informationen finden Sie in den Themen Zellengröße und Fang-Raster zur Umgebung.
Referenzliste:
- James, D. E., Tomer, M. D. und Porter, S. A. 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. A comprehensive system of definitions of land surface (topographic) curvatures, with implications for their application in geoscience modelling and prediction. Earth-Science Reviews, 103414, 2020. https://doi.org/10.1016/j.earscirev.2020.103414
Parameter
arcpy.ddd.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}, {in_analysis_mask})
Name | Erläuterung | Datentyp |
in_raster | Das Eingabe-Oberflächen-Raster. | Raster Layer |
out_raster | Das Ausgabe-Raster. Es weist den Typ "Gleitkomma" auf. | Raster Dataset |
parameter_type (optional) | Gibt den Parametertyp der Ausgabe-Oberfläche an, der berechnet wird.
| String |
local_surface_type (optional) | Gibt den Typ der Oberflächenfunktion an, 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 3 x 3-Nachbarschaft. | Linear Unit |
use_adaptive_neighborhood (optional) | Gibt an, ob sich die Nachbarschaftsentfernung mit Landschaftsänderungen (adaptiv) ändert. Die maximale Entfernung wird durch die Nachbarschaftsentfernung bestimmt. Die minimale Entfernung ist die Eingabe-Raster-Zellengröße.
| Boolean |
z_unit (optional) | Gibt die lineare Einheit an, die für vertikale Z-Werte verwendet werden soll. Sie wird durch ein vertikales Koordinatensystem definiert, sofern vorhanden. Falls kein vertikales Koordinatensystem vorhanden ist, müssen Sie die Z-Einheit mithilfe der Einheitenliste definieren, um eine korrekte geodätische Berechnung sicherzustellen. Die Standardeinstellung lautet Meter.
| String |
output_slope_measurement (optional) | Die Maßeinheiten (Grad oder Prozent), die für das Ausgabe-Neigungs-Raster verwendet werden.
Dieser Parameter wird nur unterstützt, wenn der Parameter parameter_type auf SLOPE festgelegt wurde. | String |
project_geodesic_azimuths (optional) |
Legt fest, ob geodätische Azimute projiziert werden, um die durch den Ausgabe-Raumbezug verursachte Winkelverzerrung zu korrigieren.
Dieser Parameter wird nur unterstützt, wenn der Parameter parameter_type auf ASPECT festgelegt wurde. | Boolean |
use_equatorial_aspect (optional) |
Gibt an, ob die Ausrichtung von einem Punkt am Äquator oder vom Nordpol gemessen wird.
Dieser Parameter wird nur unterstützt, wenn der Parameter parameter_type auf ASPECT festgelegt wurde. | Boolean |
in_analysis_mask (optional) | Die Eingabedaten, die die Positionen für die Analyse definieren. Hierbei kann es sich um ein Raster oder ein Feature-Dataset handeln. Wenn als Eingabe ein Raster verwendet wird, kann dieses ein ganzzahliger Wert oder ein Gleitkommawert sein. Wenn als Eingabe Feature-Daten verwendet werden, kann es sich um Punkte, Linien oder Polygone handeln. Wenn es sich bei den Eingabemaskendaten um ein Raster handelt, wird die Analyse an Positionen mit gültigen Werten, einschließlich Null, durchgeführt. Zellen, die in der Maskeneingabe einen NoData-Wert aufweisen, weisen in der Ausgabe ebenfalls einen NoData-Wert auf. | Composite Geodataset |
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