Skip To Content

Reisekosten berechnen

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

Abbildung Werkzeug "Reisekosten berechnen"

Verwendung

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

  • Die Eingabequelldaten können ein Feature-Service, ein Image-Service oder ein Portal-Element sein.

  • 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

CalculateTravelCost_ra (inputSourceRasterOrFeatures, outputDistanceName, {inputCostRaster}, {inputSurfaceRaster}, {maximumDistance}, {inputHorizontalRaster}, {horizontalFactor}, {inputVerticalRaster}, {verticalFactor}, {sourceCostMultiplier}, {sourceStartCost}, {sourceResistanceRate}, {sourceCapacity}, {sourceTravelDirection}, {outputBacklinkName}, {outputAllocationName}, {allocationField})
ParameterErklärungDatentyp
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. 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.

Es sind mehrere Typen horizontaler Faktoren verfügbar:

  • Binär: Wenn der HRMA kleiner ist als der Schnittwinkel, wird für den HF der dem Null-Faktor zugewiesene Wert festgelegt. Andernfalls ist dieser unendlich.
  • Vorwärts: Legt fest, dass nur Vorwärtsbewegungen zulässig sind. Der HRMA muss größer als oder gleich 0 Grad und kleiner als 90 Grad sein (0 <= HRMA < 90). Wenn der HRMA größer als 0 und kleiner 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.
  • Linear: Gibt an, dass der HF eine lineare Funktion des HRMA ist.
  • Invers Linear: Gibt an, dass der HF eine invers lineare Funktion des HRMA ist.

Der Standardwert ist Binär.

Merkmale für die Schlüsselwörter des horizontalen Faktors:

  • Null-Faktor: Legt den horizontalen Faktor fest, der verwendet wird, wenn der HRMA 0 ist. Dieser Faktor positioniert den Y-Schnittpunkt für alle Funktionen für den horizontalen Faktor.
  • Schnittwinkel: Definiert den HRMA, ab dem der HF auf unendlich festgelegt wird.
  • Neigung: Legt die Neigung der Geraden fest, die mit den Schlüsselwörtern Linear und Invers Linear für den horizontalen Faktor verwendet wird. Die Neigung wird als Verhältnis von Höhendifferenz zu horizontaler Distanz angegeben (z. B. ist eine 45-Grad-Neigung 1/45 und wird als 0,02222 eingegeben).
  • Seitenfaktor: 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.
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. 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).

Es sind mehrere Typen vertikaler Faktoren verfügbar:

  • Binär: 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.
  • Linear: Gibt an, dass der VF eine lineare Funktion des VRMA ist.
  • Symmetrisch Linear: 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.
  • Invers Linear: Gibt an, dass der VF eine invers lineare Funktion des VRMA ist.
  • Symmetrisch Invers Linear: 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.
  • Cos: Identifiziert den VF als kosinusbasierte Funktion des VRMA.
  • Sec: Identifiziert den VF als sekantenbasierte Funktion des VRMA.
  • Cos-Sec: 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.
  • Sec-Cos: 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.

Der Standardwert ist Binär.

Merkmale für die Schlüsselwörter des vertikalen Faktors:

  • Null-Faktor: 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.
  • Niedriger Schnittwinkel: Definiert den VRMA, unter dem der VF auf unendlich festgelegt wird.
  • Hoher Schnittwinkel: Definiert den VRMA, über dem der VF auf unendlich festgelegt wird.
  • Neigung: Legt die Neigung der Geraden fest, die mit den Schlüsselwörtern Linear und Invers Linear für den vertikalen Faktor verwendet wird. Die Neigung wird als Verhältnis von Höhendifferenz zu horizontaler Distanz angegeben (z. B. ist eine 45-Grad-Neigung 1/45 und wird als 0,02222 eingegeben).
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. Die Standardeinstellung 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.

  • FROM_SOURCEDer horizontale Faktor, der vertikale Faktor, die Quellresistenzrate und die Quellstartkosten werden beginnend an der Eingabequelle angewendet und in Richtung Nicht-Quellenzellen fortgesetzt. Dies ist die Standardeinstellung.
  • TO_SOURCEDer horizontale Faktor, der vertikale Faktor, die Quellresistenzrate und die Quellstartkosten werden beginnend an jeder Nicht-Quellenzelle angewendet und zurück Richtung Eingabequelle fortgesetzt.

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

NameErklärungDatentyp
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

CalculateTravelCost – Beispiel 1 (Python-Fenster)

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")
CalculateTravelCost – Beispiel 2 (eigenständiges Skript)

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)

Lizenzinformationen

  • Basic: Erfordert ArcGIS Image Server
  • Standard: Erfordert ArcGIS Image Server
  • Advanced: Erfordert ArcGIS Image Server

Verwandte Themen