Сводка
Создает файл с матрицей пространственных весов (.swm) для отображения пространственных отношений между объектами в наборе данных.
Подробнее о том, как работает инструмент Построить матрицу пространственных весов
Иллюстрация
Использование
Результат работы этого инструмента – файл матрицы пространственных весов (.swm). Для таких инструментов, как Анализ "горячих точек" (Hot_Spot_Analysis), для которых требуется указывать параметр Концептуализация пространственных отношений (Conceptualization of Spatial Relationships), может использоваться файл матрицы пространственных весов (spatial weights matrix file); выберите значение 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) (часы или дни) и Значение интервала даты/времени (Date/Time Interval Value). Значение интервала даты/времени (Date/Time Interval Value) должно быть целым числом. Например, если ввести пороговое расстояние в 1000 футов, выбрать HOURS (часы), а в параметре Значение интервала даты/времени (Date/Time Interval Value) указать 3, то соседями будут считаться объекты, расположенные друг от друга в пределах 1000 футов и 3 часов.
Файл матрицы пространственных весов (.swm) изначально был предназначен для того, чтобы вы могли создавать, хранить, повторно использовать и опубликовывать свою концептуализацию отношений между объектами в наборе объектов. Для повышения быстродействия системы файл создается в двоичном формате. Отношения между пространственными объектами хранятся в виде разреженной матрицы, при этом в файл SWM записываются только ненулевые отношения. В общем случае инструмент показывает высокую производительность даже тогда, когда файл SWM содержит более 15 миллионов ненулевых отношений. Тем не менее, если вдруг при работе с файлом SWM возникнет ошибка оперативной памяти, следует пересмотреть метод определения отношений между объектами. За общее правило следует принять такую матрицу пространственных весов, в которой каждый объект имеет, по меньшей мере, одного соседа, большая часть объектов – около восьми, и при этом ни один объект не имеет числа соседей, значительно большего 1 000.
Когда Входной класс объектов (Input Feature Class) не имеет проекции (т.е. когда координаты заданы в градусах, минутах и секундах), или когда в качестве выходной системы координат (output coordinate system) используется Географическая система координат (Geographic Coordinate System), расстояния в этих случаях будут рассчитываться с помощью хордовых измерений. Измерения хордовых расстояний применяются постольку, поскольку они могут быть быстро вычислены и дают очень хорошие оценки истинных геодезических расстояний, по крайней мере для точек, расстояние между которыми в пределах порядка тридцати градусов. Хордовые расстояния основаны на эллипосиде вращения. Если взять две любые точки на поверхности Земли, то хордовым расстоянием между ними будет длина прямой линии, проходящей через трехмерное тело Земли и соединяющей эти две точки. Хордовые расстояния выражаются в метрах.
Когда при анализе используются хордовые расстояния, параметр Пороговое расстояние, если он указывается, должен быть выражен в метрах.
В более ранних версиях, чем ArcGIS 10.2.1, вы бы увидели предупреждение о том, что выбранные вами параметры и системные настройки предполагают проведение вычислений на основе географических координат (градусы, минуты, секунды). Увидев это предупреждение, необходимо было произвести проецирование данных в Систему координат проекции для того, чтобы вычисление расстояний было точным. Однако, начиная с версии 10.2.1, этот инструмент рассчитывает хордовые расстояния для всех случаев, когда требуются вычисления в географической системе координат.
-
Для линейных или полигональных объектов, при расчете расстояний используются центроиды. Для мультиточек, полилиний или полигонов, состоящих их нескольких частей, центроид вычисляется с использованием средневзвешенного центра всех частей объекта. При определении весов точечные объекты имеют равный вес (1). Для линейных объектов это длина сегмента. Для полигональных – площадь.
Поле Уникальный ID (Unique ID) связано с отношениями объектов, полученными в результате работы данного инструмента. Следовательно, значение Уникальный ID (Unique ID) должно быть уникально для каждого объекта и, как правило, должно хранится в постоянном поле, которое остается с классом объектов. Если у вас нет поля уникального идентификатора ID, его можно создать, добавив новое целочисленное поле (Добавить поле (Add Field)) в таблицу класса объектов и вычислив значения поля, равные полю FID или OBJECTID (Вычислить поле (Calculate Field)). Поскольку значения полей FID и OBJECTID могут изменяться при копировании и редактировании класса объектов, вы не можете использовать эти поля непосредственно в качестве параметра Уникальный ID (Unique ID).
Параметр Количество соседей (Number of Neighbors) может перевесить параметр Пороговое расстояние (Threshold Distance) в случаях обратной или фиксированной концептуализаций расстояний пространственных отношений. Если вы зададите пороговое расстояние в 10 миль и значение 3 для параметра Количество соседей (Number of Neighbors), то каждый из объектов будут иметь минимум по 3 соседа, даже если для того, чтобы найти их, пришлось бы увеличить пороговое расстояние. Пороговое расстояние только увеличивается в тех случаях, где минимальное число соседей не найдено.
Опция CONVERT_TABLE для параметра Концептуализация пространственных отношений (Conceptualization of Spatial Relationships) может быть использована для конвертации ASCII-файла матрицы пространственных весов (ASCII spatial weights matrix file) в SWM-файл матрицы пространственных весов (SWM formatted spatial weights matrix file). В первую очередь необходимо вставить текстовый файл с весами кодировки ASCII в отформатированную таблицу (используя, например, приложение Excel).
Для полигональных объектов для параметра Стандартизация строк (Row Standardization) практически всегда необходимо выбирать значение ROW. Нормализация ряда (Row Standardization) нивелирует отклонение в ситуациях, когда количество соседей каждого объекта является функцией агрегирования или выборки, нежели отражением реального пространственного распределения анализируемой переменной.
-
Дополнительную информацию о параметрах инструмента см. в справочной статье Моделирование пространственных отношений.
Инструменты, которые могут использовать файл матрицы пространственных весов, перед анализом проецируют геометрию объектов в выходную систему координат, поэтому все математические вычисления основаны на выходной системе координат. Как следствие, если выходная система координат не соответствует пространственной привязке входного класса объектов, следует выполнить одно из двух: либо сделать так, чтобы для всех операций анализа, использующих файл матрицы пространственных весов, выходная система координат соответствовала тем настройкам, которые применялись при создании этого файла; либо проецировать входной класс объектов так, чтобы он соответствовал пространственной привязке файла матрицы пространственных весов.
Синтаксис
arcpy.stats.GenerateSpatialWeightsMatrix(Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Conceptualization_of_Spatial_Relationships, {Distance_Method}, {Exponent}, {Threshold_Distance}, {Number_of_Neighbors}, {Row_Standardization}, {Input_Table}, {Date_Time_Field}, {Date_Time_Interval_Type}, {Date_Time_Interval_Value})
Параметр | Объяснение | Тип данных |
Input_Feature_Class | Класс пространственных объектов, для которого пространственные отношения объектов будут оценены. | Feature Class |
Unique_ID_Field | Целочисленное поле, содержащее по уникальному значению для каждого объекта во входном классе объектов. Если у вас нет поля Уникальный ID, вы можете создать его путем добавления нового целого поля в вашу таблицу классов объектов и вычислив значения полей, которые были бы равны полям FID или OBJECTID. | Field |
Output_Spatial_Weights_Matrix_File | Полный путь к создаваемому файлу матрицы пространственных весов (.swm). | File |
Conceptualization_of_Spatial_Relationships | Определяет, как концептуализированы пространственные отношения между объектами.
| String |
Distance_Method (Дополнительный) | Определяет, как рассчитываются расстояния от одного объекта до соседнего объекта.
| String |
Exponent (Дополнительный) | Параметр для расчета обратного расстояния. Типичные значения – 1 или 2. | Double |
Threshold_Distance (Дополнительный) | Определяет предельное расстояние для концептуализации пространственных отношений Обратного или Фиксированного расстояний. Введите это значение, используя единицы, определенные во входящей системе координат. Задаёт размер пространственного окна при концептуализации пространственных отношений Пространственно-временное окно. Значение 0 указывает на то, что пороговое расстояние не применяется. Когда этот параметр остается пустым, пороговое значение по умолчанию будет вычислено исходя из экстента и количества объектов во Входном классе объектов. | Double |
Number_of_Neighbors (Дополнительный) | Целое число, показывающее или минимально или точное количество соседей. В случае K_NEAREST_NEIGHBORS каждый объект будет иметь в точности это заданное число соседей. В случаях INVERSE_DISTANCE или FIXED_DISTANCE каждый объект будет иметь по крайней мере это заданное количество соседей, (для этого, если потребуется, пороговое расстояние будет временно увеличено). Когда выбран один из примыкающих полигонов Концептуализации пространственных отношений (Conceptualizations of Spatial Relationships), каждый из этих полигонов получит это минимальное число соседей. Для полигонов с меньшим числом соседей, чем это число примыкающих соседей, дополнительное количество соседей определяется по принципу близости центроидов объектов. | 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 |
Пример кода
Построение матрицы пространственных весов (GenerateSpatialWeightsMatrix) – пример 1 (окно Python)
Следующий скрипт, представленный в окне Python, демонстрирует применение инструмента GenerateSpatialWeightsMatrix.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION")
Построение матрицы пространственных весов (GenerateSpatialWeightsMatrix) – пример 2 (автономный скрипт Python)
Следующий автономный 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 property to overwrite existing output, by default
arcpy.env.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())
Параметры среды
Информация о лицензиях
- Basic: Да
- Standard: Да
- Advanced: Да
Связанные разделы
- Обзор группы инструментов Моделирование пространственных отношений
- Пространственная автокорреляция (Глобальный индекс Морана I)
- Кластеризация с высокими/низкими значениями (Глобальный индекс Getis-Ord G)
- Анализ кластеров и выбросов (Anselin Локальный индекс Морана I)
- Анализ горячих точек (Getis-Ord Gi*)
- Анализ группирования
- Пространственные веса
- Моделирование пространственных отношений
- Построить матрицу пространственных весов для сети