Доступно с лицензией Spatial Analyst.
Краткая информация
Вычисляет маршрут с наименьшей стоимостью перемещения из источника до объекта назначения.
Использование
Инструмент Оптимальный путь (Cost Path) строит выходной растр, в котором записан маршрут или маршруты с наименьшей стоимостью перемещения из выбранных местоположений до ближайшей ячейки источника по поверхности совокупной стоимости, в терминах стоимостного расстояния.
Обычно требуется запустить один или несколько инструментов взвешенного расстояния (Стоимостное расстояние (Cost Distance), Стоимостное направление (Cost Back Link) или Распределение по стоимостному расстоянию (Cost Allocation)) до запуска инструмента Оптимальный путь (Cost Path) для создания входного растра стоимостного расстояния и входного растра стоимостного направления. Эти данные являются обязательными входными растрами для инструмента Оптимальный путь (Cost Path).
Каждому маршруту с наименьшей стоимостью присваивается значение, встречающееся в процессе сканирования. Конечной ячейке оптимального маршрута на исходном растре источников (с использованием которого получены растры стоимостного расстояния и стоимостного направления) присваивается значение, равное единице, первому маршруту присваивается значение, равное трем, второму – значение 'четыре', и так далее. Значение, равное двум, резервируется для объединяемых участков маршрутов, которые являются фрагментами общего оптимального пути.
Когда входные данные объектов назначений (адресатов) представлены растром, набор ячеек адресатов состоит из всех ячеек на входном растре или в векторных данных объектов назначения, которые имеют действительные значения. Ячейки, имеющие значение NoData, не включаются в набор источников. Нулевое значение рассматривается как истинный адресат. Растр объектов назначения может быть создан с использованием инструментов извлечения.
Если входные данные источника являются объектом, по умолчанию используется первое доступное поле. Если доступных полей нет, используется поле ObjectID (например, OID or FID, в зависимости от типа входных данных объекта).
При использовании данных полигонального объекта в качестве входных назначений объекта следует особенно тщательно выбирать способ обработки размера выходной ячейки, если его можно охарактеризовать как грубый относительно подробных сведений во входных данных. Процесс внутренней растеризации, которая использует инструмент Полигон в растр (Polygon to Raster), будет использовать значение по умолчанию CELL_CENTER для параметра Метод присвоения значений ячейкам (Cell assignment type). Это означает, что данные, не расположенные по центру ячейки, не будут включены в промежуточные растеризованные выходные данные назначения, поэтому не будут представлены в расчётах расстояния. Например, если назначением является ряд небольших полигонов, например периметры знаний, которые невелики относительно размеру выходной ячейки, возможно, что только некоторые из них попадут по центру выходных растровых ячеек, и, видимо, большинство остальных объекты будут потеряны в анализе.
Во избежание этой ситуации в качестве промежуточного шага можно напрямую растеризовать входные объекты с помощью инструмента Полигон в растр (Polygon to Raster), задать Поле приоритета (Priority field) и использовать полученные выходные данные в качестве входных данных инструмента Расстояние (Distance). Кроме того, можно выбрать достаточно небольшой размер ячейки, чтобы получить достаточный объем данных из входных объектов.
Когда объединяется несколько маршрутов, и дальше оставшееся расстояние по направлению к источнику путь проходит по одному и тому же маршруту, сегментам, где два маршрута совпадают, присваивается значение, равное двум. Объединяемому участку пути не может быть присвоено значение одного из маршрутов, поскольку объединенный сегмент принадлежит обоим маршрутам.
Инструмент Оптимальный путь (Cost Path) не использует параметр среды Маска (Mask). Экстент анализа не должен отличаться от растров стоимостного расстояния и стоимостного направления.
Инструмент Оптимальный путь (Cost Path) игнорирует параметр среды Размер ячейки (Cell size) и будет использовать размер ячейки Входного растра стоимостного направления (Input cost backlink raster) для выходного растра. Структура растра направления может сильно измениться, если будет изменено его разрешение. Чтобы избежать ошибок, при использовании этого инструмента не следует устанавливать параметр размера ячейки.
Инструмент Оптимальный путь (Cost Path) может быть также использован для извлечения маршрута с наименьшим сопротивлением при движении вниз по цифровой модели рельефа ЦМР (DEM). В этом случае используйте ЦМР для Входного растра стоимостного расстояния (Input cost distance raster) и выходные данные инструмента Направление стока (Flow Direction) для Входного растра стоимостного направления (Input cost backlink raster). Действительные значения растра направления стока – это 1, 2, 4, 8, 16, 32, 64 и 128; действительные значения в растре направления – 1, 2, 3, 4, 5, 6, 7 и 8. Оба этих растра являются приемлемыми.
Если входные данные адресата представляют собой векторные данные, то они должны включать по крайней мере одно корректное поле таблицы атрибутов.
См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.
Синтаксис
CostPath (in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, {path_type}, {destination_field})
Параметр | Объяснение | Тип данных |
in_destination_data | Растр или набор пространственных данных, определяющие ячейки, из которых вычисляется путь с наименьшей стоимостью перемещения до источника, расположенного ближе всего по стоимости перемещения. Если входные данные представлены растром, они состоят из ячеек, имеющих действительные значения (ноль является действительным значением), а остальным ячейкам должно быть присвоено значение NoData. | Raster Layer | Feature Layer |
in_cost_distance_raster | Имя растра стоимостного расстояния, используемого для определения маршрута с наименьшей стоимостью перемещения из положений ячеек входного растра адресатов до источника. Растр стоимостного расстояния обычно создается с помощью инструментов Стоимостное расстояние (Cost Distance), Распределение по стоимостному расстоянию (Cost Allocation) или Стоимостное направление (Cost Back Link). Растр стоимостного расстояния хранит для каждой ячейки расстояние с минимальной совокупной стоимостью перемещения по поверхности стоимости из каждой ячейки до набора ячеек источников. | Raster Layer |
in_cost_backlink_raster | Имя растра стоимостного направления, используемого для определения пути возвращения к источнику по маршруту с наименьшей стоимостью перемещения. Для каждой ячейки на растре направления значение определяет соседнюю ячейку, которая является следующей ячейкой на маршруте с наименьшей стоимостью перемещения из ячейки до единственной ячейки источника или набора ячеек источников. | Raster Layer |
path_type (дополнительно) | Ключевое слово, определяющее то, как в вычислениях оптимального пути будут интерпретированы значения и зоны во входных данных объектов назначения.
| String |
destination_field (дополнительно) | Значения, используемые для получения значений местоположений адресатов. Входные векторные данные должны включать по крайней мере одно корректное поле таблицы атрибутов. | Field |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster | Выходной растр оптимального пути. Выходной растр будет целочисленным. | Raster |
Пример кода
CostPath, пример 1 (окно Python)
Пример скрипта окна Python для использования функции CostPath.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostPath = CostPath("observers", "costraster", "backlink2", "EACH_CELL")
outCostPath.save("c:/sapyexamples/output/costpath")
CostPath, пример 2 (автономный скрипт)
Вычисляет маршрут с наименьшей стоимостью перемещения из источника до объекта назначения.
# Name: CostPath_Ex_02.py
# Description: Calculates the least-cost path from a source to
# a destination.
# Requirements: Spatial Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *
# Set environment settings
env.workspace = "C:/sapyexamples/data"
# Set local variables
inDestination = "observers.shp"
costRaster = "costraster"
backLink = "backlink2"
method = "EACH_CELL"
destField = "FID"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute CostPath
outCostPath = CostPath(inDestination, costRaster, backLink, method,
destField)
# Save the output
outCostPath.save("c:/sapyexamples/output/costpath02")