Zusammenfassung
Berechnet die kleinste akkumulative Kostenentfernung von oder zur kostengünstigsten Quelle unter Berücksichtigung der Oberflächenentfernung zusammen mit horizontalen und vertikalen Kostenfaktoren.
Abbildung
Verwendung
Dieses Portal-Werkzeug für die Raster-Analyse ist verfügbar, wenn Sie bei einem ArcGIS Enterprise -Portal mit einem konfigurierten ArcGIS Image Server für die Raster Analysis angemeldet sind. Beim Aufruf des Werkzeugs dient ArcGIS Pro als Client. Die Verarbeitung erfolgt auf den Servern, die mit ArcGIS Enterprise verbunden sind. Das Portal-Werkzeug akzeptiert Layer aus dem Portal als Eingabe und erstellt die Ausgabe im Portal.
Als Eingabe-Raster-Layer kann ein Layer aus dem Portal, ein URI bzw. eine URL zu einem Image-Service oder die Ausgabe des Werkzeugs Image Server-Layer erstellen verwendet werden. Bei dem Eingabe-Feature-Layer kann es sich um einen Layer aus dem Portal oder ein URI bzw. eine URL zu einem Feature-Service handeln. Lokale Raster-Daten oder -Layer werden von diesem Werkzeug nicht unterstützt. Obwohl Sie lokale Feature-Daten und Layer als Eingabe für dieses Portal verwenden können, empfiehlt es sich, Layer aus Ihrem Portal als Eingabe zu nutzen.
Ein Beispiel für die Anwendung dieses Werkzeugs ist das Identifizieren der kostengünstigsten Route für den Bau einer Straße zu einer geplanten Schule.
Wenn es sich bei den Eingabequelldaten um einen Image-Service 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.
Liegen die Eingabequelldaten in Form eines Feature-Service vor, werden die Quellenpositionen intern in ein Raster konvertiert, bevor die Analyse ausgeführt wird. Die Auflösung des Rasters kann mithilfe des Parameters Ausgabe-Zellengröße oder der Zellengröße-Umgebung gesteuert werden. Standardmäßig entspricht die Auflösung der Breite oder Höhe (der jeweils kleinere Wert) der Ausdehnung des Eingabe-Features im Eingabe-Raumbezug, dividiert durch 250.
Zellenpositionen mit "NoData" im Eingabe-Kosten-Raster fungieren als Barrieren. Jede Zellenposition, der der Wert "NoData" auf der Eingabe-Oberfläche zugewiesen ist, erhält auf allen Ausgabe-Rastern den Wert "NoData".
Für den Ausgabe-Entfernungs-Image-Service ist die kostengünstigste Entfernung (oder minimale akkumulative Kostenentfernung) einer Zelle von oder zu einer Reihe von Quellenpositionen die Untergrenze der kostengünstigsten Entfernungen von der Zelle zu allen Quellenpositionen.
Das Kosten-Raster kann Werte von 0 enthalten, da der Algorithmus ein multiplikativer Prozess ist. Wenn das Kosten-Raster Werte von 0 enthält und diese Werte Gebiete mit den niedrigsten Kosten darstellen, ändern Sie die Werte von 0 in einen kleinen positiven Wert (z. B. 0,01), bevor Sie "Reisekosten berechnen" ausführen. Wenn Flächen mit dem Wert 0 Gebiete darstellen, die von der Analyse ausgeschlossen werden sollen, sollten diese Werte vor dem Ausführen von "Reisekosten berechnen" in "NoData" geändert werden.
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 Low High Slope Power Cos Sec factor cut cut power power angle angle ------------------------ ------ ----- ----- ----- ----- ----- ----- 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 oder zu einer Quelle können durch bestimmte Parameter gesteuert werden. Mit dem Parameter Quellkostenmultiplikator werden die Reisekosten oder die Magnitude an der Quelle bestimmt und mit Quellstartkosten die Startkosten vor Beginn der Bewegung. Die Quellresistenzrate stellt eine dynamische Anpassung unter Berücksichtigung der Auswirkungen der Gesamtkosten dar, z. B. die Simulation der Ermüdung eines Wanderers. Mit Quellkapazität wird festgelegt, wie hoch die Kosten sind, die eine Quelle angleichen kann, bevor die Grenze erreicht wird. Anhand der Reiserichtung wird ermittelt, ob der Reisende an einer Quelle startet und zu Nicht-Quellenpositionen reist oder an anderen Nicht-Quellenpositionen startet und zurück zu einer Quelle reist.
Wenn der Parameter Quellstartkosten festgelegt ist und Reiserichtung Von Quelle reisen entspricht, werden die Quellenpositionen der Ausgabe-Kostenentfernungsoberfläche auf den Wert Quellstartkosten gesetzt; andernfalls werden die Quellenpositionen der Ausgabe-Kostenentfernungsoberfläche auf Null eingestellt.
Wenn einer der Parameter der Quelleneigenschaften anhand eines Feldes festgelegt wird, wird die Quelleneigenschaft je nach Quelle und entsprechend den Informationen, die in diesem Feld für die Quelldaten angegeben sind, angewendet. Wenn ein Schlüsselwort oder ein konstanter Wert angegeben ist, wird er auf alle Quellen angewendet.
Syntax
arcpy.ra.CalculateTravelCost(inputSourceRasterOrFeatures, outputDistanceName, {inputCostRaster}, {inputSurfaceRaster}, {maximumDistance}, {inputHorizontalRaster}, {horizontalFactor}, {inputVerticalRaster}, {verticalFactor}, {sourceCostMultiplier}, {sourceStartCost}, {sourceResistanceRate}, {sourceCapacity}, {sourceTravelDirection}, {outputBacklinkName}, {outputAllocationName}, {allocationField})
Parameter | Erklärung | Datentyp |
inputSourceRasterOrFeatures | Der Layer, der die Quellen definiert, zu denen die Entfernung berechnet werden soll. Der Layer kann ein Raster- oder Feature-Layer sein. | Raster Layer; Image Service; Feature Layer; String |
outputDistanceName | Der Name des Ausgabe-Entfernungs-Raster-Service. Der Kostenentfernungs-Image-Service gibt für jede Zelle die geringste akkumulative Kostenentfernung über die Kostenoberfläche zu den festgelegten Quellenpositionen an. | String |
inputCostRaster (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; Image Service; String |
inputSurfaceRaster (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; Image Service; String |
maximumDistance (optional) | Definiert den Schwellenwert, den die akkumulativen Kostenwerte nicht überschreiten dürfen. | Double |
inputHorizontalRaster (optional) | Ein Raster, das die horizontale Richtung an jeder Zelle definiert. Die Werte in dem Raster müssen ganzzahlige Werte 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; Image Service; String |
horizontalFactor (optional) | Der horizontale Faktor definiert die Beziehung zwischen dem horizontalen Kostenfaktor und dem horizontalen relativen Bewegungswinkel. Es stehen mehrere Faktoren mit Modifikatoren zur Auswahl, die ein definiertes Diagramm für den horizontalen Faktor identifizieren. 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. Es sind mehrere Typen horizontaler Faktoren verfügbar:
Der Standardwert ist Binär. Merkmale für die Schlüsselwörter des horizontalen Faktors:
| Horizontal Factor |
inputVerticalRaster (optional) | Ein Raster, das den vertikalen Wert (Z-Wert) für jede Zelle definiert. | Raster Layer; Image Service; String |
verticalFactor (optional) | Der vertikale 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. 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). Es sind mehrere Typen vertikaler Faktoren verfügbar:
Der Standardwert ist Binär. Merkmale für die Schlüsselwörter des vertikalen Faktors:
| Vertical Factor |
sourceCostMultiplier (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. Der Standardwert ist 1. | Double; Field |
sourceStartCost (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 sourceStartCost festgelegten Wert statt mit einem Kostenwert von Null. Die Wert müssen größer gleich 0 sein. Die Standardeinstellung ist 0. | Double; Field |
sourceResistanceRate (optional) | 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. Dies ist die geänderte Version einer zusammengesetzten Formel zur Berechnung des Zinssatzes, anhand derer die offensichtlichen Kosten beim Reisen durch eine Zelle berechnet werden. Mit steigendem Wert der Resistenzrate erhöhen sich auch die Kosten der später besuchten Zellen. 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 und 0,005 oder noch kleiner vorgeschlagen. Die Wert müssen größer gleich 0 sein. Die Standardeinstellung ist 0. | Double; Field |
sourceCapacity (optional) | Definiert die Kostenkapazität für den Reisenden für eine Quelle. Die Kostenberechnungen werden für jede Quelle fortgesetzt, bis die angegebene Kapazität erreicht ist. Die Werte müssen größer als Null sein. Die Standardkapazität reicht bis zur Kante des Ausgabe-Rasters. | Double; Field |
sourceTravelDirection (optional) | Definiert die Richtung des Reisenden bei Anwendung von horizontalen und vertikalen Faktoren, der Quellresistenzrate und der Quellstartkosten.
Geben Sie das Schlüsselwort FROM_SOURCE bzw. TO_SOURCE an, das auf alle Quellen angewendet wird. Alternativ können Sie in den Quelldaten ein Feld mit den Schlüsselwörtern festlegen, um die Reiserichtung für jede Quelle zu ermitteln. Dieses Feld muss die Zeichenfolgen FROM_SOURCE oder TO_SOURCE enthalten. | String |
outputBacklinkName (optional) | Der Name des Ausgabe-Rückverknüpfungs-Raster-Service. Das Rückverknüpfungs-Raster enthält Werte von 0 bis 360. Mit diesen Werten wird die Richtung definiert entlang dem kleinsten akkumulativen Kostenpfad von einer Zelle zu ihrer kostengünstigsten Quelle, wobei die Oberflächenentfernung sowie horizontale und vertikale Oberflächenfaktoren berücksichtigt werden. | String |
outputAllocationName (optional) | Der Name des Ausgabe-Zuordnungs-Raster-Service. Dieses Raster identifiziert die Zone jeder Quellenposition (Zelle oder Feature), die mit den geringsten akkumulativen Kosten erreicht werden kann. Das Ausgabe-Raster ist ganzzahlig. | String |
allocationField (optional) | Ein Feld in der Quelleingabe mit den Werten, die jede Quelle definieren. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
outputDistanceRaster | Das Ausgabe-Raster für die Entfernung. | Raster-Layer |
outputBacklinkRaster | Das Ausgabe-Raster für Rückverknüpfungen. | Raster-Layer |
outputAllocationRaster | Das Zuordnungs-Raster für die Ausgaben. | Raster-Layer |
Codebeispiel
In diesem Beispiel werden die Reisekosten von einer einzelnen Quelle berechnet.
import arcpy
arcpy.CalculateTravelCost_ra('https://MyPortal.esri.com/server/rest/services/Hosted/reccenter/ImageServer',
"outDist", "inCostRas", "inSurfaceRas", "200000")
In diesem Beispiel werden die Reisekosten von mehreren Quellen berechnet.
# Name: CalculateTravelCost_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
# to the nearest source over a cost surface.
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inSource = 'https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer'
outDistName =
inCostRast = "costraster"
inElev = "elevation"
maxDist = "50000"
inHoriz = "backlink2"
horizFactor = "FORWARD 0.5 1.0"
inVertical = "focalcost.tif"
verticalFactor = "Binary 1.0 -30 30"
sourceCostMultiplier =
sourceStartCost =
sourceResistanceRate =
sourceCapacity =
sourceTravelDirection =
optBacklinkName = "c:/sapyexamples/output/pathbacklink"
optAlloName =
allocField =
# Execute CalculateTravelCost
arcpy.CalculateTravelCost_ra(inSource, outDistName, inCostRast, inElev, maxDist, inHoriz, horizFactor,
inVertical, verticalFactor, sourceCostMultiplier, sourceStartCost,
sourceResistanceRate, sourceCapacity, sourceTravelDirection, optBacklinkName,
optAlloName, allocField)
# Execute CostDistance
outTravelCost = CalculateTravelCost(inSourceData, inCostRaster, maxDistance, outBkLinkRaster)
Umgebungen
Lizenzinformationen
- Basic: Erfordert ArcGIS Image Server
- Standard: Erfordert ArcGIS Image Server
- Advanced: Erfordert ArcGIS Image Server