Oberflächenparameter (Spatial Analyst)

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.

    Aktivieren Sie den Parameter Geodätische Azimute projizieren, wenn Sie die Ausgabe von "Oberflächenparameter" als Gegenrichtungseingabe im Parameter Eingabe-Gegenrichtungs- oder -Fließrichtungs-Raster (in_back_direction_raster in Python) für ein Werkzeug im Toolset "Entfernung" verwenden.

  • 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.

  • Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.

  • 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

SurfaceParameters(in_raster, {parameter_type}, {local_surface_type}, {neighborhood_distance}, {use_adaptive_neighborhood}, {z_unit}, {output_slope_measurement}, {project_geodesic_azimuths}, {use_equatorial_aspect})
ParameterErklärungDatentyp
in_raster

Das Eingabe-Oberflächen-Raster.

Raster Layer
parameter_type
(optional)

Bestimmt den Typ des zu berechnenden Ausgabe-Oberflächenparameters.

  • SLOPEDie Änderungsrate der Höhe. Dies ist die Standardeinstellung.
  • ASPECTDie Neigungsrichtung der maximalen Änderungsrate für jede Zelle.
  • MEAN_CURVATUREMisst die Gesamtkrümmung der Oberfläche. Sie wird als Mittelwert der minimalen und maximalen Krümmung berechnet. Diese Krümmung beschreibt die intrinsische Konvexität oder Konkavität der Oberfläche unabhängig von der Richtung oder den Gravitationskräften.
  • TANGENTIAL_CURVATUREMisst die geometrische Normalkrümmung senkrecht zur Neigungslinie, tangential zur Konturlinie. Diese Krümmung wird i. d. R. angewendet, um die Fließkonvergenz oder -divergenz auf der Oberfläche zu beschreiben.
  • PROFILE_CURVATUREMisst die geometrische Normalkrümmung entlang der Neigungslinie. Diese Krümmung wird i. d. R. angewendet, um die Fließbeschleunigung oder -verlangsamung auf der Oberfläche zu beschreiben.
String
local_surface_type
(optional)

Bestimmt den Typ der Oberflächenfunktion, die um die Zielzelle angewendet wird.

  • QUADRATICWendet eine quadratische Oberflächenfunktion auf die benachbarten Zellen an. Dies ist die Standardeinstellung.
  • BIQUADRATICWendet eine biquadratische Oberflächenfunktion auf die benachbarten Zellen an.
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.

  • FIXED_NEIGHBORHOODAn allen Positionen wird eine einzelne (feste) Nachbarschaftsentfernung verwendet. Dies ist die Standardeinstellung.
  • ADAPTIVE_NEIGHBORHOODAn allen Positionen wird eine adaptive Nachbarschaftsentfernung verwendet.
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.

  • INCHDie lineare Einheit ist Zoll.
  • FOOTDie lineare Einheit ist Fuß.
  • YARDDie lineare Einheit ist Yard.
  • MILE_USDie lineare Einheit ist Meilen.
  • NAUTICAL_MILEDie lineare Einheit ist Seemeilen.
  • MILLIMETERDie lineare Einheit ist Millimeter.
  • CENTIMETERDie lineare Einheit ist Zentimeter.
  • METERDie lineare Einheit ist Meter.
  • KILOMETERDie lineare Einheit ist Kilometer.
  • DECIMETERDie lineare Einheit ist Dezimeter.
String
output_slope_measurement
(optional)

Wenn parameter_type gleich SLOPE ist, werden hiermit die Maßeinheiten (Grad oder Prozent) der Ausgabeneigungs-Raster bestimmt.

  • DEGREEDer Neigungswinkel wird in Grad berechnet.
  • PERCENT_RISEDer Neigungswinkel wird als prozentuale Steigung berechnet, die auch als prozentuale Neigung bezeichnet wird.
String
project_geodesic_azimuths
(optional)

Legt fest, ob geodätische Azimute projiziert werden, um die durch den Ausgabe-Raumbezug verursachte Winkelverzerrung zu korrigieren.

  • GEODESIC_AZIMUTHSGeodätische Azimute werden nicht projiziert. Dies ist die Standardeinstellung.
  • PROJECT_GEODESIC_AZIMUTHSGeodätische Azimute werden projiziert.
Boolean
use_equatorial_aspect
(optional)

Die Ausrichtung wird ab einem Punkt auf dem Äquator gemessen.

  • NORTH_POLE_ASPECTDie Ausrichtung wird ab dem Nordpol gemessen. Dies ist die Standardeinstellung.
  • EQUATORIAL_ASPECTDie Ausrichtung wird ab einem Punkt auf dem Äquator gemessen.
Boolean

Rückgabewert

NameErklärungDatentyp
out_raster

Das Ausgabe-Raster.

Raster

Codebeispiel

SurfaceParameters – Beispiel 1 (Python-Fenster)

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.sa import *
outSurfaceParameters = SurfaceParameters("elevation_1m.tif", "", "", "5 METERS",
                                         "ADAPTIVE_NEIGHBORHOOD", "", "PERCENT_RISE")
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters01.tif")
SurfaceParameters – Beispiel 2 (eigenständiges Skript)

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: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "PROFILE_CURVATURE"
inNeighborhoodDistance = "10 METERS"
inUseAdaptiveNeighborhood = "ADAPTIVE_NEIGHBORHOOD"

# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
                                         inNeighborhoodDistance, inUseAdaptiveNeighborhood)

# Save the output 
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters02.tif")
SurfaceParameters – Beispiel 3 (eigenständiges Skript)

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: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy.sa import *

# Set environment settings
arcpy.env.workspace = "C:/sapyexamples/data"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Set local variables
inRaster = "elevation_1m.tif"
inParameterType = "ASPECT"
inNeighborhoodDistance = "5 METERS"
inProjectGeodesicAzimuths = "PROJECT_GEODESIC_AZIMUTHS"

# Execute the tool
outSurfaceParameters = SurfaceParameters(inRaster, inParameterType, "",
                                         inNeighborhoodDistance, "", "", "",
                                         inProjectGeodesicAzimuths)

# Save the output 
outSurfaceParameters.save("C:/sapyexamples/output/outsurfaceparameters03.tif")

Lizenzinformationen

  • Basic: Erfordert Spatial Analyst oder 3D Analyst
  • Standard: Erfordert Spatial Analyst oder 3D Analyst
  • Advanced: Erfordert Spatial Analyst oder 3D Analyst

Verwandte Themen