描述
基于目标面图层的空间叠加来汇总输入面图层的属性,并将汇总的属性分配给目标面。目标面具有从每个目标重叠的输入面派生的求和数值属性。此过程通常称为分配。
可使用该工具基于一个要素与另一个要素的叠加百分比和已知人口估计该要素的人口。
插图
使用方法
默认情况下,由重叠面积百分比确定属性的值。权重字段可以与该面积一起用于确定每个重叠要素中要求和的属性部分。
对于任何重叠的目标要素,如果权重字段值为 0,则会将要分配值的字段设置为 0。
此工具支持并行处理因子环境。如果环境未设置(默认情况下)或设置为 100,则将启用完全并行处理,同时该工具尝试将工作分配给计算机上的所有逻辑内核。将环境设置为 0 将禁用并行处理。在 1 到 99 之间指定一个因子时,工具将通过应用公式(并行处理因子 / 100 * 逻辑内核数)确定要使用的逻辑内核的百分比,其结果将向上舍入到最近的整数值。如果此公式的结果是 0 或 1,则将不启用并行处理。
语法
arcpy.analysis.ApportionPolygon(in_features, apportion_fields, target_features, out_features, method, {estimation_features}, {weight_field}, {maintain_geometries})
参数 | 说明 | 数据类型 |
in_features | 具有要汇总到目标面几何中的数值属性的面要素。 | Feature Layer |
apportion_fields [apportion_fields,...] | 输入面中的数值字段,按每个目标面汇总并记录在输出要素类中。 | Field |
target_features | 将复制到输出要素类并包含所有分配的字段的面要素。 | Feature Layer |
out_features | 包含目标面的属性和几何以及输入面中的指定分配字段的输出要素类。 | Feature Class |
method | 指定用于将字段从输入面分配到目标面的方法。
| String |
estimation_features (可选) | 此参数在 ArcGIS Pro 2.7 中禁用并将在未来版本中受支持。 | Feature Layer |
weight_field (可选) | 目标面图层中的数值字段,用于调整接收输入面的要分配字段中的较大分配值的目标面。向权重较高的目标分配的字段值比例较高。 | Field |
maintain_geometries (可选) | 指定输出要素类是否将保留目标面图层的原始几何。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何使用 ApportionPolygon 函数。
import arcpy
arcpy.env.workspace = "C:/data/MyAnalysis.gdb"
arcpy.ApportionPolygon_analysis(
"CensusBlockGroups", "Pop2020", "StoreServiceArea",
"StoreServiceArea_w_Population", "AREA", "", "", "MAINTAIN_GEOMETRIES")
以下独立脚本将面积加权的人口从“人口普查区块组”图层转移到“商店服务区”面。
# Name: Store Service Area Get Population.py
# Description: Use apportionment to transfer population figures to different geometry
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/MyAnalysis.gdb"
# Perform apportionment
inputDataWithPop = "CensusBlockGroups"
popField = "Pop2020"
targetServiceAreas = "Store_ServiceAreas"
outputApp = "Store_ServiceAreas_w_Population"
apportionMethod = "AREA"
keepTargetGeom = "MAINTAIN_GEOMETRIES"
arcpy.ApportionPolygon_analysis(inputDataWithPop, popField, targetServiceAreas,
outputApp, apportionMethod, "", "",
keepTargetGeom)
# Summarize store service area populations by store admin region
outStats = "PopulationPerSalesRegion_tlb"
statsFields = [["Pop2020", "SUM"]]
regionField = "SalesRegion" # Values like North, North-East, etc.
arcpy.Statistics_analysis(outputApp, outStats, statsFields, regionField)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是