Kostengünstigster Pfad (Intelligence)

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})
ParameterErklärungDatentyp
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.

  • 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

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

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

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

Verwandte Themen