Распределение по расстоянию (Анализ растра)

Сводка

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

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

  • Этот инструмент портала для анализа растров доступен, если вы выполнили вход в ArcGIS Enterprise Ссылка на разбор анализа в ArcGIS Enterprise портал с расширением ArcGIS Image Server Ссылка на раздел Что такое ArcGIS Image Server настроенный для Raster Analysis Ссылка на настройку и развертывание аналитики растров. Когда инструмент запускается, ArcGIS Pro выступает в качестве клиента, и обработка проходит на серверах, интегрированных с ArcGIS Enterprise. Инструмент портала использует слои портала в качестве входных данных и создает выходные данные на этом же портале.

    Параметр Входной растровый слой поддерживает слой портала, URI или URL сервиса изображений или выходные данные инструмента Создать слой сервера изображений. Входной векторный слой может быть слоем портала или URI либо URL сервиса объектов. Указанный инструмент не поддерживает локальные наборы растровых данных или слои. Хотя вы можете использовать локальные векторные данные или слои как входные данные для инструментов портала, лучше все же использовать слои портала в качестве входных данных.

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

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

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

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

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

  • Если параметр среды Экстент не задан, экстент обработки определяется следующим образом:

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

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

  • Если параметры среды Размер ячейки или Растр привязки не заданы, а в качестве входных данных задано несколько растров, Размер ячейки и Растр привязки задаются в порядке очередности: Входной растр стоимости, Входная растровая поверхность, Входной растр вертикального фактора, Входной растр горизонтального фактора, Входные растровые или векторные данные источника и Входной растр барьеров или векторные объекты барьеры.

  • Значения по умолчанию для модификаторов Вертикального фактора следующие:

    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
  • Выходные данные инструмента Экспозиция могут использоваться в качестве входных данных для Входного горизонтального растра.

  • Значения по умолчанию для модификаторов Горизонтального фактора следующие:

    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   ~
  • Если какой-либо из параметров характеристик источника указан с использованием поля, исходная характеристика будет применяться по принципу «источник-на-источник» в соответствии с информацией в данном поле для исходных данных. Если используется ключевое слово или константа, они применяются ко всем источникам.

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

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

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

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

Синтаксис

arcpy.ra.DistanceAllocation(inputSourceRasterOrFeatures, outputDistanceAllocationRasterName, {inputBarrierRasterOrFeatures}, {inputSurfaceRaster}, {inputCostRaster}, {inputVerticalRaster}, {verticalFactor}, {inputHorizontalRaster}, {horizontalFactor}, {outputDistanceAccumulationRasterName}, {outputBackDirectionRasterName}, {outputSourceDirectionRasterName}, {outputSourceLocationRasterName}, {sourceField}, {sourceInitialAccumulation}, {sourceMaximumAccumulation}, {sourceCostMultiplier}, {sourceDirection}, {distanceMethod})
ParameterОбъяснениеТип данных
inputSourceRasterOrFeatures

Входные местоположения источников.

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

Для сервиса изображений тип входных данных может быть целым или с плавающей запятой.

Raster Layer; Feature Layer
outputDistanceAllocationRasterName

Имя выходного сервиса растра распределения по расстоянию.

String
inputBarrierRasterOrFeatures
(Дополнительный)

Набор данных, определяющий барьеры.

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

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

Raster Layer; Feature Layer
inputSurfaceRaster
(Дополнительный)

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

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

Raster Layer
inputCostRaster
(Дополнительный)

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

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

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

Raster Layer
inputVerticalRaster
(Дополнительный)

Сервис изображений, определяющий z-значения для каждого местоположения ячейки.

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

Raster Layer
verticalFactor
(Дополнительный)

Объект Vertical factor определяет отношение между фактором вертикальной стоимости и вертикальным углом относительного перемещения (VRMA).

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

В приведенных ниже пояснениях VF обозначает вертикальный фактор, идентифицирующий трудности преодоления разности высот, возникающие при продвижении от одной ячейки к другой, а VRMA обозначает относительный вертикальный угол движения, который идентифицирует угол уклона между анализируемой ячейкой От и ячейкой До.

Объект представлен в следующих формах: VfBinary, VfLinear, VfInverseLinear, VfSymLinear, VfSymInverseLinear, VfCos, VfSec, VfSec, VfCosSec и VfSecCos

Определения и параметры этих форм следующие:

  • VfBinary({zeroFactor}, {lowCutAngle}, {highCutAngle})

    Если VRMA больше нижнего порогового угла и меньше верхнего порогового угла, значение VF устанавливается равным значению, связанному с нулевым фактором; в противном случае, значение равно бесконечности.

  • VfLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF является линейной функцией VRMA.

  • VfInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF является обратной линейной функцией VRMA.

  • VfSymLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF является линейной функцией VRMA либо с отрицательной, либо с положительной стороны VRMA, соответственно; эти две линейные функции симметричны относительно оси VF (оси y).

  • VfSymInverseLinear({zeroFactor}, {lowCutAngle}, {highCutAngle}, {slope})

    VF является обратной линейной функцией VRMA либо с отрицательной, либо с положительной стороны VRMA, соответственно; эти две линейные функции симметричны относительно оси VF (оси y).

  • VfCos({lowCutAngle}, {highCutAngle}, {cosPower})

    VF является функцией косинуса VRMA.

  • VfSec({lowCutAngle}, {highCutAngle}, {secPower})

    VF является функцией секанса VRMA.

  • VfCosSec({lowCutAngle}, {highCutAngle}, {cosPower}, {secPower})

    VF является косинусом угла VRMA, когда VRMA отрицательный, и секансом угла VRMA, когда VRMA не отрицательный.

  • VfSecCos({lowCutAngle}, {highCutAngle}, {secPower}, {cos_power})

    VF является секансом угла VRMA, когда VRMA отрицательный, и косинусом угла VRMA, когда VRMA не отрицательный.

Модификаторы для параметров вертикального фактора:

  • zeroFactor – вертикальный фактор, используемый в случаях, когда VRMA равен 0. Этот фактор определяет точку пересечения с осью y для указанной функции. По определению, нулевой фактор не применим ни к одной из тригонометрических вертикальных функций (Cos, Sec, Cos-Sec или Sec-Cos). Пересечение с осью Y устанавливается этими функциями.
  • lowCutAngle – значение угла VRMA, ниже которого VF будет задан равным бесконечности.
  • highCutAngle – значение угла VRMA, выше которого VF будет задан равным бесконечности.
  • slope – наклон прямой линии, используемый с параметрами VfLinear и VfInverseLinear. Уклон задается как отношение подъема к расстоянию (например, 45 процентов уклона – это 1/45 (значение при вводе равно 0,02222)).
Vertical Factor
inputHorizontalRaster
(Дополнительный)

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

Значения на растре должны быть целыми числами в диапазоне от 0 до 360, значение 0 градусов соответствует направлению на север, или в верхнюю часть экрана. Значения увеличиваются по часовой стрелке. Плоским участкам должно быть присвоено значение, равное -1. Для определения дополнительной стоимости в горизонтальной плоскости, возникающей при движении из ячейки в соседние с ней ячейки, значения в каждом местоположении будут использоваться в сочетании с horizontal_factor.

Raster Layer
horizontalFactor
(Дополнительный)

Объект Horizontal Factor определяет отношение между горизонтальным фактором стоимости и горизонтальным относительным углом движения.

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

В приведенных ниже пояснениях используются два сокращения: HF обозначает горизонтальный фактор, идентифицирующий определенные препятствия при продвижении от одной ячейки к другой, а HRMA - относительный горизонтальный угол движения, который идентифицирует угол между направлением по горизонтали и направлением движения.

Объект представлен в следующих формах: HfBinary, HfForward, HfLinear и HfInverseLinear

Определения и параметры этих форм следующие:

  • HfBinary({zeroFactor}, {cutAngle})

    Если HRMA меньше порогового угла, значение HF устанавливается равным значению, связанному с нулевым фактором; в противном случае, значение равно бесконечности.

  • HfForward({zeroFactor}, {sideValue})

    Движение возможно только вперед. HRMA должен быть больше или равен 0 и меньше 90 градусов (0 < = HRMA < 90). Если HRMA больше 0 и меньше 45 градусов, HF для ячейки задаётся равным значению, связанному с нулевым фактором. Если HRMA больше или равен 45 градусам, тогда используется модификатор бокового значения. HF для любого HRMA, больше или равного 90 градусам, задается равным бесконечности.

  • HfLinear({zeroFactor}, {cutAngle}, {slope})

    HF является линейной функцией HRMA.

  • HfInverseLinear({zeroFactor}, {cutAngle}, {slope})

    HF является обратной линейной функцией HRMA.

Модификаторы для ключевых слов горизонтального фактора:

  • zeroFactor – горизонтальный фактор, используемый в случаях, когда HRMA равен 0. Этот фактор определяет точку пересечения с осью y для любой из функций горизонтального фактора.
  • cutAngle – угол HRMA, при превышении которого HF будет задан равным бесконечности.
  • slope – наклон прямой линии, используемый с ключевыми словами горизонтального фактора HfLinear и HfInverseLinear. Уклон задается как отношение подъема к расстоянию (например, 45 процентов уклона – это 1/45 (значение при вводе равно 0,02222)).
  • sideValue – HF в тех случаях, когда HRMA больше или равен 45 градусам и меньше 90 градусов, при использовании ключевого слова горизонтального фактора HfForward.

Horizontal Factor
outputDistanceAccumulationRasterName
(Дополнительный)

Имя выходного растра накопления расстояния.

Растр накопления расстояния содержит информацию об общем расстоянии для каждой ячейки «от» или «до», источника наименьшей стоимости.

String
outputBackDirectionRasterName
(Дополнительный)

Имя выходного растра обратного направления.

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

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

Тип выходного растра – float.

String
outputSourceDirectionRasterName
(Дополнительный)

Имя выходного растра направлений источника.

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

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

Тип выходного растра – float.

String
outputSourceLocationRasterName
(Дополнительный)

Имя выходного растра местоположений источника.

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

String
sourceField
(Дополнительный)

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

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

Стоимость начального накопления для начала расчета стоимости.

Позволяет задавать фиксированную стоимость, связанную с источником. Вместо начала вычисления стоимости с нуля, алгоритм стоимости начинает со значения, заданного параметром source_initial_accumulation.

Значения должны быть больше или равны нулю. Значение по умолчанию равно 0.

Double; Field
sourceMaximumAccumulation
(Дополнительный)

Максимальное накопление при перемещении к источнику.

Вычисление стоимости для каждого источника продолжается до тех пор, пока не будет достигнуто указанное накопление.

Значения должны быть больше нуля. По умолчанию на краю выходного растра идет накопление.

Double; Field
sourceCostMultiplier
(Дополнительный)

Множитель, применяемый к значениям стоимости.

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

Значения должны быть больше нуля. Значение по умолчанию равно 1.

Double; Field
sourceDirection
(Дополнительный)

Указывает направление перемещения при применении горизонтальных и вертикальных факторов.

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

Укажите ключевое слово FROM_SOURCE или TO_SOURCE, которое будет применено ко всем источникам, либо укажите поле в исходных данных, которое содержит ключевые слова, необходимые для идентификации направления перемещения для каждого источника. Это поле должно содержать строки FROM_SOURCE или TO_SOURCE.

String; Field
distanceMethod
(Дополнительный)

Задает, следует ли вычислять расстояние с помощью планарного (плоская земля) или геодезического (эллипсоид) метода.

  • PLANARРасчет расстояний выполняется на проецированной плоскости при использовании декартовой системы координат 2D. Это значение по умолчанию.
  • GEODESICРасчет расстояния будет производиться по эллипсоиду. Поэтому, независимо от входной или выходной проекции, результаты не меняются.
String

Производные выходные данные

NameОбъяснениеТип данных
outputDistanceAllocationRaster

Выходной растр распределения по расстоянию.

Растр
outputDistanceAccumulationRaster

Выходной растр накопления расстояния.

Растр
outputBackDirectionRaster

Выходной растр обратного направления.

Растр
outputSourceDirectionRaster

Выходной растр направлений источника.

Растр
outputSourceLocationRaster

Выходной растр местоположений источника.

Растр

Пример кода

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

В следующем скрипте окна Python показано, как используется инструмент DistanceAllocation.

import arcpy

arcpy.DistanceAllocation_ra('https://MyPortal.esri.com/server/rest/services/Hosted/sources/ImageServer',
                            'outDistanceAllocation',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/barrier/ImageServer',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/surface/ImageServer',
                            'https://MyPortal.esri.com/server/rest/services/Hosted/cost/ImageServer')
DistanceAllocation, пример 2 (автономный скрипт)

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

# Name: DistanceAllocation_Ex_02.py
# Description: Calculates the distance allocation.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inputSourceRasterOrFeatures = 'https://MyPortal.esri.com/server/rest/services/Hosted/sources/ImageServer'
outputDistanceAllocationRasterName = "outDistAllo"
inputBarrierRasterOrFeatures  = 'https://MyPortal.esri.com/server/rest/services/Hosted/barrier/ImageServer'
inputSurfaceRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/surface/ImageServer'
inputCostRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/cost/ImageServer'
inputVerticalRaster = 'https://MyPortal.esri.com/server/rest/services/vertical/sources/ImageServer'
verticalFactor = ""
inputHorizontalRaster = 'https://MyPortal.esri.com/server/rest/services/Hosted/horizontal/ImageServer'
horizontalFactor = ""
outputDistanceAccumulationRasterName = "outAccum"
outputBackDirectionRasterName = "outBackDir"
outputSourceDirectionRasterName = "outSourceDir"
outputSourceLocationRasterName = "outSourceLocation"
sourceField = "SourceID"
sourceInitialAccumulation = "IntitalAccum"
sourceMaximumAccumulation = "500000"
sourceCostMultiplier = "CostMultiplier"
sourceDirection = "FROM_SOURCE"
distanceMethod = "PLANAR"

# Execute 
arcpy.DistanceAllocation_ra(inputSourceRasterOrFeatures, outputDistanceAllocationRasterName,
                            inputBarrierRasterOrFeatures, inputSurfaceRaster,
                            inputCostRaster, inputVerticalRaster, verticalFactor,
                            inputHorizontalRaster, horizontalFactor,
                            outputDistanceAccumulationRasterName, outputBackDirectionRasterName,
                            outputSourceDirectionRasterName, outputSourceLocationRasterName,
                            sourceField, sourceInitialAccumulation, sourceMaximumAccumulation,
                            sourceCostMultiplier, sourceDirection, distanceMethod)

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

  • Basic: Требуется ArcGIS Image Server
  • Standard: Требуется ArcGIS Image Server
  • Advanced: Требуется ArcGIS Image Server

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