Построить сбалансированные зоны (Пространственная статистика)

Сводка

Создает смежные зоны в области изучения в однородные регионы на основании заданного критерия.

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

Более подробно о том, как работает инструмент Построить сбалансированные зоны

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

  • Для создания зон необходимо выбрать одну из опций Целевой атрибут, Число зон и целевой атрибут или Число зон в параметре Метод создания зон. Если выбран Целевой атрибут, инструмент создает зоны на основании целевых значений одной или нескольких указанных переменных. Опция Число зон и целевой атрибут вычисляет сбалансированные значения атрибутов исходя из указанного числа зон. Также можно создать зоны на базе числа объектов, используя опцию Заданное число зон.

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

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

  • Лицензия:
    Параметр Расстояние согласования (distance_to_consider) доступен только с лицензией Desktop Advanced.
  • Инструмент поддерживает параллельную обработку для создания поколений для алгоритма и использует 50% доступной мощности процессора по умолчанию. Количество используемых процессоров можно изменить при помощи параметра среды Коэффициент параллельной обработки.

Синтаксис

arcpy.stats.BuildBalancedZones(in_features, output_features, zone_creation_method, {number_of_zones}, {zone_building_criteria_target}, {zone_building_criteria}, {spatial_constraints}, {weights_matrix_file}, {zone_characteristics}, {attribute_to_consider}, {distance_to_consider}, {categorial_variable}, {proportion_method}, {population_size}, {number_generations}, {mutation_factor}, {output_convergence_table})
ParameterОбъяснениеТип данных
in_features

Класс пространственных объектов или векторный слой, который будет агрегирован в зоны.

Feature Layer
output_features

Новый выходной класс объектов с информацией, какие объекты агрегированы в каждую из зон. Класс объектов отображается символами, присвоенными по полю ZONE_ID, кроме того к объектам добавлены поля со значениями каждого указанного критерия.

Feature Class
zone_creation_method

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

  • ATTRIBUTE_TARGETЗоны создаются на основании целевого значения одной или нескольких переменных Если выбрана эта опция, то нужная сумма каждого атрибута должна быть указана в параметре Критерий построения зон с целевым атрибутом, а каждая зона будет расти, пока сумма атрибутов не превысит эти значения. Например, вы можете использовать эту опцию для создания зон, в каждой из которых проживает не менее 100 000 человек в 20 000 зданий.
  • NUMBER_ZONES_AND_ATTRIBUTEЗаданное число зон будет создано с сохранением суммы атрибута примерно равным в рамках каждой зоны. Если выбрана эта опция, то нужное количество зон должно быть указано для параметр Целевое количество зон. Сумма атрибутов в пределах каждой зоны равна сумме общего атрибута, поделенного на число зон.
  • NUMBER_OF_ZONESБудет создано указанное количество зон, каждая из которых состоит примерно из одинакового количества входных объектов. Если выбрана эта опция, то нужное количество зон должно быть указано для параметр Целевое количество зон.
String
number_of_zones
(Дополнительный)

Число зон, которое должно быть создано.

Long
zone_building_criteria_target
[[variable, sum, weight],...]
(Дополнительный)

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

Value Table
zone_building_criteria
[[variable, weight],...]
(Дополнительный)

Указывает целевые переменные, и, дополнительно, веса. Вес по умолчанию установлен на 1, и это значение делится поровну между всеми переменными, если не указано иное.

Value Table
spatial_constraints
(Дополнительный)

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

  • CONTIGUITY_EDGES_ONLYЕсли зоны содержат смежные полигональные объекты, только полигоны с общим ядром могут быть частью одной зоны.
  • CONTIGUITY_EDGES_CORNERS Если зоны содержат смежные полигональные объекты, только полигоны с общим ребром или общей вершиной могут быть частью одной зоны.
  • TRIMMED_DELAUNAY_TRIANGULATION Объекты в одной зоне будет, по крайней мере, одного общего соседа с другим объектом этой зоны. Отношения соседства основаны на сокращенной триангуляции Делоне. Концептуально, метод триангуляции Делоне создает сеть неперекрывающихся треугольников на основе центроидов объектов. Каждый объект – это узел треугольника, а узлы с общими ребрами считаются соседями. Это треугольники затем обрезаются выпуклым многоугольником, так чтобы объекты не соседствовали с объектами вне этого многоугольника. Используется по умолчанию.
  • GET_SPATIAL_WEIGHTS_FROM_FILE Пространственные и, при необходимости, временные отношения определяются указанным файлом пространственных весов (.swm). Создайте матрицу пространственных весов с помощью инструмента Построить матрицу пространственных весов или Построить матрицу пространственных весов для сети. Путь к файлу пространственных весов задается параметром Файл матрицы пространственных весов.
String
weights_matrix_file
(Дополнительный)

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

File
zone_characteristics
[zone_characteristics,...]
(Дополнительный)

Определяет желаемые характеристики создаваемых зон.

  • EQUAL_AREA Будут созданы зоны с максимально возможным совпадением общей площади.
  • COMPACTNESSЗоны будут созданы из максимально близко расположенных (компактных) объектов.
  • EQUAL_NUMBER_OF_FEATURESБудут созданы зоны с одинаковым числом объектов.
String
attribute_to_consider
[[variable, function],...]
(Дополнительный)

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

Value Table
distance_to_consider
[distance_to_consider,...]
(Дополнительный)

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

Лицензия:

Этот дополнительный параметр не доступен с лицензией Desktop Basic или Desktop Standard.

Feature Layer
categorial_variable
(Дополнительный)

Категорийная переменная для согласования пропорций зон.

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

Указывает тип пропорции, который будет сохранен на основе выбранной категорийной переменной.

  • MAINTAIN_WITHIN_PROPORTIONКаждая зона будет содержать то же пропорциональное соотношение объектов, что и вся изучаемая область, согласно указанному категорийному значению. Например, если указана категорийная переменная, согласно которой у вас 60% объектов Type A и 40% - Type B, то метод выберет решение, где каждая зона состоит из приблизительно 60% объектов Type A и 40% Type B.
  • MAINTAIN_OVERALL_PROPORTIONЗоны будут созданы таким образом, что общие пропорции распределения категорий по зонам соответствовали пропорциям данной категорийной переменной для всего набора данных. Например, если указана категорийная переменная, согласно которой у вас 60% объектов Type A и 40% - Type B, то метод выберет решение, где в 60% зон превалируют объекты Type A, а в 40% - Type B.
String
population_size
(Дополнительный)

Число произвольно создаваемых источников. Для больших наборов данных увеличение этого значения увеличит пространство поиска и вероятность принятия оптимального решения. По умолчанию используется 100.

Long
number_generations
(Дополнительный)

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

Long
mutation_factor
(Дополнительный)

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

Double
output_convergence_table
(Дополнительный)

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

Table

Пример кода

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

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

import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.BuildBalancedZones("US_Counties", "out_features", 
     "NUMBER_OF_ZONES", 5, None, None, "TRIMMED_DELAUNAY_TRIANGULATION", 
     None, None, None, None, None, '', 100, 50, 0.1)
BuildBalancedZones, пример 2 (автономный скрипт)

Следующий автономный Python скрипт демонстрирует, как использовать инструмент BuildBalancedZones.

# Aggregate states into zones that have a target population of approximately
# 250,000 people.  Make the zones of equal area and compact. 
 
import arcpy
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.BuildBalancedZones("states", "out_zones", "ATTRIBUTE_TARGET", 
     None, "POPULATION 250000 1", None, "TRIMMED_DELAUNAY_TRIANGULATION", 
     None, "EQUAL_AREA;COMPACTNESS", None, None, None, '', 100, 50, 0.1)

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

  • Basic: Ограничено
  • Standard: Ограничено
  • Advanced: Да

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