Pfadentfernung (Spatial Analyst)

Zusammenfassung

Berechnet für jede Zelle die Entfernung mit den geringsten akkumulativen Kosten zur nächstgelegenen Quelle, wobei die Oberflächenentfernung und horizontale und vertikale Kostenfaktoren berücksichtigt werden.

Weitere Informationen zur Funktionsweise der Pfadentfernungswerkzeuge

Verwendung

Syntax

PathDistance (in_source_data, {in_cost_raster}, {in_surface_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor}, {maximum_distance}, {out_backlink_raster})
ParameterErläuterungDatentyp
in_source_data

Die Eingabequellenpositionen.

Dies ist ein Raster oder ein Feature-Dataset, das die Zellen oder Positionen identifiziert, für die die Entfernung mit den geringsten akkumulativen Kosten jeder Ausgabezellenposition berechnet wird.

Bei Rastern kann der Eingabetyp ein Ganzzahl- oder Gleitkomma-Raster sein.

Raster Layer | Feature Layer
in_cost_raster
(optional)

Ein Raster, das die Impedanz oder die Kosten für eine planimetrische Bewegung durch jede Zelle definiert.

Der Wert an jeder Zellenposition stellt die Kosten pro Einheitenentfernung für die Bewegung durch die Zelle dar. Jeder Zellenpositionswert wird mit der Zellenauflösung multipliziert, und gleichzeitig werden diagonale Bewegungen ausgeglichen, um die Gesamtkosten für die Bewegung durch die Zelle zu erhalten.

Die Werte im Kosten-Raster können Ganzzahl- oder Gleitkommawerte sein, sie dürfen jedoch nicht negativ oder 0 sein (negative oder keine Kosten sind nicht zulässig).

Raster Layer
in_surface_raster
(optional)

Ein Raster, das die Höhenwerte an jeder Zellenposition definiert.

Beim Übergang zwischen Zellen werden die Werte verwendet, um die tatsächliche Oberflächenentfernung zu berechnen.

Raster Layer
in_horizontal_raster
(optional)

Ein Raster, das die horizontale Richtung an jeder Zelle definiert.

Die Werte in dem Raster müssen Ganzzahlwerte zwischen 0 und 360 Grad sein. Dabei steht 0 Grad für Norden (am Bildschirm oben), und der Winkel nimmt im Uhrzeigersinn zu. Ebenen Flächen sollte der Wert -1 zugewiesen werden. Beim Übergang von einer Zelle zu einer benachbarten Zelle werden die Werte an jeder Position zusammen mit dem {horizontal_factor} verwendet, um die anfallenden horizontalen Kosten zu bestimmen.

Raster Layer
horizontal_factor
(optional)

Das Objekt Horizontaler Faktor definiert die Beziehung zwischen dem horizontalen Kostenfaktor und dem horizontalen relativen Bewegungswinkel (HRMA).

Es stehen mehrere Faktoren mit Modifikatoren zur Auswahl, die ein definiertes Diagramm für den horizontalen Faktor identifizieren. Darüber hinaus kann mithilfe einer Tabelle ein benutzerdefiniertes Diagramm erstellt werden. Die Diagramme identifizieren den horizontalen Faktor, der zum Berechnen der Gesamtkosten für die Bewegung in eine benachbarte Zelle verwendet wird.

In den folgenden Erläuterungen werden zwei Akronyme verwendet: 'HF' steht für horizontaler Faktor, d. h. für die horizontalen Hindernisse bei der Bewegung von einer Zelle zur nächsten, und 'HRMA' steht für horizontaler relativer Bewegungswinkel, d. h. für den Winkel zwischen der horizontalen Richtung von einer Zelle und der Bewegungsrichtung.

Das Objekt kommt in den folgenden Formen vor:

Die Definitionen und Parameter lauten wie folgt:

  • HfBinary({zero_factor},{cut_angle})

    Wenn der HRMA kleiner ist als der Schnittwinkel, wird für den HF der dem Null-Faktor zugewiesene Wert festgelegt. Andernfalls ist dieser unendlich.

  • HfForward({zero_factor},{side_value})

    Legt fest, dass nur Vorwärtsbewegungen zulässig sind. Der Wert muss größer als oder gleich 0 Grad und kleiner als oder gleich 90 Grad sein (0 <= HRMA < 90). Wenn der HRMA größer als 45 Grad ist, wird als HF für die Zelle der dem Null-Faktor zugewiesene Wert festgelegt. Wenn der HRMA größer als oder gleich 45 Grad ist, wird der Wert des Seitenwert-Modifikators verwendet. Der HF für einen HRMA, der größer als oder gleich 90 Grad ist, wird auf unendlich festgelegt.

  • HfLinear({zero_factor},{cut_angle},{slope})

    Gibt an, dass der HF eine lineare Funktion des HRMA ist.

  • HfInverseLinear({zero_factor},{cut_angle},{slope})

    Gibt an, dass der HF eine invers lineare Funktion des HRMA ist.

  • HfTable(in_table)

    Gibt an, dass zum Definieren des Diagramms für den horizontalen Faktor und damit zum Bestimmen der HFs eine Tabellendatei verwendet wird.

Die Modifikatoren für die Schlüsselwörter des horizontalen Faktors lauten wie folgt:

  • {zero_factor} – Gibt den horizontalen Faktor an, der bei einem HRMA von 0 Grad verwendet wird. Dieser Faktor positioniert den Y-Schnittpunkt für alle Funktionen für den horizontalen Faktor.
  • {cut_angle} ‑ Definiert den HRMA, ab dem der HF auf unendlich festgelegt wird.
  • {slope} – Legt die Neigung der Geraden fest, die mit den Schlüsselwörtern "LINEAR" und "INVERSE_LINEAR" für den horizontalen Faktor verwendet wird. Die Neigung wird als Verhältnis des Anstiegs auf die Länge angegeben (z. B. eine 45-Grad-Neigung ist 1/45 und wird als 0,02222 eingegeben).
  • {side_value} – Legt den HF fest, wenn der HRMA größer als oder gleich 45 Grad und kleiner als 90 Grad ist und wenn das Schlüsselwort "FORWARD" für den horizontalen Faktor angegeben wird.
  • in_table – Gibt den Namen der Tabelle an, die den HF definiert.

Horizontal factor
in_vertical_raster
(optional)

Ein Raster, das die Z-Werte für jede Zellenposition definiert.

Die Werte werden zum Berechnen der Neigung verwendet, die zum Identifizieren des vertikalen Faktors beim Übergang von einer Zelle zur anderen dient.

Raster Layer
vertical_factor
(optional)

Das Objekt Vertikaler Faktor definiert die Beziehung zwischen dem vertikalen Kostenfaktor und dem vertikalen relativen Bewegungswinkel (VRMA, Vertical Relative Moving Angle).

Es stehen mehrere Faktoren mit Modifikatoren zur Auswahl, die ein definiertes Diagramm für den vertikalen Faktor identifizieren. Darüber hinaus kann mithilfe einer Tabelle ein benutzerdefiniertes Diagramm erstellt werden. Die Diagramme identifizieren den vertikalen Faktor, der zum Berechnen der Gesamtkosten für die Bewegung in eine benachbarte Zelle verwendet wird.

In den folgenden Erläuterungen werden zwei Akronyme verwendet: 'VF' steht für vertikaler Faktor, d. h. für die vertikalen Hindernisse bei der Bewegung von einer Zelle zur nächsten, und 'VRMA' steht für vertikaler relativer Bewegungswinkel, d. h. für den Neigungswinkel zwischen der Ausgangs- oder Verarbeitungszelle (FROM) und der Zielzelle (TO).

Das Objekt kommt in den folgenden Formen vor:

Die Definitionen und Parameter lauten wie folgt:

  • VfBinary({zero_factor},{low_cut_angle},{high_cut_angle})

    Wenn der VRMA größer als der untere Schnittwinkel und kleiner als der obere Schnittwinkel ist, wird für den VF der dem Null-Faktor zugewiesene Wert festgelegt. Andernfalls ist dieser unendlich.

  • VfLinear({zero_factor},{low_cut_angle},{high_cut_angle},{slope})

    Gibt an, dass der VF eine lineare Funktion des VRMA ist.

  • VfInverseLinear({zero_factor},{low_cut_angle},{high_cut_angle},{slope})

    Gibt an, dass der VF eine invers lineare Funktion des VRMA ist.

  • VfSymLinear({zero_factor},{low_cut_angle},{high_cut_angle},{slope})

    Gibt an, dass der VF eine lineare Funktion des VRMA auf der negativen oder positiven Seite des VRMA ist und dass die beiden linearen Funktionen hinsichtlich der VF-Achse bzw. Y-Achse symmetrisch sind.

  • VfSymInverseLinear({zero_factor},{low_cut_angle},{high_cut_angle},{slope})

    Gibt an, dass der VF eine invers lineare Funktion des VRMA auf der negativen oder positiven Seite des VRMA ist und dass die beiden linearen Funktionen hinsichtlich der VF-Achse bzw. Y-Achse symmetrisch sind.

  • VfCos({low_cut_angle},{high_cut_angle},{cos_power})

    Identifiziert den VF als kosinusbasierte Funktion des VRMA.

  • VfSec({low_cut_angle},{high_cut_angle},{sec_power})

    Identifiziert den VF als sekantenbasierte Funktion des VRMA.

  • VfCosSec({low_cut_angle},{high_cut_angle},{cos_power},{sec_power})

    Gibt an, dass der VF bei einem negativen VRMA die kosinusbasierte Funktion des VRMA und bei einem positiven VRMA die sekantenbasierte Funktion des VRMA ist.

  • VfSecCos({low_cut_angle},{high_cut_angle},{sec_power},{cos_power})

    Gibt an, dass der VF bei einem negativen VRMA die sekantenbasierte Funktion des VRMA und bei einem positiven VRMA die kosinusbasierte Funktion des VRMA ist.

  • VfTable(in_table)

    Gibt an, dass zum Definieren des Diagramms für den vertikalen Faktor und damit zum Bestimmen der VFs eine Tabellendatei verwendet wird.

Die Modifikatoren für die Parameter des vertikalen Faktors lauten wie folgt:

  • {zero_factor} – Legt den vertikalen Faktor fest, der verwendet wird, wenn der VRMA 0 ist. Dieser Faktor positioniert den Y-Schnittpunkt der angegebenen Funktion. Laut Definition ist der Null-Faktor nicht auf trigonometrische vertikale Funktionen (Cos, Sec, Cos_Sec oder Sec_Cos) anwendbar. Der Y-Schnittpunkt wird von diesen Funktionen definiert.
  • {low_cut_angle} ‑ Definiert den VRMA, unter dem der VF auf unendlich festgelegt wird.
  • {high_cut_angle} ‑ Definiert den VRMA, über dem der VF auf unendlich festgelegt wird.
  • {slope} ‑ Gibt die Neigung der Geraden an, die mit den Parametern VfLinear und VfInverseLinear verwendet wird. Die Neigung wird als Verhältnis des Anstiegs auf die Länge angegeben (z. B. eine 45-Grad-Neigung ist 1/45 und wird als 0,02222 eingegeben).
  • in_table – Gibt den Namen der Tabelle an, die den VF definiert.
Vertical factor
maximum_distance
(optional)

Definiert den Schwellenwert, den die akkumulativen Kostenwerte nicht überschreiten dürfen.

Wenn ein akkumulativer Kostenentfernungswert diesen Wert überschreitet, lautet der Ausgabewert für die Zellenposition "NoData". Die maximale Entfernung definiert die Ausdehnung, für die akkumulative Kostenentfernungen berechnet werden.

Die Standardentfernung ist bis zur Kante des Ausgabe-Rasters.

Double
out_backlink_raster
(optional)

Das Ausgabe-Raster für Kostenrückverknüpfungen.

Das Rückverknüpfungs-Raster enthält Werte von 0 bis 8. Mit diesen Werten wird die Richtung definiert oder die nächste angrenzende Zelle (die nachfolgende Zelle) entlang dem kleinsten akkumulativen Kostenpfad von einer Zelle zu ihrer kostengünstigsten Quelle identifiziert, wobei die Oberflächenentfernung sowie horizontale und vertikale Oberflächenfaktoren berücksichtigt werden.

Wenn der Pfad in die rechte benachbarte Zelle übergeht, wird der Zelle der Wert 1 zugeordnet, gefolgt von 2 für die diagonal rechts unten angeordnete Zelle. Die folgenden Zellen werden im Uhrzeigersinn nummeriert. Der Wert 0 ist für die Quellenzellen reserviert.

Rückverknüpfungs-Positionen
Raster Dataset

Rückgabewert

NameErläuterungDatentyp
out_distance_raster

Das Ausgabe-Raster für die Verbindungsentfernung.

Dieses Ausgabe-Raster für die Verbindungsentfernung gibt für jede Zelle die geringste akkumulative Kostenentfernung über einer Kostenoberfläche zu den festgelegten Quellenpositionen an, wobei die Oberflächenentfernung sowie horizontale und vertikale Oberflächenfaktoren berücksichtigt werden.

Eine Quelle kann eine Zelle, ein Satz von Zellen oder eine bzw. mehrere Feature-Positionen sein.

Das Ausgabe-Raster ist ein Gleitkomma-Raster.

Raster

Codebeispiel

PathDistance – Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht die Verwendung des Werkzeugs PathDistance.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outPathDist = PathDistance("observers.shp", "costraster", "elevation", "backlink2",
                            HfForward(0.5, 1.0), "focalcost.tif", VfBinary(1.0, -30, 30),  
                            50000, "c:/sapyexamples/output/backlinkpath")
outPathDist.save("c:/sapyexamples/output/pathdistout")
PathDistance – Beispiel 2 (eigenständiges Skript)

Berechnet für jede Zelle die Entfernung mit den geringsten akkumulativen Kosten zur nächstgelegenen Quelle, wobei die Oberflächenentfernung und horizontale und vertikale Kostenfaktoren berücksichtigt werden.

# Name: PathDistance_Ex_02.py
# Description: Calculates, for each cell, the least accumulative 
#              cost distance to the nearest source, while accounting 
#              for surface distance and horizontal and vertical 
#              cost factors.  
# Requirements: Spatial Analyst Extension

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

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

# Set local variables
inSource = "observers.shp"
inCostRast = "costraster"
inElev = "elevation"

# The horizontal factor
inHoriz = "backlink2"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)

#The vertical factor
inVertical = "focalcost.tif"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)

maxDist = 50000
optBacklinkOut = "c:/sapyexamples/output/pathbacklink"

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

# Execute PathDistance
outPathDist = PathDistance(inSource, inCostRast, inElev, inHoriz, 
                           myHorizFactor, inVertical, myVerticalFactor, 
                           maxDist, optBacklinkOut)

# Save the output 
outPathDist.save("c:/sapyexamples/output/pathdistout02")

Umgebungen

Verwandte Themen

Lizenzinformationen

ArcView: Erfordert Spatial Analyst
ArcEditor: Erfordert Spatial Analyst
ArcInfo: Erfordert Spatial Analyst

7/10/2012