标注 | 说明 | 数据类型 |
目标要素类 | 来自企业级地理数据库的要素类或空间表。 | Feature Class |
目标连接字段 | 连接所依据的目标要素类中的字段。 | Field |
相关表 | 包含用于计算统计数据的字段的输入表。 统计数据连接到输出图层值。 | Table; Feature Class |
相关连接字段 | 汇总表中的字段,其中包含连接所依据的值。 还会根据此字段单独为每个唯一属性值计算聚合或汇总统计数据。 | Field |
输出图层 | 将要创建的查询图层的输出名称。 | Feature Layer |
汇总字段 (可选) | 指定包含用于计算指定统计数据的属性值的一个或多个数值字段。 可以指定多项统计和字段组合。 空值将被排除在所有统计计算之外。 输出图层将包括一个 ROW_COUNT 字段,显示相关连接字段值的每个唯一值的总数(或频数)。 ROW_COUNT 字段和计数统计类型的区别在于 ROW_COUNT 包括空值,而计数不包括空值。 可用统计类型如下:
| Value Table |
参数定义 (可选) | 为标准或条件指定一个或多个查询参数,并在计算聚合结果时使用与这些条件相匹配的记录。 查询参数类似于 SQL 语句的变量,进行查询时即会定义该变量的值。 这样,您便可以动态地更改输出图层的查询过滤器。 您可以将参数视为 SQL where 子句中的谓词或条件。 例如,Country_Name = 'Nigeria' 在 SQL where 子句中称为谓词,其中 = 是比较运算符,Country_Name 是左侧的字段名称,'Nigeria' 是右侧的值。 当您定义多个参数时,必须在这些参数之间指定一个逻辑运算符(如 AND、OR 等)。 如果未进行指定,则相关表中的所有记录都将用于计算聚合或汇总结果。 两种参数定义类型如下所示:
以下属性可用:
| Value Table |
唯一标识符字段 (可选) | 唯一标识符字段将用于唯一标识表中各行的字段。 | String |
形状类型 (可选) | 指定查询图层的形状类型。 在输出查询图层中只会使用查询结果集中与指定形状类型匹配的那些记录。 默认情况下,将使用结果集中第一条记录的 shape 类型。 如果查询结果集未返回几何字段,则忽略此参数。
| String |
空间参考 ID (SRID) (可选) | 返回几何查询的空间参考标识符 (SRID) 值。 在输出查询图层中只会使用查询结果集中与指定 SRID 值匹配的那些记录。 默认情况下,将使用结果集中第一条记录的 SRID 值。 如果查询结果集未返回几何字段,则忽略此参数。 | String |
坐标系 (可选) | 输出查询图层将使用的坐标系。 默认情况下,将使用结果集中第一条记录的空间参考。 如果查询结果集未返回几何字段,则忽略此参数。 | Spatial Reference |
坐标包含 M 值 (可选) | 指定输出图层是否包括线性测量(m 值)。
| Boolean |
坐标包含 Z 值 (可选) | 指定输出图层是否将包括高程值(z 值)。
| Boolean |
范围 (可选) | 指定图层范围。 范围必须包括表中的所有要素。
| Extent |
使用情况
查询图层仅适用于企业级数据库。 文件地理数据库不是此工具的有效输入工作空间。
聚合结果始终在数据库级别动态计算。
输出图层值将由包含统计运算结果的字段组成。 默认情况下,计数统计数据包括在 ROW_COUNT 字段中。
使用此工具可以执行的统计运算包括计数、总和、平均值、最小值、最大值和标准差。
将使用以下命名约定为每种统计类型创建字段:COUNT_<field>、SUM_<field>、AVG_<field>、MIN_<field>、MAX_<field> 和 STDDEV_<field>(其中 <field> 是计算统计数据的输入字段的名称)。
相关连接字段值用于此工具生成的 SQL 语句中的 GROUP BY 子句。 将根据相关连接字段值单独为每个唯一属性值计算统计数据。
该工具创建的图层是临时图层,如果不保存此工程、将图层保存至图层文件或者使用复制行或复制要素通过创建副本对数据进行持久化,则该图层在会话结束后将不会继续存在。
参数
arcpy.management.MakeAggregationQueryLayer(target_feature_class, target_join_field, related_table, related_join_field, out_layer, {statistics}, {parameter_definitions}, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {m_values}, {z_values}, {extent})
名称 | 说明 | 数据类型 |
target_feature_class | 来自企业级地理数据库的要素类或空间表。 | Feature Class |
target_join_field | 连接所依据的目标要素类中的字段。 | Field |
related_table | 包含用于计算统计数据的字段的输入表。 统计数据连接到 out_layer 值。 | Table; Feature Class |
related_join_field | 汇总表中的字段,其中包含连接所依据的值。 还会根据此字段单独为每个唯一属性值计算聚合或汇总统计数据。 | Field |
out_layer | 将要创建的查询图层的输出名称。 | Feature Layer |
statistics [[statistic_type, field],...] (可选) | 指定包含用于计算指定统计数据的属性值的一个或多个数值字段。 可以指定多项统计和字段组合。 空值将被排除在所有统计计算之外。 输出图层将包括一个 ROW_COUNT 字段,显示 related_join_field 值的每个唯一值的总数(或频数)。 ROW_COUNT 字段和 COUNT 统计类型的区别在于 ROW_COUNT 包括空值,而 COUNT 不包括空值。
| Value Table |
parameter_definitions [[parameter_def_type, name, alias, field_or_expression, data_type, start_value, end_value, operator, default_value, operator_for_next_parameter],...] (可选) | 为标准或条件指定一个或多个查询参数,并在计算聚合结果时使用与这些条件相匹配的记录。 查询参数类似于 SQL 语句的变量,进行查询时即会定义该变量的值。 这样,您便可以动态地更改输出图层的查询过滤器。 您可以将参数视为 SQL where 子句中的谓词或条件。 例如,Country_Name = 'Nigeria' 在 SQL where 子句中称为谓词,其中 = 是比较运算符,Country_Name 是左侧的字段名称,'Nigeria' 是右侧的值。 当您定义多个参数时,必须在这些参数之间指定一个逻辑运算符(如 AND、OR 等)。 如果未进行指定,则相关表中的所有记录都将用于计算聚合或汇总结果。 两种参数定义类型如下所示:
以下属性可用:
| Value Table |
oid_fields [oid_fields,...] (可选) | 唯一标识符字段将用于唯一标识表中各行的字段。 | String |
shape_type (可选) | 指定查询图层的形状类型。 在输出查询图层中只会使用查询结果集中与指定形状类型匹配的那些记录。 默认情况下,将使用结果集中第一条记录的 shape 类型。 如果查询结果集未返回几何字段,则忽略此参数。
| String |
srid (可选) | 返回几何查询的空间参考标识符 (SRID) 值。 在输出查询图层中只会使用查询结果集中与指定 SRID 值匹配的那些记录。 默认情况下,将使用结果集中第一条记录的 SRID 值。 如果查询结果集未返回几何字段,则忽略此参数。 | String |
spatial_reference (可选) | 输出查询图层将使用的坐标系。 默认情况下,将使用结果集中第一条记录的空间参考。 如果查询结果集未返回几何字段,则忽略此参数。 | Spatial Reference |
m_values (可选) | 指定输出图层是否包括线性测量(m 值)。
| Boolean |
z_values (可选) | 指定输出图层是否将包括高程值(z 值)。
| Boolean |
extent (可选) | 指定图层范围。 范围必须包括表中的所有要素。
| Extent |
代码示例
以下 Python 窗口脚本演示了如何通过点要素类计算每个区的犯罪总数,并将结果连接到警务区要素类。
import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
"PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes")
以下 Python 窗口脚本演示了如何通过点要素类计算每个区和每种犯罪类型的犯罪总数,并将结果连接到警务区要素类。
import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
"PoliceDistricts", "district", "Crime_locations", "PdDistrict", "SF_Crimes",
None,
"DISCRETE crime_type # Category STRING # # 'INCLUDE VALUES' 'VANDALISM, BURGLARY/THEFT' NONE")
以下 Python 窗口脚本演示了如何通过时间序列表计算总降雨量和平均降雨量,并将结果连接到水站要素类。
import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
"weather_stations", "station_id", "observed_rainfall", "station_id",
"Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]])
以下 Python 窗口脚本演示了如何通过时间序列表针对任意时间窗计算总降雨量和平均降雨量,并将结果连接到水站要素类。
import arcpy
arcpy.env.workspace = "C:/data/localhost.sde"
arcpy.management.MakeAggregationQueryLayer(
"weather_stations", "station_id", "observed_rainfall", "station_id",
"Total_Rainfall", [["SUM", "rainfall_inch"], ["MIN", "rainfall_inch"]],
"RANGE TimeVar # collection_date DATE 1/1/2020 12/1/2020 NONE # NONE")