标注 | 说明 | 数据类型 |
输入要素 | 要聚合为区域的要素类或要素图层。 | Feature Layer |
输出要素 | 输出要素类,指示将哪些要素聚合到每个区域中。 要素类将由 ZONE_ID 字段表示,并包含显示您指定的每个标准的值的字段。 | Feature Class |
区域创建方法 | 指定将用于创建每个区域的方法。 区域将增长,直到满足所有指定条件为止。
| String |
目标区域数 (可选) | 将创建的区域数。 | Long |
具有目标的区域构建标准 (可选) | 指定要考虑的变量及其目标值和权重(可选)。 默认权重为 1,除非另行更改,否则每个变量的权重均相同。 | Value Table |
区域构建标准 (可选) | 指定将被考虑的变量及其权重(可选)。 默认权重为 1,除非另行更改,否则每个变量的权重均相同。 | Value Table |
空间约束 (可选) | 指定在区域增长时将如何定义相邻要素。 区域只能增长为区域中已有的至少一个要素的相邻要素的新要素。 如果输入要素为面,则默认空间约束为邻接边拐角。 如果输入要素为点,则默认空间约束为修剪型 Delaunay 三角测量。
| String |
空间权重矩阵文件 (可选) | 包含空间权重(其定义要素间的空间关系或时态关系)的文件的路径。 | File |
区域特征 (可选) | 指定将创建的区域的特征。
| String |
要考虑的属性 (可选) | 指定在选择最终区域时要考虑的属性和统计数据。 您可以根据属性的总和、平均值、中位数或方差对属性进行同质化。 例如,如果您要基于房屋价格创建区域并希望平衡每个区域内的平均总收入,则最好使用跨区域平均收入最相等的解决方案。 | Value Table |
考虑的距离 (可选) | 将用于同质化每个区域的总距离的要素类。 距离是从该参数中每个输入要素到其最接近要素计算的。 然后,在选择最终区域解决方案时,此距离将用作附加属性约束。 例如,您可以创建警察巡逻区,使每个巡逻区与距离最近的警察局的距离大致相同。 | Feature Layer |
保持比例的分类变量 (可选) | 区域比例要考虑的分类变量。 | Field |
比例法 (可选) | 指定将根据所选分类变量保持的比例类型。
| String |
填充大小 (可选) | 随机生成的初始种子数。 对于大型数据集,增加此数字将增加搜索空间和寻找更好解决方案的可能性。 默认值为 100。 | Long |
代数 (可选) | 区域搜索过程将重复的次数。 对于较大的数据集,建议增加数量以找到最佳解决方案。 默认值为 50 代。 | Long |
变异因子 (可选) | 个体的种子值被突变为一组新种子的概率。 通过在每一代中引入可能解决方案的可变性来增加搜索空间,并允许更快地收敛到最佳解决方案。 默认值为 0.1。 | Double |
输出收敛表 (可选) | 表中包含每一代中找到的最佳解决方案的总体适用性分数以及各个区域约束的适用性分数。 | Table |
摘要
使用基于指定标准的遗传增长算法在研究区域中创建空间连续区域。
您可以创建包含相等要素数的区域、基于一组属性值的相似区域,或两者同时创建。 您还可以选择面积大致相等的区域,尽可能紧凑,由此可保持其他变量的一致汇总统计。
使用情况
要创建区域,请选择区域创建方法参数中的属性目标、区域数和属性目标或所定义区域数。 选择属性目标时,该工具将根据一个或多个指定变量的目标值创建区域。 区域数和属性目标选项可平衡指定数量区域的属性。 所定义区域数选项基于要素计数创建区域。
此工具可采用输入点或面。
如果为区域构建标准参数指定了多个变量,则您可以为每个标准提供权重。 权重的应用与权重字段中指定的值成比例。
此工具支持并行处理以生成该算法,且在默认情况下使用 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})
名称 | 说明 | 数据类型 |
in_features | 要聚合为区域的要素类或要素图层。 | Feature Layer |
output_features | 输出要素类,指示将哪些要素聚合到每个区域中。 要素类将由 ZONE_ID 字段表示,并包含显示您指定的每个标准的值的字段。 | Feature Class |
zone_creation_method | 指定将用于创建每个区域的方法。 区域将增长,直到满足所有指定条件为止。
| 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 三角测量。
| String |
weights_matrix_file (可选) | 包含空间权重(其定义要素间的空间关系或时态关系)的文件的路径。 | File |
zone_characteristics [zone_characteristics,...] (可选) | 指定将创建的区域的特征。
| String |
attribute_to_consider [[variable, function],...] (可选) | 指定在选择最终区域时要考虑的属性和统计数据。 您可以根据属性的总和、平均值、中位数或方差对属性进行同质化。 例如,如果您要基于房屋价格创建区域并希望平衡每个区域内的平均总收入,则最好使用跨区域平均收入最相等的解决方案。 | Value Table |
distance_to_consider [distance_to_consider,...] (可选) | 将用于同质化每个区域的总距离的要素类。 距离是从该参数中每个输入要素到其最接近要素计算的。 然后,在选择最终区域解决方案时,此距离将用作附加属性约束。 例如,您可以创建警察巡逻区,使每个巡逻区与距离最近的警察局的距离大致相同。 | Feature Layer |
categorial_variable (可选) | 区域比例要考虑的分类变量。 | Field |
proportion_method (可选) | 指定将根据所选分类变量保持的比例类型。
| String |
population_size (可选) | 随机生成的初始种子数。 对于大型数据集,增加此数字将增加搜索空间和寻找更好解决方案的可能性。 默认值为 100。 | Long |
number_generations (可选) | 区域搜索过程将重复的次数。 对于较大的数据集,建议增加数量以找到最佳解决方案。 默认值为 50 代。 | Long |
mutation_factor (可选) | 个体的种子值被突变为一组新种子的概率。 通过在每一代中引入可能解决方案的可变性来增加搜索空间,并允许更快地收敛到最佳解决方案。 默认值为 0.1。 | Double |
output_convergence_table (可选) | 表中包含每一代中找到的最佳解决方案的总体适用性分数以及各个区域约束的适用性分数。 | Table |
代码示例
以下 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)
以下独立 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)