Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Berechnet für jede Zelle die nächste Quelle auf Grundlage der geringsten akkumulativen Kosten über einer Kostenoberfläche berechnet, wobei die Oberflächenentfernung und horizontale und vertikale Kostenfaktoren berücksichtigt werden.
Weitere Informationen zur Funktionsweise der Werkzeuge zur Pfadentfernung
Verwendung
Die Werkzeuge zur Pfadentfernung ähneln den Kostenentfernungswerkzeugen, da beide die minimalen akkumulativen Reisekosten von einer Quelle zu jeder Position auf einer Raster-Oberfläche bestimmen. Die Werkzeuge zur Pfadentfernung erhöhen die Komplexität der Analyse, da sie sowohl die tatsächliche Oberflächenentfernung als auch andere horizontale und vertikale Faktoren berücksichtigen können.
Die Eingabequelldaten können eine Feature-Class oder ein Raster sein.
Wenn es sich bei den Eingabequelldaten um ein Raster handelt, besteht die Menge der Quellzellen aus allen Zellen im Quell-Raster, die über gültige Werte verfügen. Zellen mit NoData-Werten sind nicht in der Quellmenge enthalten. Der Wert 0 wird als legitime Quelle verwendet. Ein Quell-Raster kann problemlos mit den Extraktionswerkzeugen erstellt werden.
Wenn die Eingabequelldaten eine Feature-Class sind, werden die Quellenpositionen intern in ein Raster konvertiert, bevor die Analyse ausgeführt wird. Die Auflösung des Rasters kann mithilfe der Umgebung der Zellengröße gesteuert werden. Standardmäßig wird die Auflösung durch die maximale Zellengröße zwischen den Eingaberastern für Kosten, Fläche, horizontalem Faktor und vertikalem Faktor bestimmt. Wenn keine dieser optionalen Eingaben angegeben wird, muss ein bestimmter Wert für die Umgebung der Zellengröße festgelegt werden.
Bei der Verwendung von Polygon-Feature-Daten als Eingabequelldaten muss auf den Umgang mit der Größe der Ausgabezelle geachtet werden, wenn diese, relativ zu dem in der Eingabe vorhandenen Detail, grob ist. Der interne Rasterungsprozess greift auf dieselbe Standardmethode für den Zellenzuweisungstyp zu wie das Werkzeug Polygon in Raster, nämlichCELL_CENTER. Das bedeutet, dass Daten, die sich nicht am Zellmittelpunkt befinden, nicht in die vorläufige, gerasterte Quellausgabe aufgenommen und folglich nicht in den Entfernungsberechnungen dargestellt werden. Wenn Ihre Quellen beispielsweise aus einer Serie kleiner Polygone bestehen, wie etwa Gebäudegrundrisse, die in Relation zur Ausgabe-Zellengröße klein sind, kann es sein, dass nur einige von ihnen an den Mittelpunkten der Ausgabe-Raster-Zellen liegen und scheinbar dazu führen, dass die meisten anderen Polygone in der Analyse nicht enthalten sind.
Um dies zu vermeiden können Sie die Eingabe-Features in einem Zwischenschritt direkt mit dem Werkzeug Polygon in Raster rastern, ein Prioritätsfeld festlegen und die sich ergebende Ausgabe als Eingabe für das Entfernungswerkzeug verwenden. Alternativ können Sie eine Zellengröße auswählen, die so klein ist, dass der jeweilige Detaillierungsgrad von den Eingabe-Features erfasst wird.
Zum Berechnen der Zuordnung können die Quellenpositionen über einen zugeordneten Wert verfügen, der durch den Parameter Quellfeld angegeben wird. Wenn die Eingabequelle ein ganzzahliges Raster ist, lautet das Standardfeld VALUE. Handelt es sich hierbei um ein Feature, ist dies das erste ganzzahlige Feld in der Attributtabelle. Sind die Eingabequelldaten ein Gleitkomma-Raster, muss ein ganzzahliger Raster-Parameter angegeben werden.
Zellen mit dem Wert "NoData" fungieren als Barrieren in den Werkzeugen zur Pfadentfernung. Die Kostenentfernung für die den NoData-Werten zugrunde liegenden Zellen wird anhand der akkumulativen Kosten berechnet, die zum Umgehen der NoData-Barriere notwendig sind. Jede Zellenposition, der auf einem beliebigen Eingabe-Raster der Wert "NoData" zugewiesen ist, erhält auf allen Ausgabe-Rastern den Wert "NoData".
Wenn die Eingabequelldaten und das Kosten-Raster unterschiedliche Ausdehnungen haben, wird als Standardausgabeausdehnung der Schnittpunkt beider Elemente verwendet. Um eine Kostenentfernungsoberfläche für die gesamte Ausdehnung zu erhalten, wählen Sie die Option Vereinigungsmenge der Eingaben in den Ausgabeumgebungseinstellungen für die Ausdehnung aus.
Wenn eine Maske in der Umgebung festgelegt wurde, werden alle maskierten Zellen als NoData-Werte verarbeitet.
Wenn im Fenster Raster-Analyse eine Maske definiert wurde und die relevanten Zellen eine Quelle maskieren, werden die Berechnungen nur für die verbleibenden Quellenzellen ausgeführt. Die maskierten Quellenzellen werden bei den Berechnungen nicht berücksichtigt. Diesen Zellenpositionen wird in allen Ausgabe-Rastern (Entfernung, Zuordnung und Rückverknüpfung) der Wert "NoData" zugewiesen.
Die Ausgabe des Werkzeugs Ausrichtung kann als Eingabe für das horizontale Eingabe-Raster verwendet werden.
Die Maximale Entfernung wird in den gleichen Kosteneinheiten wie im Kosten-Raster angegeben.
Für das Ausgabe-Entfernungs-Raster ist die kostengünstigste Entfernung (oder minimale akkumulative Kostenentfernung) einer Zelle zu einem Satz von Quellenpositionen die Untergrenze der kostengünstigsten Entfernungen von der Zelle zu allen Quellenpositionen.
Die Standardwerte für die Modifikatoren des horizontalen Faktors lauten folgendermaßen:
Keywords Zero factor Cut angle Slope Side value -------------- ----------- ----------- ----- --------- Binary 1.0 45 ~ ~ Forward 0.5 45 (fixed) ~ 1.0 Linear 0.5 181 1/90 ~ Inverse linear 2.0 180 -1/90 ~
Die Standardwerte für die Modifikatoren des vertikalen Faktors lauten folgendermaßen:
Keyword Zero factor Low cut Height cut Slope Power Cos Sec angle angle power power ------------------------ ----------- ------- ---------- ----- ----- ----- ----- Binary 1.0 -30 30 ~ ~ ~ ~ Linear 1.0 -90 90 1/90 ~ ~ ~ Symmetric linear 1.0 -90 90 1/90 ~ ~ ~ Inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Symmetric inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Cos ~ -90 90 ~ 1.0 ~ ~ Sec ~ -90 90 ~ 1.0 ~ ~ Cos_sec ~ -90 90 ~ ~ 1.0 1.0 Sec_cos ~ -90 90 ~ ~ 1.0 1.0
Die Eigenschaften der Quelle oder die Reisenden von einer Quelle können durch den Quellkostenmultiplikator (die Reisekosten oder die Magnitude an der Quelle), die Quellstartkosten (Startkosten vor Beginn der Bewegung), die Quellresistenzrate (eine dynamische Anpassung unter Berücksichtigung der Auswirkungen der Gesamtkosten, z. B. die Simulation der Ermüdung eines Wanderers) und die Quellkapazität (wie hoch sind die Kosten, die eine Quelle angleichen kann, bevor die Grenze erreicht wird) gesteuert werden.
Wenn Parameter der Quelleneigenschaften anhand eines Wertes angegeben werden, wird dieser auf alle Quellen angewendet. Wenn die Parameter durch Felder angegeben werden, die mit der Quelle verknüpft sind, werden die Werte in der Tabelle eindeutig auf die entsprechenden Quellen angewendet.
Weitere Informationen zur Geoverarbeitung von Umgebungen mit diesem Werkzeug finden Sie unter Analyseumgebungen und Spatial Analyst.
Syntax
PathAllocation (in_source_data, {source_field}, {in_cost_raster}, {in_surface_raster}, {in_horizontal_raster}, {horizontal_factor}, {in_vertical_raster}, {vertical_factor}, {maximum_distance}, {in_value_raster}, {out_distance_raster}, {out_backlink_raster}, {source_cost_multiplier}, {source_start_cost}, {source_resistance_rate}, {source_capacity})
Parameter | Erläuterung | Datentyp |
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 ganzzahliges oder Gleitkomma-Raster sein. Ist das Eingabequellen-Raster ein Gleitkomma-Raster, muss ein ganzzahliges Eingabewert-Raster ({in_value_raster}) angegeben werden. Das Wert-Raster hat Vorrang gegenüber einer beliebigen Einstellung im {source_field}. | Raster Layer | Feature Layer |
source_field (optional) | Das Feld für die Zuweisung von Werten zu den Quellenpositionen. Es muss ganzzahlig sein. Wenn {in_value_raster} festgelegt wurde, haben die Werte in dieser Eingabe Vorrang gegenüber allen Einstellungen in {source_field}. | Field |
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 ganzzahlige 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 ganzzahlig 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 Horizontal Factor definiert die Beziehung zwischen dem horizontalen Kostenfaktor und dem HRMA (Horizontal Relative Moving Angle). 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:
Die Modifikatoren für die Schlüsselwörter des horizontalen Faktors lauten wie folgt:
| 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 Vertical factor definiert die Beziehung zwischen dem vertikalen Kostenfaktor und dem 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:
Die Modifikatoren für die Parameter des vertikalen Faktors lauten wie folgt:
| 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 |
in_value_raster (optional) | Das ganzzahlige Eingabe-Raster, das die Zonenwerte identifiziert, die für jede Eingabequellenposition verwendet werden sollen. Für jede Quellenposition (Zelle oder Feature) wird der durch das Eingabewert-Raster ({in_value_raster}) definierte Wert allen Zellen zugewiesen, die der Quellenposition für die Berechnung zugeordnet sind. Das Wert-Raster hat Vorrang gegenüber einer beliebigen Einstellung für das {source_field}. | Raster Layer |
out_distance_raster (optional) | Das Ausgabe-Raster für die Pfadentfernung. Dieses Ausgabe-Raster für die Pfadentfernung 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 Dataset |
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. | Raster Dataset |
source_cost_multiplier (optional) | Multiplikator zum Anwenden der Kostenwerte. Ermöglicht die Steuerung des Reisemodus oder der Magnitude an einer Quelle. Je größer der Multiplikator, desto höher sind die Kosten, um sich von einer Zelle zur anderen zu bewegen. Die Werte müssen größer als Null sein. Die Standardeinstellung ist 1. | Double | Field |
source_start_cost (optional) | Die Startkosten, mit denen die Kostenberechnungen beginnen. Ermöglicht die Festlegung der Fixkosten, die mit einer Quelle verknüpft sind. Der Kostenalgorithmus beginnt mit dem durch die source_start_cost festgelegten Wert statt mit einem Kostenwert von Null. Die Wert müssen größer gleich 0 sein. Die Standardeinstellung ist 0. | Double | Field |
source_resistance_rate (optional) | Die Rate, mit der die akkumulativen Kosten multipliziert werden, um die Resistenzanpassung zu ermitteln. Dieser Parameter simuliert den steigenden Aufwand zur Vermeidung von Kosten bei steigenden akkumulativen Kosten. Dies dient zur Modellierung der Müdigkeit des Reisenden. Die zunehmenden akkumulativen Kosten zur Erreichung einer Zelle werden mit der Resistenzrate multipliziert und den Kosten für die Bewegung in die nachfolgende Zelle hinzugefügt. Je größer die Resistenzrate, desto höher sind die zusätzlichen Kosten zur Erreichung der nächsten Zelle, die für jede nachfolgende Bewegung zusammengefasst werden. Da die Resistenzrate mit der Gesamtrate vergleichbar ist und die akkumulativen Kostenwerte im Allgemeinen sehr hoch sind, werden, je nach akkumulativen Kostenwerten, geringe Resistenzraten wie 0,02, 0,005 oder noch kleiner vorgeschlagen. Die Wert müssen größer gleich 0 sein. Die Standardeinstellung ist 0. | Double | Field |
source_capacity (optional) | Definiert die Kostenkapazität für den Reisenden von einer Quelle. Jede Quelle wächst bis zur angegebenen Kapazität. Die Werte müssen größer als Null sein. Die Standardkapazität reicht bis zur Kante des Ausgabe-Rasters. | Double | Field |
Rückgabewert
Name | Erläuterung | Datentyp |
out_allocation_raster | Das Ausgabe Raster für "Pfadentfernungs-Zuordnung". Dieses Raster gibt für jede Quellenposition (Zelle oder Feature) die Zone an, die mit den geringsten akkumulativen Kosten über einer Kostenoberfläche erreicht werden kann, wobei die Oberflächenentfernung und horizontale und vertikale Kostenfaktoren berücksichtigt werden. Das Ausgabe-Raster ist ganzzahlig. | Raster |
Codebeispiel
PathAllocation – Beispiel 1 (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht die Verwendung des Werkzeugs PathDistanceAllocation.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
pathAlloc = PathAllocation("observers.shp", "costraster", "elevation", "hfraster",
HfForward(0.5, 1.0), "elevation", VfBinary(1.0, -30, 30),
"", "valueraster", "FID", "c:/sapyexamples/output/optpathdist",
"c:/sapyexamples/output/optpathbl", "Multiplier", "StartCost", "Resistance", 500000)
pathAlloc.save("c:/sapyexamples/output/allocpath")
PathAllocation – Skriptbeispiel
Berechnet für jede Zelle die nächste Quelle auf Grundlage der geringsten akkumulativen Kosten über einer Kostenoberfläche berechnet, wobei die Oberflächenentfernung und horizontale und vertikale Kostenfaktoren berücksichtigt werden.
# Name: PathAllocation_Ex_02.py
# Description: Calculates, for each cell, its nearest source based
# on the least accumulative cost over a cost surface,
# 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"
costRast = "costraster"
surfaceRast = "elevation"
# The horizontal factor
inHoriz = "hfraster"
# Create the HfForward Object
zeroFactor = 0.5
sideValue = 1.0
myHorizFactor = HfForward(zeroFactor, sideValue)
#The vertical factor
inVertical = "elevation"
# Create the VfBinary Object
zeroFactor = 1.0
lowCutAngle = -30
highCutAngle = 30
myVerticalFactor = VfBinary(zeroFactor, lowCutAngle, highCutAngle)
maxDist = ""
valRaster = "valueraster"
sourceField = "FID"
optPathDistOut = "c:/sapyexamples/output/optdistpath"
optPathBLOut = "c:/sapyexamples/output/pathblinkout"
multiplier = "Multiplier"
startCost = "StartCost"
resistance = "Resistance"
capacity = 500000
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute PathAllocation
pathAlloc = PathAllocation(inSource, costRast, surfaceRast,
inHoriz, myHorizFactor, inVertical, myVerticalFactor,
maxDist, valRaster, sourceField,
optPathDistOut, optPathBLOut, multiplier, startCost,
resistance, capacity)
# Save the output
pathAlloc.save("c:/sapyexamples/output/allocpath02")
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst