构建平衡区域 (空间统计)

摘要

使用基于指定标准的遗传增长算法在研究区域中创建空间连续区域。

您可以创建包含相等要素数的区域、基于一组属性值的相似区域,或两者同时创建。 您还可以选择面积大致相等的区域,尽可能紧凑,由此可保持其他变量的一致汇总统计。

了解有关构建平衡区域工作原理的详细信息

使用情况

  • 要创建区域,请选择区域创建方法参数中的属性目标区域数和属性目标所定义区域数选择属性目标时,该工具将根据一个或多个指定变量的目标值创建区域。 区域数和属性目标选项可平衡指定数量区域的属性。 所定义区域数选项基于要素计数创建区域。

  • 此工具可采用输入点或面。

  • 如果为区域构建标准参数指定了多个变量,则您可以为每个标准提供权重。 权重的应用与权重字段中指定的值成比例。

  • 此工具支持并行处理以生成该算法,且在默认情况下使用 50% 的可用处理器。 处理器数目可以通过使用并行处理因子环境增加或减少。

参数

标注说明数据类型
输入要素

要聚合为区域的要素类或要素图层。

Feature Layer
输出要素

输出要素类,指示将哪些要素聚合到每个区域中。 要素类将由 ZONE_ID 字段表示,并包含显示您指定的每个标准的值的字段。

Feature Class
区域创建方法

指定将用于创建每个区域的方法。 区域将增长,直到满足所有指定条件为止。

  • 属性目标将根据一个或多个变量的目标值创建区域。 必须在具有目标的区域构建标准参数中指定所需的每个属性的总和;同时每个区域都会增长,直到属性的总和超过这些值为止。 例如,您可以使用此选项创建每个区域中至少具有 100,000 个居民和 20,000 个家庭住宅的区域。
  • 区域数和属性目标系统将创建指定数量的区域,同时使每个区域内的属性总和大致相等。 必须在目标区域数参数中指定所需的区域数。 每个区域内的属性总和均等于用属性总和除以区域数得到的商。
  • 所定义区域数将创建指定数量的区域,其中每个区域都由数量大致相同的输入要素组成。 必须在目标区域数参数中指定所需的区域数。
String
目标区域数
(可选)

将创建的区域数。

Long
具有目标的区域构建标准
(可选)

指定要考虑的变量及其目标值和权重(可选)。 默认权重为 1,除非另行更改,否则每个变量的权重均相同。

Value Table
区域构建标准
(可选)

指定将被考虑的变量及其权重(可选)。 默认权重为 1,除非另行更改,否则每个变量的权重均相同。

Value Table
空间约束
(可选)

指定在区域增长时将如何定义相邻要素。 区域只能增长为区域中已有的至少一个要素的相邻要素的新要素。 如果输入要素为面,则默认空间约束为邻接边拐角。 如果输入要素为点,则默认空间约束为修剪型 Delaunay 三角测量

  • 仅邻接边对于包含连续面要素的区域,只有共享边的面才是同一区域的一部分。
  • 邻接边拐角对于包含连续面要素的区域,只有共享边或顶点的面才是同一区域的一部分。
  • 修剪型 Delaunay 三角测量同一个区域中的要素至少具有一个与该区域中的另一要素共用的自然邻域。 自然邻域关系基于修剪型 Delaunay 三角测量。 从概念上讲,Delaunay 三角测量可以根据要素质心创建不重叠的三角网。 每个要素是一个三角形结点,具有公共边的结点被视为邻域。 然后将这些三角形剪裁成凸包,以确保要素无法与凸包外的任何要素相邻。 这是默认设置。
  • 通过文件获取空间权重空间关系和可选的时态关系通过指定的空间权重文件 (.swm) 进行定义。 使用生成空间权重矩阵生成网络空间权重工具创建空间权重矩阵。 指向空间权重文件的路径由空间权重矩阵文件参数指定。
String
空间权重矩阵文件
(可选)

包含空间权重(其定义要素间的空间关系或时态关系)的文件的路径。

File
区域特征
(可选)

指定将创建的区域的特征。

  • 相等面积将创建总面积尽可能相似的区域。
  • 紧密度将创建包含更紧密(紧凑)的要素的区域。
  • 相等要素数将创建具有相等要素数的区域。
String
要考虑的属性
(可选)

指定在选择最终区域时要考虑的属性和统计数据。 您可以根据属性的总和、平均值、中位数或方差对属性进行同质化。 例如,如果您要基于房屋价格创建区域并希望平衡每个区域内的平均总收入,则最好使用跨区域平均收入最相等的解决方案。

Value Table
考虑的距离
(可选)

将用于同质化每个区域的总距离的要素类。 距离是从该参数中每个输入要素到其最接近要素计算的。 然后,在选择最终区域解决方案时,此距离将用作附加属性约束。 例如,您可以创建警察巡逻区,使每个巡逻区与距离最近的警察局的距离大致相同。

Feature Layer
保持比例的分类变量
(可选)

区域比例要考虑的分类变量。

Field
比例法
(可选)

指定将根据所选分类变量保持的比例类型。

  • 保持比例每个区域将保持与给定分类变量的整个研究区域相同的比例。 例如,给定分类变量为 60% 类型 A 和 40% 类型 B,此方法将更倾向于由大约 60% 类型 A 要素和 40% 类型 B 要素组成的区域。
  • 保持整体比例将创建区域,以便按区域的类别优势总比例与整个数据集的给定分类变量的比例相匹配。 例如,给定分类变量为 60% 类型 A 和 40% 类型 B,此方法将更倾向于 60% 的区域主要是类型 A 要素,40% 的区域主要是类型 B 要素的解决方案。
String
填充大小
(可选)

随机生成的初始种子数。 对于大型数据集,增加此数字将增加搜索空间和寻找更好解决方案的可能性。 默认值为 100。

Long
代数
(可选)

区域搜索过程将重复的次数。 对于较大的数据集,建议增加数量以找到最佳解决方案。 默认值为 50 代。

Long
变异因子
(可选)

个体的种子值被突变为一组新种子的概率。 通过在每一代中引入可能解决方案的可变性来增加搜索空间,并允许更快地收敛到最佳解决方案。 默认值为 0.1。

Double
输出收敛表
(可选)

表中包含每一代中找到的最佳解决方案的总体适用性分数以及各个区域约束的适用性分数。

Table

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})
名称说明数据类型
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
(可选)

指定在区域增长时将如何定义相邻要素。 区域只能增长为区域中已有的至少一个要素的相邻要素的新要素。 如果输入要素为面,则默认空间约束为邻接边拐角。 如果输入要素为点,则默认空间约束为修剪型 Delaunay 三角测量

  • CONTIGUITY_EDGES_ONLY对于包含连续面要素的区域,只有共享边的面才是同一区域的一部分。
  • CONTIGUITY_EDGES_CORNERS对于包含连续面要素的区域,只有共享边或顶点的面才是同一区域的一部分。
  • TRIMMED_DELAUNAY_TRIANGULATION同一个区域中的要素至少具有一个与该区域中的另一要素共用的自然邻域。 自然邻域关系基于修剪型 Delaunay 三角测量。 从概念上讲,Delaunay 三角测量可以根据要素质心创建不重叠的三角网。 每个要素是一个三角形结点,具有公共边的结点被视为邻域。 然后将这些三角形剪裁成凸包,以确保要素无法与凸包外的任何要素相邻。 这是默认设置。
  • 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,...]
(可选)

将用于同质化每个区域的总距离的要素类。 距离是从该参数中每个输入要素到其最接近要素计算的。 然后,在选择最终区域解决方案时,此距离将用作附加属性约束。 例如,您可以创建警察巡逻区,使每个巡逻区与距离最近的警察局的距离大致相同。

Feature Layer
categorial_variable
(可选)

区域比例要考虑的分类变量。

Field
proportion_method
(可选)

指定将根据所选分类变量保持的比例类型。

  • MAINTAIN_WITHIN_PROPORTION每个区域将保持与给定分类变量的整个研究区域相同的比例。 例如,给定分类变量为 60% 类型 A 和 40% 类型 B,此方法将更倾向于由大约 60% 类型 A 要素和 40% 类型 B 要素组成的区域。
  • MAINTAIN_OVERALL_PROPORTION将创建区域,以便按区域的类别优势总比例与整个数据集的给定分类变量的比例相匹配。 例如,给定分类变量为 60% 类型 A 和 40% 类型 B,此方法将更倾向于 60% 的区域主要是类型 A 要素,40% 的区域主要是类型 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)