Resumen
Busca la ruta más corta entre puntos de partida y finales en una superficie de coste.
Uso
Los valores de los parámetros Punto de partida de entrada y el Punto final de entrada deben estar dentro de la extensión del parámetro Superficie de coste de entrada. Los puntos que se encuentren fuera de la extensión de superficie devolverán una salida vacía.
Utilizar varios puntos como valor de Punto de partida de entrada aumentará considerablemente el tiempo de procesamiento.
Utilizar varios puntos como valor de Punto final de entrada podría dar como resultado más de dos entidades de línea de salida.
Los valores Sin datos en el parámetro Superficie de coste de entrada se consideran barreras, y la ruta resultante rodeará estas áreas. Si no se encuentra ninguna ruta alrededor de las celdas Sin datos en la superficie de coste, puede que no exista ninguna solución y deban tomarse más medidas para modificar la superficie de coste.
Ejecute la herramienta con el valor del parámetro Superficie de coste de entrada en un sistema de coordenadas proyectadas, como la Proyección Universal Transversal de Mercator (UTM).
Los nuevos campos StartID y DestID se agregan al parámetro Clase de entidad de ruta de salida. Estos campos representan el punto de partida y el punto final entre los que se desplazan las líneas.
Los puntos iniciales y finales se copiarán en la ubicación de salida y contendrán el nombre del valor de Clase de entidad de ruta de salida con la incorporación de _start y _end.
Sintaxis
arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, in_end_point, out_path_feature_class, {handle_zeros})
Parámetro | Explicación | Tipo de datos |
in_cost_surface | El ráster de entrada utilizado para determinar el coste de viajar desde el punto de partida hasta el punto final. Los valores Sin datos no se pueden cruzar. | Raster Layer |
in_start_point | La entidad de punto de partida de entrada. Varios puntos de partida aumentarán considerablemente el tiempo de procesamiento. | Feature Set |
in_end_point | La entidad de punto final de entrada. Varios puntos finales aumentarán la cantidad de líneas de salida, puesto que la ruta resultante se ramificará en rutas separadas. | Feature Set |
out_path_feature_class | La clase de entidad de ruta de salida. | Feature Class |
handle_zeros (Opcional) | Especifica cómo se administrarán los valores de cero en el parámetro Superficie de coste de entrada (parámetro in_cost_surface en Python).
| String |
Salida derivada
Nombre | Explicación | Tipo de datos |
out_start_point | El punto de partida simbolizado. | Clase de entidad |
out_end_point | El punto final simbolizado. | Clase de entidad |
Muestra de código
El siguiente script de la ventana de Python demuestra cómo utilizar la función LeastCostPath en modo inmediato.
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")
El siguiente script de Python muestra cómo utilizar la función LeastCostPath en un script independiente.
# 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")
Entornos
Información de licenciamiento
- Basic: Requiere Spatial Analyst
- Standard: Requiere Spatial Analyst
- Advanced: Requiere Spatial Analyst