Kostengünstigster Pfad (AllSource)

Zusammenfassung

Ermittelt den kostengünstigsten Pfad zwischen Start- und Endpunkten über eine Kostenoberfläche hinweg.

Verwendung

  • Die Parameterwerte Eingabestartpunkt und Eingabeendpunkt müssen sich innerhalb der Ausdehnung des Parameterwerts Eingabekostenoberfläche befinden. Bei Punkten außerhalb der Oberflächenausdehnung wird eine leere Ausgabe zurückgegeben.

  • Wenn mehrere Punkte als Wert für Eingabestartpunkt verwendet werden, erhöht sich die Verarbeitungszeit erheblich.

  • Wenn mehrere Punkte als Wert für Eingabeendpunkt verwendet werden, ergeben sich möglicherweise mehrere Ausgabe-Linien-Features.

  • Werte ohne Daten gelten im Parameter Eingabekostenoberfläche als Barrieren. Der resultierende Pfad führt um diese Flächen herum. Wenn in der Kostenoberfläche in der Nähe von Zellen ohne Daten kein Pfad gefunden wird, gibt es möglicherweise keine Lösung und es müssen weitere Schritte durchgeführt werden, um die Kostenoberfläche zu ändern.

  • Führen Sie das Werkzeug mit dem Parameterwert Eingabekostenoberfläche in einem projizierten Koordinatensystem wie Universal Transverse Mercator (UTM) aus.

  • Die Option Kleiner positiver Wert des Parameters Keine Kosten behandelt als wird anhand der Größe des Eingabe-Kosten-Rasters und des Wertes für maximale Kosten verglichen mit den Genauigkeitslimits des Pfadberechnungsalgorithmus geschätzt. Dies geschieht, um die Wahrscheinlichkeit der Entstehung von Sackgassen beim Erstellen des Ausgabepfades zu verringern. Der kleine positive Wert wird geschätzt als

    max(height_of_cost_raster, width_of_cost_raster) * max_cost_value / 100000
    .

  • Die neuen Felder StartID und DestID werden dem Parameterwert Ausgabe-Pfad-Feature-Class hinzugefügt. Diese Felder stellen den Startpunkt und Endpunkt der Linien dar.

  • Der Startpunkt und der Endpunkt werden in das Ausgabeverzeichnis kopiert und enthalten den Namen des Werts Ausgabe-Pfad-Feature-Class, an den _start und _end angehängt wurde.

Parameter

BeschriftungErläuterungDatentyp
Eingabekostenoberfläche

Das Eingabe-Raster, das zum Ermitteln der Kosten zum Zurücklegen der Strecke zwischen Startpunkt und Endpunkt verwendet wird. Werte ohne Daten können nicht gekreuzt werden.

Raster Layer
Eingabestartpunkt

Das Eingabe-Startpunkt-Feature. Wenn mehrere Startpunkte verwendet werden, erhöht sich die Verarbeitungszeit erheblich.

Feature Set
Eingabeendpunkt

Das Eingabe-Endpunkt-Feature. Wenn mehrere Endpunkte verwendet werden, erhöht sich die Anzahl der Ausgabelinien, da sich der resultierende Pfad in separate Pfade verzweigt.

Feature Set
Ausgabe-Pfad-Feature-Class

Die Ausgabe-Pfad-Feature-Class.

Feature Class
Keine Kosten behandelt als
(optional)

Gibt an, wie Null-Werte im Parameterwert Eingabekostenoberfläche behandelt werden.

  • Kleiner positiver WertAlle Nullen werden in einen kleinen positiven Wert geändert. Dadurch ist es möglich, die Zellen zu queren. Dies ist die Standardeinstellung.
  • Keine DatenAlle Nullen werden in NULL-Werte geändert. Die Zellen werden vermieden und nicht gequert.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabestartpunkt

Der symbolisierte Startpunkt.

Feature Class
Ausgabeendpunkt

Der symbolisierte Endpunkt.

Feature Class

arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, in_end_point, out_path_feature_class, {handle_zeros})
NameErläuterungDatentyp
in_cost_surface

Das Eingabe-Raster, das zum Ermitteln der Kosten zum Zurücklegen der Strecke zwischen Startpunkt und Endpunkt verwendet wird. Werte ohne Daten können nicht gekreuzt werden.

Raster Layer
in_start_point

Das Eingabe-Startpunkt-Feature. Wenn mehrere Startpunkte verwendet werden, erhöht sich die Verarbeitungszeit erheblich.

Feature Set
in_end_point

Das Eingabe-Endpunkt-Feature. Wenn mehrere Endpunkte verwendet werden, erhöht sich die Anzahl der Ausgabelinien, da sich der resultierende Pfad in separate Pfade verzweigt.

Feature Set
out_path_feature_class

Die Ausgabe-Pfad-Feature-Class.

Feature Class
handle_zeros
(optional)

Gibt an, wie Null-Werte im Parameterwert in_cost_surface behandelt werden.

  • SMALL_POSITIVEAlle Nullen werden in einen kleinen positiven Wert geändert. Dadurch ist es möglich, die Zellen zu queren. Dies ist die Standardeinstellung.
  • NO_DATAAlle Nullen werden in NULL-Werte geändert. Die Zellen werden vermieden und nicht gequert.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_start_point

Der symbolisierte Startpunkt.

Feature Class
out_end_point

Der symbolisierte Endpunkt.

Feature Class

Codebeispiel

LeastCostPath: Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion LeastCostPath im unmittelbaren Modus verwendet wird.

import arcpy
import os
arcpy.LeastCostPath_intelligence(r"c:\workspace\terrain.gdb\mob_cost_surf", 
                                 r"c:\workspace\startinglocation.shp",
                                 r"c:\workspace\endinglocation.shp",
                                 os.path.join(arcpy.env.scratchWorkspace, "bestpath"),
                                 "SMALL_POSITIVE")
LeastCostPath: Beispiel 2 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht, wie die Funktion LeastCostPath in einem eigenständigen Skript verwendet wird.

# Name: LeastCostPath_Example2.py
# Description: Generate the least cost path between an input and output point 
#              based on a cost surface.

# Import system modules
import arcpy
import os

# Set local variables
in_cost_surface = r"c:\workspace\terrain.gdb\mob_cost_surf" 
in_start_point = r"c:\workspace\startinglocation.shp" 
in_end_point = r"c:\workspace\endinglocation.shp"
out_path_feature_class = os.path.join(arcpy.env.scratchWorkspace, "bestpath")
handle_zeros = "SMALL_POSITIVE"

# Run LeastCostPath
arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, 
                                 in_end_point, out_path_feature_class,
                                 handle_zeros)

# Report status
if arcpy.Exists(out_path_feature_class): 
    print("Path segments {}".format(arcpy.management.GetCount(out_path_feature_class)[0]))
else: 
    print("Empty output")

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Erfordert Spatial Analyst
  • Standard: Erfordert Spatial Analyst
  • Advanced: Erfordert Spatial Analyst

Verwandte Themen