描述
将一个面图层与另一个图层叠加,以便汇总各面内点的数量、线的长度或面的面积,并计算面内此类要素的属性字段统计数据。
使用范围内汇总的情景示例:
- 按土地使用类型给定分水岭边界图层和土地使用边界图层,计算每个分水岭的土地使用类型的总面积。
- 已知某县内宗地的图层和城市边界图层,汇总各城市边界内闲置宗地的平均值。
- 给定各县的图层和道路图层,汇总各县内各种道路类型的道路总里程。
插图
使用方法
您可以将范围内汇总视为使用两个图层,输入面和输入汇总要素,并将其堆叠在彼此上方。堆叠这些图层后,您可由上至下对齐堆栈并计算落在输入面内的输入汇总要素的数量。您不仅能计算要素的数量,也可以计算关于输入汇总要素(和、平均值、最小值、最大值等)属性的简单统计数据。
范围内汇总和邻近汇总在概念上是相同的。使用范围内汇总工具,您可以在现有面内汇总要素,而使用邻近汇总工具,您可以在点、线或面周围生成区域并在那些派生的区域内汇总要素。
您可以通过从输入点中指定分组字段来创建组。例如,如果要将犯罪事件汇总在邻近地区边界内,可能会有一个含有五种不同犯罪类型的属性 Crime_type。各种唯一的犯罪类型构成一组,并将针对 Crime_type 的每个唯一值计算您选择的统计数据。
语法
arcpy.analysis.SummarizeWithin(in_polygons, in_sum_features, out_feature_class, {keep_all_polygons}, {sum_fields}, {sum_shape}, {shape_unit}, {group_field}, {add_min_maj}, {add_group_percent}, {out_group_table})
参数 | 说明 | 数据类型 |
in_polygons | 用于汇总输入要素图层内要素或要素部分的面。 | Feature Layer |
in_sum_features | 将为输入面中的各面汇总点、线或面要素。 | Feature Layer |
out_feature_class | 输出面要素类,包括与输入面相同的几何和属性,还有一些新属性(关于各输入面内点的数量、线的长度和面的面积以及这些要素的统计数据)。 | Feature Class |
keep_all_polygons (可选) | 确定是所有输入面还是仅包括至少一个输入点的面将会复制到输出要素类。
| Boolean |
sum_fields [[summary_field, statistic_type],...] (可选) | 输入汇总要素中的属性字段名称及您想要为各面内全部点计算属性字段的统计汇总类型的列表。 汇总字段必须为数值型。不支持文本和其他属性字段类型。 统计类型包括:
| Value Table |
sum_shape (可选) | 确定是否输出要素类将包括各输入面中汇总得出的点数量、线长度及面要素面积等属性。
| Boolean |
shape_unit (可选) | 用以计算形状汇总属性的单位。如果输入汇总要素为点,则不需要使用形状单位,因为仅添加各输入面内点的计数。 如果输入汇总要素为线,则指定一个线性单位。如果输入汇总要素为面,则指定一个面积单位。
| String |
group_field (可选) | 用于分组的输入汇总要素中的属性字段。具有相同组字段值的要素将合并与具有相同组字段值的其他要素汇总。 如果选择一个组字段,则需要创建一个附加输出分组表格并必须在 out_grouped_table 参数中指定其位置。 | Field |
add_min_maj (可选) | 仅当选定组字段时,才启用此选项。通过该选项,您可以确定各输入面中哪个组字段值为少数(所占比例最小),哪个为众数(所占比例最大)。
| Boolean |
add_group_percent (可选) | 仅当选定组字段时,才启用此选项。您可以确定各组内各个属性值的百分比。
| Boolean |
out_group_table (可选) | 如果指定了组字段,则需要输出分组表。 各个输入面各汇总要素组的汇总字段的输出表。该表将具有以下属性字段:
| Table |
代码示例
以下 Python 窗口脚本演示了如何使用 SummarizeWithin 函数。
import arcpy
arcpy.env.workspace = 'C:/data/city.gdb'
arcpy.SummarizeWithin_analysis('neighborhoods', 'crimes', 'neighborhood_crimes')
以下独立脚本是如何在脚本环境中使用 SummarizeWithin 函数的示例。
# Description: Use SummarizeWithin to summarize the crimes in each city neighborhood
# import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = 'C:/data/city.gdb'
# Set local variables
polys = 'neighborhoods'
points = 'crimes'
outFeatureClass = 'crimes_aggregated'
keepAll = 'KEEP_ALL'
sumFields = [['Damages', 'SUM'], ['VICTIM_AGE', 'MEAN']]
addShapeSum = 'ADD_SHAPE_SUM'
groupField = 'Crime_type'
addMinMaj = 'ADD_MIN_MAJ'
addPercents = 'ADD_PERCENT'
outTable = 'crimes_aggregated_groups'
arcpy.SummarizeWithin_analysis(polys, points, outFeatureClass, keepAll,
sumFields, addShapeSum, '', groupField,
addMinMaj, addPercents, outTable)
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是