Путь с наименьшей стоимостью (Intelligence)

Сводка

Находит кратчайший путь между начальной и конечной точками на стоимостной поверхности.

Использование

  • Значения параметров Входная начальная точка и Входная конечная точка должны находиться в пределах параметра Входная поверхность стоимости. Использования точек, находящихся вне экстента поверхности, приведут к пустым выходным данным.

  • Использование нескольких точек в качестве значения Входной начальной точки значительно увеличит время обработки.

  • Использование нескольких точек в качестве значения Входной конечной точки может привести к появлению более двух выходных линейных объектов.

  • Никакие значения данных в параметре Входная стоимость поверхности не считаются препятствиями, и полученный путь будет проходить вокруг этих областей. Если не удается найти путь вокруг ячеек No Data на стоимостной поверхности, решение может оказаться невозможным, и необходимо предпринять дополнительные шаги для изменения стоимостной поверхности.

  • Запустите инструмент со значением параметра Входная стоимость поверхности в системе координат проекции, такой как универсальная поперечная проекция Меркатора (UTM).

  • Новые поля StartID и DestID добавляются в параметр Выходной класс объектов пути. Эти поля представляют начальную и конечную точки, между которыми проходят линии.

  • Начальная и конечная точки будут скопированы в место вывода и будут содержать имя значения Выходной класс объектов пути с добавлением _start и _end.

Синтаксис

arcpy.intelligence.LeastCostPath(in_cost_surface, in_start_point, in_end_point, out_path_feature_class, {handle_zeros})
ParameterОбъяснениеТип данных
in_cost_surface

Входной растр используется для определения стоимости перемещения от начальной до конечной точки. Значения No Data пересекаться не будут.

Raster Layer
in_start_point

Объект входной начальной точки. Использование нескольких начальных точек может значительно увеличить время обработки.

Feature Set
in_end_point

Входной конечный точечный объект. Несколько конечных точек увеличат количество выходных линий, поскольку результирующий путь будет разветвляться на несколько.

Feature Set
out_path_feature_class

Выходной класс объектов пути.

Feature Class
handle_zeros
(Дополнительный)

Определяет, как будут обрабатываться нулевые значения в параметре Входная стоимостная поверхность (параметр in_cost_surface в Python).

  • SMALL_POSITIVEВсе нули будут заменены на маленькие положительные значения. Это позволит перемещаться по ячейкам. Это значение по умолчанию
  • NO_DATAВсе нули будут изменены на значения null. Ячейки не будут пересечены и будут избегаться.
String

Производные выходные данные

NameОбъяснениеТип данных
out_start_point

Начальная точка с назначенным символом.

Класс пространственных объектов
out_end_point

Отображенная символами конечная точка.

Класс пространственных объектов

Пример кода

LeastCostPath, пример 1 (окно Python)

Пример скрипта окна Python для использования функции LeastCostPath в режиме прямого запуска.

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, пример 2 (автономный скрипт)

В следующем скрипте Python показано, как использовать функцию LeastCostPath в автономном скрипте.

# 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")

Environments

Этот инструмент не использует параметры среды геообработки

Информация о лицензиях

  • Basic: Требуется Spatial Analyst
  • Standard: Требуется Spatial Analyst
  • Advanced: Требуется Spatial Analyst

Связанные разделы