Оптимальный путь как полилиния (Spatial Analyst)

Доступно с лицензией Spatial Analyst.

Сводка

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

Более подробно о создании пути с наименьшей стоимостью

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

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

  • Обычно требуется запустить один или несколько инструментов взвешенного расстояния (Стоимостное расстояние, Стоимостное направление или Распределение по стоимостному расстоянию) до запуска инструмента Оптимальный путь как полилиния для создания входного растра стоимостного расстояния и входного растра стоимостного направления. Это обязательные входные растры для инструмента Оптимальный путь как полилиния.

  • Когда входные данные объектов назначений (адресатов) представлены растром, набор ячеек адресатов состоит из всех ячеек на Входном растре или в векторных данных объектов назначения, которые имеют действительные значения. Ячейки, имеющие значение NoData, не включаются в набор источников. Нулевое значение рассматривается как истинный адресат. Растр объектов назначения может быть создан с использованием инструментов извлечения.

  • Если входные данные источника являются объектом, по умолчанию используется первое доступное поле. Если доступных полей нет, используется поле ObjectID (например, OID или FID, в зависимости от типа входных данных объекта).

  • При использовании данных полигонального объекта в качестве входных назначений объекта следует особенно тщательно выбирать способ обработки размера выходной ячейки, если его можно охарактеризовать как грубый относительно подробных сведений во входных данных. Применяется внутренний процесс растеризации с помощью инструмента Полигон в растр, с настройкой по умолчанию для Метода присвоения значений ячейкамЦентр ячейки. Это означает, что данные, не расположенные по центру ячейки, не будут включены в промежуточные растеризованные выходные данные назначения, поэтому не будут представлены в расчётах расстояния. Например, если назначением является ряд небольших полигонов, например периметры знаний, которые невелики относительно размеру выходной ячейки, возможно, что только некоторые из них попадут по центру выходных растровых ячеек, и, видимо, большинство остальных объекты будут потеряны в анализе.

    Во избежание этой ситуации в качестве промежуточного шага можно напрямую растеризовать входные объекты с помощью инструмента Объект в растр и задать параметр Поле. Затем используйте полученные выходные данные в качестве входных для того инструмента расстояний, который вам требуется. Кроме того, можно выбрать небольшой размер ячейки, чтобы получить достаточный объем данных из входных объектов.

  • Выходной полилинейный объект содержит поле DestID, где указывается, к какому назначению направлена каждая линия. Если выходные данные записываются в файловую базу геоданных, в них содержится поле shape_length, где хранится общая длина пути с наименьшей стоимостью.

  • Инструмент Оптимальный путь как полилиния игнорирует параметр среды Размер ячейки и будет использовать размер ячейки Входного растра стоимостного направления для выходного растра. Структура растра направления может сильно измениться, если будет изменено его разрешение. Чтобы избежать ошибок, при использовании этого инструмента не следует устанавливать параметр размера ячейки.

  • Оптимальный путь как полилиния может использоваться для определения пути потока, основанного на направлении потока D8. Чтобы использовать инструмент Оптимальный путь как полилиния таким образом, укажите растр направления потока D8 в качестве Входного растра стоимостного направления. Необходимо также указать Входной растр стоимостного расстояния; Входной растр стоимостного расстояния не используется для определения пути. Независимо от использования константного растра или цифровой модели рельефа (ЦМР), путь будет одинаков; меняется только атрибутивное значение на пути. См. инструмент Направление стока для получения дополнительных сведений о растрах направления потока D8.

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

  • См. раздел Среда анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Синтаксис

CostPathAsPolyline(in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, out_polyline_features, {path_type}, {destination_field}, {force_flow_direction_convention})
ParameterОбъяснениеТип данных
in_destination_data

Растр или набор пространственных данных, определяющие ячейки, из которых вычисляется путь с наименьшей стоимостью перемещения до источника, расположенного ближе всего по стоимости перемещения.

Если входные данные являются растром, они должны состоять из ячеек с корректными значениями для назначений, а остальным ячейкам должно быть присвоено значение NoData. 0 – является допустимым значением.

Raster Layer; Feature Layer
in_cost_distance_raster

Растр стоимостного расстояния, используемый для определения маршрута с наименьшей стоимостью из источников к назначениям.

Растр стоимостного расстояния обычно создается с помощью инструментов Стоимостное расстояние, Распределение по стоимостному расстоянию или Стоимостное направление. Растр стоимостного расстояния хранит для каждой ячейки расстояние с минимальной совокупной стоимостью перемещения по поверхности стоимости из каждой ячейки до набора ячеек источников.

Raster Layer
in_cost_backlink_raster

Растр стоимостного направления, который используется для определения пути возвращения к исходной точке по наименее затратному маршруту.

Для каждой ячейки в растре стоимостного направления, обратного направления или направления потока, это значение указывает соседнюю ячейку, которая будет следующей на пути от ячейки к исходной ячейке.

Raster Layer
out_polyline_features

Выходной класс объектов, в котором хранится путь наименьшей стоимости.

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

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

  • BEST_SINGLE Для всех ячеек на входных данных адресатов путь с наименьшей стоимостью перемещения вычисляется из ячейки, лежащей на маршруте с наименьшей стоимостью перемещения до ячеек источников и имеющей минимальное значение стоимости.
  • EACH_ZONE В выходном растре определяется и сохраняется маршрут с наименьшей стоимостью перемещения для каждой зоны входных данных объектов назначения. С этой опцией маршрут с наименьшей стоимостью перемещения для каждой зоны начинается в ячейке с наименьшим весом стоимостного расстояния в зоне.
  • EACH_CELL В выходном растре определяется и сохраняется маршрут с наименьшей стоимостью перемещения для каждой ячейки, имеющей действительные значения во входных данных объектов назначения. С этой опцией каждая ячейка во входных данных объектов назначения рассматривается по отдельности, и путь с наименьшей стоимостью перемещения вычисляется для каждой ячейки.
String
destination_field
(Дополнительный)

Поле, используемое для получения значений местоположений адресатов.

Входные векторные данные должны включать по крайней мере одно корректное поле таблицы атрибутов.

Field
force_flow_direction_convention
(Дополнительный)

Заставляет инструмент обрабатывать входной растр направления как растр направления стока. Растры направления стока должны содержать целочисленные значения в диапазоне от 0 до 255.

  • INPUT_RANGEin_cost_backlink_raster будет прерываться по-разному - в зависимости от диапазона значений и от того, являются ли значения целочисленными или числами с плавающей точкой. Для диапазона значений 0-8 in_cost_backlink_raster будет рассматриваться как растр направления. Для значений в диапазоне от 0 до 255 in_cost_backlink_raster будет рассматриваться в качестве растра направления стока. Для значений в диапазоне от 0 до 360 и чисел с плавающей точкой in_cost_backlink_raster будет рассматриваться в качестве растра обратного направления.
  • FLOW_DIRECTIONРастр, заданный в качестве in_cost_backlink_raster, будет рассматриваться, как растр направления стока. Это является необходимым, если значение растра направления стока не превышает 8.
Boolean

Пример кода

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

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
CostPathAsPolyline("observers", "costdistraster", "backlink2", "c:/sapyexamples/output/outcostpth01.shp")
CostPathAsPolyline, пример 2 (автономный скрипт)

Вычисляет путь с наименьшей стоимостью от источника до места назначения.

# Name: CostPathAsPolyline_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"
inCostDistRaster = "costdistraster"
inBacklink = "backlink2"
outCostPathFeat = "c:/sapyexamples/output.gdb/outcostpathfeat02"
method = "EACH_CELL"
destField = "FID"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute
CostPathAsPolyline(inDestination, inCostDistRaster, inBacklink, 
                   outCostPathFeat, method, destField)

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

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

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