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

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

Сводка

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

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

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

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

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

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

  • Перед созданием оптимального пути обычно используется один из следующих инструментов для создания растра накопления расстояния и растра обратного направления: Накопление расстояния или Распределение по расстоянию. Это необходимые входные данные для создания оптимального пути.

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

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

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

Синтаксис

OptimalPathAsLine(in_destination_data, in_distance_accumulation_raster, in_back_direction_raster, out_polyline_features, {destination_field}, {path_type}, {create_network_paths})
ParameterОбъяснениеТип данных
in_destination_data

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

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

Raster Layer; Feature Layer
in_distance_accumulation_raster

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

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

Raster Layer
in_back_direction_raster

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

Диапазон значений – от 0 до 360 градусов, где значение 0 резервируется для ячеек источников. Направление прямо на восток (вправо) определяется, как равное 90 градусам; значения увеличиваются по часовой стрелке (180 – на юг; 270 – на запад; и 360 на север).

Raster Layer
out_polyline_features

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

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

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

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

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

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

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

  • DESTINATIONS_TO_SOURCESВычисляются полные пути от назначений к источникам, которые могут быть перекрывающимися. Это значение по умолчанию.
  • NETWORK_PATHSВычисляются неперекрывающиеся сетевые пути.
Boolean

Пример кода

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

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

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

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

# Name: OptimalPathAsLine_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"
inDistAccum = "accumraster.tif"
inBackDir = "backdir2.tif"
outPathFeat = "c:/sapyexamples/output.gdb/optimalfeaturepaths02"
destField = "FID"
method = "EACH_CELL"

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

# Execute
OptimalPathAsLine(inDestination, inDistAccum, inBackDir, 
                  outPathFeat, destField, method)

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

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

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