Сводка
Вычисляет путь с наименьшей суммарной стоимостью перемещения от или до источника с наименьшей стоимостью, с учетом действительного расстояния по поверхности, а также горизонтального и вертикального факторов.
Иллюстрация
Использование
Этот инструмент портала для анализа растров доступен, если вы выполнили вход в ArcGIS Enterprise портал с расширением ArcGIS Image Server настроенный для Raster Analysis . Когда инструмент запускается, ArcGIS Pro выступает в качестве клиента, и обработка проходит на серверах, интегрированных с ArcGIS Enterprise. Инструмент портала использует слои портала в качестве входных данных и создает выходные данные на этом же портале.
Параметр Входной растровый слой поддерживает слой портала, URI или URL сервиса изображений или выходные данные инструмента Создать слой сервера изображений. Входной векторный слой может быть слоем портала или URI либо URL сервиса объектов. Указанный инструмент не поддерживает локальные наборы растровых данных или слои. Хотя вы можете использовать локальные векторные данные или слои как входные данные для инструментов портала, лучше все же использовать слои портала в качестве входных данных.
Одним из примеров применения этого инструмента является идентификация наиболее экономного маршрута для создания новой дороге к будущей школе.
Когда входные данные источников – сервис изображений, набор ячеек источников состоит из всех ячеек в исходном растре, которые имеют действительные значения. Ячейки, имеющие значение NoData, не включаются в набор источников. Нулевое значение рассматривается как истинный источник.
Когда входные данные источников представлены сервисом объектов, местоположения источников внутренне конвертируются в растр до выполнения анализа. Разрешением растра можно управлять с помощью параметра Размер выходной ячейки или среды Размер ячейки. По умолчанию разрешение будет определяться наименьшим из размеров ширины или высоты экстента входного набора объектов на выходной пространственной привязке, деленным на 250.
Ячейки со значением NoData во Входном стоимостном растре расцениваются как барьеры. Любой ячейке, которой присвоено значение NoData на входной стоимостной поверхности, будет присвоено значение NoData на всех выходных растрах
Для сервиса изображений выходного расстояния, расстояние с наименьшей стоимостью (или минимальное суммарное стоимостное расстояние) ячейки от или до набора местоположений источников - это нижняя граница расстояний с наименьшей стоимостью от ячейки до всех местоположений источников.
Растр стоимости не может содержать нулевые значения, так как алгоритм представляет собой процесс с умножением. Если ваш растр стоимости содержит нулевые значения, и они представляют области наименьшей стоимости, замените нулевые значения на небольшие положительные числа (например 0,01) перед запуском инструмента Вычислить стоимость перемещения. Если области с нулевыми значениями представляют области, которые должны быть исключены из анализа, замените нулевые значения на значения NoData перед запуском инструмента Вычислить стоимость перемещения.
Значения по умолчанию для модификаторов Горизонтального фактора следующие:
Keywords Zero factor Cut angle Slope Side value -------------- ----------- ----------- ----- --------- Binary 1.0 45 ~ ~ Forward 0.5 45 (fixed) ~ 1.0 Linear 0.5 181 1/90 ~ Inverse linear 2.0 180 -1/90 ~
Значения по умолчанию для модификаторов Вертикального фактора следующие:
Keyword Zero Low High Slope Power Cos Sec factor cut cut power power angle angle ------------------------ ------ ----- ----- ----- ----- ----- ----- Binary 1.0 -30 30 ~ ~ ~ ~ Linear 1.0 -90 90 1/90 ~ ~ ~ Symmetric linear 1.0 -90 90 1/90 ~ ~ ~ Inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Symmetric inverse linear 1.0 -45 45 -1/45 ~ ~ ~ Cos ~ -90 90 ~ 1.0 ~ ~ Sec ~ -90 90 ~ 1.0 ~ ~ Cos_sec ~ -90 90 ~ ~ 1.0 1.0 Sec_cos ~ -90 90 ~ ~ 1.0 1.0
Характеристики начальной точки или объекта, перемещающегося от начальной точки или возвращающегося в нее, контролируются определенными параметрами. Параметр Коэффициент стоимости источника определяет режим передвижения или величину в источнике, Начальная стоимость источника задает начальную стоимость до начала движения, Степень сопротивляемости источника является динамическим сдвигом, отвечающим за влияние итоговой стоимости, симулирующим эффект усталости у путешественника, и Объем источника задает, насколько может накапливаться стоимость, прежде чем достигнет предела. Направление движения определяет, начинает ли объект движение от источника к другим местоположениям или наоборот, к источнику.
Если задана Начальная стоимость источника, а Направление движения выбрано как Движение от источника, исходным местоположениям на выходной поверхности стоимостного расстояния будет присвоено значение Начальной стоимости источника, иначе, им будет присвоено значение 0.
Если какой-либо из параметров характеристик источника указан с использованием поля, исходная характеристика будет применяться по принципу «источник-на-источник» в соответствии с информацией в данном поле для исходных данных. Если используется ключевое слово или константа, они применяются ко всем источникам.
Синтаксис
arcpy.ra.CalculateTravelCost(inputSourceRasterOrFeatures, outputDistanceName, {inputCostRaster}, {inputSurfaceRaster}, {maximumDistance}, {inputHorizontalRaster}, {horizontalFactor}, {inputVerticalRaster}, {verticalFactor}, {sourceCostMultiplier}, {sourceStartCost}, {sourceResistanceRate}, {sourceCapacity}, {sourceTravelDirection}, {outputBacklinkName}, {outputAllocationName}, {allocationField})
Parameter | Объяснение | Тип данных |
inputSourceRasterOrFeatures | Слой, который определяет источники для вычисления расстояний до них. Слой может быть растровым или векторным. | Raster Layer; Image Service; Feature Layer; String |
outputDistanceName | Имя выходного сервиса растра расстояния. Сервис изображений стоимостного расстояния определяет, для каждой ячейки, наименьшее суммарное стоимостное расстояние по поверхности стоимости до установленных положений источников. | String |
inputCostRaster (Дополнительный) | Растр, определяющий полное сопротивление или стоимость движения в плоскости через каждую ячейку. Значение в каждой ячейке представляет стоимость движения через ячейку по поверхности стоимости, выраженную на единицу расстояния. Для получения общей стоимости прохождения через ячейку, значение каждой ячейки умножается на разрешение ячейки, с учетом возможности движения по диагонали. Значения на входном растре стоимости могут быть представлены целыми числами или числами с плавающей точкой, но они не могут быть отрицательными (стоимость не может быть отрицательной). | Raster Layer; Image Service; String |
inputSurfaceRaster (Дополнительный) | Растр, определяющий значения высот в каждой ячейке. Значения используются для вычисления действительного расстояния по поверхности, которое будет пройдено при перемещении между ячейками. | Raster Layer; Image Service; String |
maximumDistance (Дополнительный) | Определяет пороговое значение суммарной стоимости перемещения, которое не может быть превышено. | Double |
inputHorizontalRaster (Дополнительный) | Растр, определяющий горизонтальное направление в каждой ячейке. Значения на растре должны быть целыми числами в диапазоне от 0 до 360, значение 0 градусов соответствует направлению на север, или в верхнюю часть экрана. Значения увеличиваются по часовой стрелке. Плоским участкам должно быть присвоено значение, равное -1. Для определения дополнительной стоимости в горизонтальной плоскости, возникающей при движении из ячейки в соседние с ней ячейки, значения в каждом местоположении будут использоваться в сочетании с {horizontal_factor}. | Raster Layer; Image Service; String |
horizontalFactor (Дополнительный) | Объект Горизонтальный фактор определяет отношение между горизонтальным фактором стоимости и горизонтальным относительным углом движения. Существует несколько факторов с различными модификаторами, которые задают определенный график горизонтального фактора. Графики применяются для определения горизонтального фактора, используемого в вычислениях общей стоимости перемещения в соседнюю ячейку. В приведенных ниже пояснениях используются два сокращения: HF обозначает горизонтальный фактор, идентифицирующий определенные препятствия при продвижении от одной ячейки к другой; а HRMA обозначает относительный горизонтальный угол движения, который идентифицирует угол между направлением по горизонтали и направлением движения. Существует несколько типов горизонтальных факторов:
Значение по умолчанию - бинарное. Характеристики для горизонтальных ключевых слов:
| Horizontal Factor |
inputVerticalRaster (Дополнительный) | Растр, определяющий вертикальное (z) значение для каждой ячейки. | Raster Layer; Image Service; String |
verticalFactor (Дополнительный) | Вертикальный фактор определяет отношение между вертикальным фактором стоимости и вертикальным относительным углом движения (VRMA). Существует несколько факторов с различными модификаторами, которые задают определенный график вертикального фактора. Графики применяются для определения вертикального фактора, используемого в вычислениях общей стоимости перемещения в соседнюю ячейку. В приведенных ниже пояснениях используются два сокращения: VF обозначает вертикальный фактор, идентифицирующий трудности преодоления разности высот, возникающие при продвижении от одной ячейки к другой; а VRMA обозначает относительный вертикальный угол движения, который идентифицирует угол уклона между анализируемой ячейкой От и ячейкой До. Существует несколько типов вертикальных факторов:
Значение по умолчанию - бинарное. Характеристики для вертикальных ключевых слов:
| Vertical Factor |
sourceCostMultiplier (Дополнительный) | Множитель, применяемый к значениям стоимости. Позволяет управлять режимом перемещения или магнитудой источника. Чем больше множитель, тем выше стоимость перемещения по каждой ячейке. Значения должны быть больше нуля. Значение по умолчанию равно 1. | Double; Field |
sourceStartCost (Дополнительный) | Начальная стоимость, от которой начинаются вычисления стоимости. Позволяет задавать фиксированную стоимость, связанную с источником. Вместо начала вычисления стоимости с нуля, алгоритм стоимости начинает со значения, заданного параметром sourceStartCost. Значения должны быть больше или равны нулю. Значение по умолчанию равно 0. | Double; Field |
sourceResistanceRate (Дополнительный) | Этот параметр симулирует возрастание усилия для преодоления стоимости по мере увеличения накопленной стоимости. Он используется для моделирования усталости путешествующего. Возрастающая накопленная стоимость для достижения ячейки умножается на степень сопротивляемости и добавляется к стоимости перемещения в последующую ячейку. Это модифицированная версия формулы начисления сложных процентов, которая используется для вычисления предполагаемой стоимости перемещения по ячейке. По мере увеличения степени сопротивления, увеличивается стоимость ячеек, посещаемых в последнюю очередь. Чем выше степень сопротивления, тем больше дополнительной стоимости добавляется для достижения следующей ячейки, которая складывается при каждом последующем передвижении. Поскольку степень сопротивления аналогична по свойствам средним темпам, а значения совокупной стоимости очень велики, рекомендуется использовать маленькие значения степени сопротивляемости (например, от 0,02 до 0,005 или даже меньше, в зависимости от совокупных значений стоимости. Значения должны быть больше или равны нулю. Значение по умолчанию равно 0. | Double; Field |
sourceCapacity (Дополнительный) | Задает для перемещающегося объекта емкость стоимости источника. Вычисление стоимости продолжается для каждого источника, пока не будет достигнута указанная емкость. Значения должны быть больше нуля. Емкость по умолчанию равна расстоянию до границы выходного растра. | Double; Field |
sourceTravelDirection (Дополнительный) | Определяет направление передвижения путешественника, если применяются горизонтальные и вертикальные факторы, степень сопротивляемости источника и начальная стоимость источника.
Либо укажите ключевое слово FROM_SOURCE или TO_SOURCE, которое будет применяться ко всем источникам, либо укажите поле в исходных данных, содержащее эти ключевые слова, чтобы задать направление перемещения для каждого источника. Это поле должно содержать строки FROM_SOURCE или TO_SOURCE. | String |
outputBacklinkName (Дополнительный) | Имя выходного сервиса растра направления. Растр направления содержит значения от 0 до 360, которые определяют направление вдоль оптимального пути с наименьшей суммарной стоимостью перемещения из каждой ячейки до ближайшего (в терминах стоимости) источника, во время вычисления расстояния по поверхности, а также горизонтального и вертикального факторов поверхности. | String |
outputAllocationName (Дополнительный) | Имя выходного сервиса растра распределения. Этот растр определяет зону каждого источника (ячейки или пространственного объекта), который может быть достигнут с наименьшими суммарными затратами. Выходной растр будет целочисленным. | String |
allocationField (Дополнительный) | Поле во входном источнике, содержащее значения, определяющие каждый источник. | String |
Производные выходные данные
Name | Объяснение | Тип данных |
outputDistanceRaster | Выходной растр расстояния. | Растровый слой |
outputBacklinkRaster | Выходной растр направления. | Растровый слой |
outputAllocationRaster | Выходной растр распределения. | Растровый слой |
Пример кода
В данном примере вычисляется стоимость перемещения от одного источника.
import arcpy
arcpy.CalculateTravelCost_ra('https://MyPortal.esri.com/server/rest/services/Hosted/reccenter/ImageServer',
"outDist", "inCostRas", "inSurfaceRas", "200000")
В данном примере вычисляется стоимость перемещения от набора источников.
# Name: CalculateTravelCost_Ex_02.py
# Description: Calculates for each cell the least accumulative cost distance
# to the nearest source over a cost surface.
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inSource = 'https://MyPortal.esri.com/server/rest/services/Hosted/landuse/ImageServer'
outDistName =
inCostRast = "costraster"
inElev = "elevation"
maxDist = "50000"
inHoriz = "backlink2"
horizFactor = "FORWARD 0.5 1.0"
inVertical = "focalcost.tif"
verticalFactor = "Binary 1.0 -30 30"
sourceCostMultiplier =
sourceStartCost =
sourceResistanceRate =
sourceCapacity =
sourceTravelDirection =
optBacklinkName = "c:/sapyexamples/output/pathbacklink"
optAlloName =
allocField =
# Execute CalculateTravelCost
arcpy.CalculateTravelCost_ra(inSource, outDistName, inCostRast, inElev, maxDist, inHoriz, horizFactor,
inVertical, verticalFactor, sourceCostMultiplier, sourceStartCost,
sourceResistanceRate, sourceCapacity, sourceTravelDirection, optBacklinkName,
optAlloName, allocField)
# Execute CostDistance
outTravelCost = CalculateTravelCost(inSourceData, inCostRaster, maxDistance, outBkLinkRaster)
Environments
Информация о лицензиях
- Basic: Требуется ArcGIS Image Server
- Standard: Требуется ArcGIS Image Server
- Advanced: Требуется ArcGIS Image Server