Построить матрицу пространственных весов (Пространственная статистика)
Резюме
Создает файл с матрицей пространственных весов (с расширением SWM) для отображения пространственных отношений между объектами в наборе данных.
Подробнее о том, как работает инструмент Построить матрицу пространственных весов
Рисунок
Использование
-
Результат работы этого инструмента — файл матрицы пространственных весов (с расширением SWM). Файл матрицы пространственных весов можно подавать на вход тех инструментов, для которых необходима Концептуализация пространственных отношений (в их числе инструмент Анализ "горячих точек" (Hot_Spot_Analysis)). Для этого выберите значение Получить пространственные веса из файла (GET_SPATIAL_WEIGHTS_FROM_FILE) для параметра Концептуализация пространственных отношений (Conceptualization of Spatial Relationships), затем в параметре Файл матрицы весов (Weights Matrix File) укажите полный путь к файлу с пространственными весами, который создан этим инструментом.
Данный инструмент также выводит характеристики полученного файла матрицы пространственных весов: число объектов, связность, а также минимальное, максимальное и среднее число соседних объектов. Эта информация доступна в окне Результаты (Results) — чтобы просмотреть отчет, щелкните правой кнопкой элемент Сообщений (Messages) в окне Результаты (Results) и выберите Просмотреть (View). Просмотрев отчет, следует убедиться, что все объекты имеют, по крайней мере, один соседний объект. В целом, особенно в случае больших наборов данных, каждому объекту желательно иметь, по меньшей мере, восемь соседей. Также желательно низкое значение связности объектов.
Для анализа пространства/времени выберите значение SPACE_TIME_WINDOW (Пространственно-временное окно) в параметре Концептуализация пространственных отношений (Conceptualization of Spatial Relationships). Пространство задается значением Порогового расстояния (Threshold Distance), а время задается параметром Поле даты/времени (Date/Time Field) или двумя параметрами: Тип Даты/времени (Date/Time Type) (например, HOURS — Часы или DAYS — Дни) и Значение интервала даты/времени (Date/Time Interval Value). Значение интервала даты/времени (Date/Time Interval Value) должно быть целым числом. Например, если ввести пороговое расстояние в 1000 футов, выбрать Часы (HOURS), а в параметре Значение интервала даты/времени указать 3, то соседями будут считаться объекты, расположенные друг от друга в пределах 1 000 футов и 3 часов.
Файл матрицы пространственных весов (*.swm) изначально предназначен для построения, хранения, повторного использования и размещения в общем доступе конкретной концептуализации пространственных отношений между объектами набора объектов. Для повышения быстродействия системы файл создается в двоичном формате. Отношения между пространственными объектами хранятся в виде разреженной матрицы, при этом в файл SWM записываются только ненулевые отношения. В общем случае инструмент показывает высокую производительность даже тогда, когда файл SWM содержит более 15 миллионов ненулевых отношений. Тем не менее, если вдруг при работе с файлом SWM возникнет ошибка оперативной памяти, следует пересмотреть метод определения отношений между объектами. За общее правило следует принять такую матрицу пространственных весов, в которой каждый объект имеет, по меньшей мере, одного соседа, большая часть объектов — около восьми, и при этом ни один объект не имеет числа соседей, значительно большего 1 000.
-
При использовании Концептуализации пространственных отношений, основанной на расстояниях, данные должны быть в Системе координат проекции (а не в Географической системе координат).
-
Для линейных или полигональных объектов, центроиды используются при расчете расстояний. Для мультиточек, полилиний или полигонов, состоящих их нескольких частей, центроид вычисляется с использованием средневзвешенного центра всех частей объекта. При определении весов точечные объекты имеют равный вес (1). Для линейных объектов это длина сегмента. Для полигональных – площадь.
-
Поле Уникальный ID (Unique ID) связано с отношениями объектов, полученными в результате работы данного инструмента. Следовательно, значение Уникальный ID (Unique ID) должно быть уникально для каждого объекта и, как правило, должно хранится в постоянном поле, которое остается с классом объектов. Если у вас нет поля Уникальный ID (Unique ID), его можно легко создать, добавив новое целое поле (Добавить поле (Add Field)) в таблицу класса объектов и рассчитав значение поля, которое должно соответствовать полю FID/OID (Вычислить поле (Calculate Field)). Вы не можете непосредственно использовать поле FID/OID для параметра Уникальный ID (Unique ID).
-
Параметр Количество соседей (Number of Neighbors) может играть роль параметра Пороговое расстояние (Threshold Distance) в случае, если Концептуализация пространственных отношений имеет тип Обратное или Фиксированное расстояние. Если вы определяете пороговое расстояние в 10 миль и 3 для числа соседей, то все объекты получат минимум 3 соседей, даже если пороговое расстояние придется увеличить, чтобы найти их. Пороговое расстояние только увеличивается в тех случаях, где минимальное число соседей не найдено.
Опция CONVERT_TABLE для параметра Концептуализация пространственных отношений может быть использована для конвертации ASCII-файла матрицы пространственных весов в SWM-файл матрицы пространственных весов. В первую очередь необходимо вставить текстовый файл с весами кодировки ASCII в отформатированную таблицу (используя, например, приложение Excel).
Внимание:Если таблица включает веса для собственного потенциала, они не будут включены в полученный файл SWM, и при анализе будет использоваться значение собственного потенциала по умолчанию. Значение собственного потенциала по умолчанию для инструмента Анализ "горячих точек" (Hot_Spot_Analysis) равно единице, но это значение может быть заменено параметром Поле собственного потенциала (Self-Potential Field). Для всех других инструментов значение собственного потенциала по умолчанию равно нулю.
Для полигональных объектов практически всегда необходимо выбирать значение Строка (Row) для параметра Нормализация ряда (Row Standardization). Нормализация ряда (Row Standardization) нивелирует отклонение в ситуациях, когда количество соседей каждого объекта является функцией агрегирования или выборки, нежели отражением реального пространственного распределения анализируемой переменной.
-
Дополнительную информацию о параметрах инструмента см. в справочной статье Моделирование пространственных отношений.
Инструменты, которые могут использовать файл матрицы пространственных весов, перед анализом проецируют геометрию объектов в выходную систему координат, поэтому все математические вычисления основаны на выходной системе координат. Как следствие, если выходная система координат не соответствует пространственной привязке входного класса объектов, следует выполнить одно из двух: либо сделать так, чтобы для всех операций анализа, использующих файл матрицы пространственных весов, выходная система координат соответствовала тем настройкам, которые применялись при создании этого файла; либо проецировать входной класс объектов так, чтобы он соответствовал пространственной привязке файла матрицы пространственных весов.
При использовании шейп-файлов, помните, что в них нельзя хранить нулевые (null) значения. Инструменты или другие процедуры, создающие шейп-файлы из прочих входных данных, могут хранить значения NULL в виде 0 или оперировать ими как нулем. В некоторых случаях нули в шейп-файлах хранятся как очень маленькие отрицательные числа. Это может привести к неожиданным результатам. Дополнительные сведения см. в разделе Рекомендации по геообработке выходных данных шейп-файла.
Синтаксис
Параметр | Объяснение | Тип данных |
Input_Feature_Class |
Класс пространственных объектов, для которого пространственные отношения объектов будут оценены. | Feature Class |
Unique_ID_Field |
Целое поле, содержащее разное значение для каждого объекта во Входном классе объектов. | Field |
Output_Spatial_Weights_Matrix_File |
Полный путь к создаваемому файлу матрицы пространственных весов (SWM). | File |
Conceptualization_of_Spatial_Relationships |
Определяет, как представлены отношения между объектами.
Примечание: методы Примыкания полигонов доступны только с уровнем лицензии ArcGIS for Desktop Advanced. | String |
Distance_Method (дополнительно) |
Определяет, как рассчитываются расстояния от одного объекта до соседнего объекта.
| String |
Exponent (дополнительно) |
Параметр для расчета обратного расстояния. Типичные значения - 1 или 2. | Double |
Threshold_Distance (дополнительно) |
Определяет предельное расстояние для концептуализации пространственных отношений Обратного или Фиксированного расстояний. Введите это значение, используя единицы, определенные во входящей системе координат. Задаёт размер пространственного окна при концептуализации пространственных отношений Пространственно-временное окно. Значение 0 указывает на то, что пороговое расстояние не применяется. Когда этот параметр остается пустым, пороговое значение по умолчанию будет вычислено исходя из экстента и количества объектов во Входном классе объектов. | Double |
Number_of_Neighbors (дополнительно) |
Целое число, показывающее или минимально или точное количество соседей. В случае типа определения отношений K ближайших соседей каждый объект будет иметь число соседей, в точности равное указанному. В случае Обратного расстояния или Фиксированного расстояния каждый объект будет иметь количество соседей, равное указанному значению или превышающее его (для этого, если потребуется, пороговое расстояние будет временно увеличено). Когда имеются островные полигоны, и в качестве Концептуализации пространственных отношений выбран один из типов Примыкания, тогда указанное количество ближайших полигонов будет связано с этими островными полигонами. | Long |
Row_Standardization (дополнительно) |
Нормализация ряда (Row standardization) рекомендуется, независимо от того, распределены ли объекты потенциально предвзято в зависимости от дизайна примера или от установленной схемы агрегации.
| Boolean |
Input_Table (дополнительно) |
Таблица, содержащая числовые веса, связывающие объекты друг с другом во Входном классе объектов. Требуемые поля - Входной Класс Объектов, Уникальный ID поля, NID (соседний ID) и WEIGHT. | Table |
Date_Time_Field (дополнительно) |
Поле даты с временной отметкой для каждого объекта. | Field |
Date_Time_Interval_Type (дополнительно) |
Единицы измерения времени.
| String |
Date_Time_Interval_Value (дополнительно) |
Целое число единиц измерения времени, составляющее временной диапазон. К примеру, если в качестве Типа интервала даты/времени выбраны Часы, а значение интервала равно 3, то временной диапазон составит 3 часа; объекты, попадающие в указанный временной диапазон и в указанный пространственный диапазон, будут считаться соседями. | Long |
Пример кода
Следующий скрипт, представленный в окне Python, демонстрирует применение инструмента GenerateSpatialWeightsMatrix.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION")
Следующий автономный Python скрипт демонстрирует, как использовать инструмент GenerateSpatialWeightsMatrix.
# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Hot-Spot Analysis Tool (Local Gi*)
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.gp.overwriteOutput = True
# Local variables...
workspace = "C:/Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Copy the input feature class and integrate the points to snap
# together at 500 feet
# Process: Copy Features and Integrate
cf = arcpy.CopyFeatures_management("911Calls.shp", "911Copied.shp",
"#", 0, 0, 0)
integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet")
# Use Collect Events to count the number of calls at each location
# Process: Collect Events
ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
# Add a unique ID field to the count feature class
# Process: Add Field and Calculate Field
af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
"NON_NULLABLE", "NON_REQUIRED", "#",
"911Count.shp")
cf = arcpy.CalculateField_management("911Count.shp", "MyID", "[FID]", "VB")
# Create Spatial Weights Matrix for Calculations
# Process: Generate Spatial Weights Matrix...
swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID",
"euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 6,
"NO_STANDARDIZATION")
# Hot Spot Analysis of 911 Calls
# Process: Hot Spot Analysis (Getis-Ord Gi*)
hs = arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp",
"GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "NONE",
"#", "#", "euclidean6Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()
Параметры среды
- Выходная система координат (Output Coordinate System)
До начала анализа геометрия пространственных объектов проецируется в Выходную систему координат (Output Coordinate System).