Zusammenfassung
Ermittelt die kostengünstigste Route zwischen Start- und Endpunkten über eine Kostenoberfläche hinweg.
Verwendung
Die Parameterwerte Eingabestartpunkt und Eingabeendpunkt müssen sich innerhalb der Ausdehnung des Parameters 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 neuen Felder StartID und DestID werden dem Parameter Output-Path-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 Output-Path-Feature-Class, an den _start und _end angehängt wurde.
Syntax
arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, in_end_point, out_path_feature_class, {handle_zeros})
Parameter | Erklärung | Datentyp |
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 Output-Path-Feature-Class. | Feature Class |
handle_zeros (optional) | Gibt an, wie NULL-Werte im Parameter Eingabekostenoberfläche (Parameter in_cost_surface in Python) behandelt wird.
| String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_start_point | Der symbolisierte Startpunkt. | Feature-Class |
out_end_point | Der symbolisierte Endpunkt. | Feature-Class |
Codebeispiel
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")
Das folgende Python-Skript veranschaulicht die Verwendung der Funktion LeastCostPath in einem eigenständigen Skript.
# 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"
# Execute LeastCostPath
arcpy.LeastCostPath_intelligence(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.GetCount_management(out_path_feature_class)[0]))
else:
print("Empty output")
Umgebungen
Lizenzinformationen
- Basic: Erfordert Spatial Analyst
- Standard: Erfordert Spatial Analyst
- Advanced: Erfordert Spatial Analyst