Сводка
Находит кратчайший путь между начальной и конечной точками на стоимостной поверхности.
Использование
Значения параметров Входная начальная точка и Входная конечная точка должны находиться в пределах параметра Входная поверхность стоимости. Использования точек, находящихся вне экстента поверхности, приведут к пустым выходным данным.
Использование нескольких точек в качестве значения Входной начальной точки значительно увеличит время обработки.
Использование нескольких точек в качестве значения Входной конечной точки может привести к появлению более двух выходных линейных объектов.
Никакие значения данных в параметре Входная стоимость поверхности не считаются препятствиями, и полученный путь будет проходить вокруг этих областей. Если не удается найти путь вокруг ячеек 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).
| String |
Производные выходные данные
Name | Объяснение | Тип данных |
out_start_point | Начальная точка с назначенным символом. | Класс пространственных объектов |
out_end_point | Отображенная символами конечная точка. | Класс пространственных объектов |
Пример кода
Пример скрипта окна 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")
В следующем скрипте 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