Стоимостная связанность (Spatial Analyst)

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

Сводка

Создает связную сеть наименьшей стоимости между двумя или более входными регионами.

Подробнее о работе инструмента Стоимостная связность

Иллюстрация

Входные и выходные данные инструмента Стоимостная связанность
CostConnectivity(Regions, Cost_Ras, Cost_Connect)
Входные и выходные данные инструмента Стоимостная связанность
Два типа входных данных (регионы и стоимостные данные) показываются в левой части изображения, а в правой части – выходная сеть наименьшей стоимости, отображенная поверх регионов.

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

  • Входные регионы могут быть растровыми или векторными данными.

  • В растровых данных регион – это группа ячеек, имеющих такое же значение, как и соседние ячейки. Если ваши входные регионы идентифицированы растром, а какие-либо зоны (ячейки с одинаковыми значениями) состоят из нескольких регионов, сначала запустите инструмент Группировка в качестве действия по геообработке для присвоения уникальных значений регионам. Используйте полученный растр в качестве входных регионов для инструмента Стоимостная связанность.

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

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

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

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

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

  • Если входные регионы являются растром и диапазон ID строк очень большой (даже если представлены всего несколько регионов), то это негативно повлияет на производительность Стоимостной связности.

  • Ячейки со значением NoData во Входном растре стоимости расцениваются как барьеры.

  • Экстент обработки по умолчанию такой же, как у Входного растра стоимости.

  • Растр стоимости не может содержать нулевые значения, так как алгоритм представляет собой процесс с умножением. Если ваш растр стоимости содержит нулевые значения, и они представляют области наименьшей стоимости, замените нулевые значения на небольшие положительные числа (например, 0,01) перед запуском инструмента Стоимостная связанность, воспользовавшись инструментом Условие. Если ячейки с нулевыми значениями представляют области, которые должны быть исключены из анализа, замените нулевые значения значениями NoData перед запуском инструмента Стоимостная связанность, воспользовавшись инструментом Установить ноль.

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

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

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

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

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

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

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

Синтаксис

CostConnectivity(in_regions, in_cost_raster, out_feature_class, {out_neighbor_paths})
ParameterОбъяснениеТип данных
in_regions

Входные регионы, которые должны быть соединены в сеть наименьшей стоимости.

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

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

Если входные регионы представлены в виде набора объектов, это могут быть полигоны, линии или точки. Полигональные регионы не могут содержать составных объектов.

Raster Layer; Feature Layer
in_cost_raster

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

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

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

Raster Layer
out_feature_class

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

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

  • PATHID - Уникальный идентификатор пути
  • PATHCOST - Общая накопленная стоимость для пути
  • REGION1 - Первый регион, который соединяется путями
  • REGION2 - Другие регионы, которые соединяются путями

Данная информация формирует ваш взгляд на маршруты сети.

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

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

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

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

  • PATHID - Уникальный идентификатор пути
  • PATHCOST - Общая накопленная стоимость для пути
  • REGION1 - Первый регион, который соединяется путями
  • REGION2 - Другие регионы, которые соединяются путями

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

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

Feature Class

Пример кода

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

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCostConn = CostConnectivity("source.shp", "elevation")
outCostConn.save("C:/sapyexamples/output/costdist")
CostConnectivity, пример 2 (автономный скрипт)

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

# Name: CostConnectivity_Ex_02.py
# Description: Calculates for each cell ...
#
# 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
inSourceData = "source.shp"
inCostRaster = "elevation"
maxDistance = 20000000   
outBkLinkRaster = "C:/sapyexamples/output/outbklink"

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

# Execute CostDistance
outCostConnectivity = CostConnectivity(inSourceData, inCostRaster)

# Save the output 
outCostConnectivity.save("C:/sapyexamples/output/outcostconn")

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

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

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