Aggregate

获得 Image Analyst 许可后可用。

描述

通过基于维度间隔和聚合方法组合输入多维栅格中的剖切来创建栅格对象。

讨论

使用 Aggregate 函数可根据给定变量聚合多维栅格中的变量值。例如,如果您拥有每日降水量数据,则可以确定月平均降水量值。

此函数可创建一个栅格对象,该栅格对象为输入多维栅格的聚合。默认情况下,系统将计算与给定维度关联的所有变量的聚合。例如,如果降水量、温度和风速都具有时间维度,在将 dimension_name 设置为时间维度的情况下,系统将分别聚合所有三个变量。如果您只想聚合一个变量,请使用 Subset 函数,然后使用 Aggregate

栅格对象的引用栅格数据集是临时的。要将其设置为永久,可以调用栅格对象的 save 方法。

语法

Aggregate (in_raster, dimension_name, raster_function, {raster_function_arguments}, {aggregation_definition})
参数说明数据类型
in_raster

要聚合的输入多维栅格。

Raster
dimension_name

聚合维度。这是聚合变量时所沿的维度。

String
raster_function

采用字符串形式的栅格函数的名称(例如 MeanMaxMinMajorityMinoritySum 等)或自定义栅格函数的路径(.rft.xml 文件)可用于计算聚合像素值。

String
raster_function_arguments

与栅格函数或函数链关联的参数和值。如果未指定参数和值,则将使用默认值。

Dictionary
aggregation_definition

指定聚合数据的维度间隔。键值对必须遵循以下格式之一:

  • 'interval':<interval_keyword>

    仅在 dimension_name 为时间维度时使用间隔关键字。间隔关键字包括 HOURLYDAILYWEEKLYMONTHLYQUARTERLYYEARLY。例如,可以使用此选项将每年的每日温度数据聚合为每月温度数据。每年的输出中将包括最多 12 个时间片。

  • 'recurrent_interval':<recurrent_interval_keyword>

    仅在 dimension_name 为时间维度时使用周期性间隔关键字。周期性间隔关键字包括 DAILYWEEKLYMONTHLYQUARTERLY。例如,可以使用此选项计算数据集中所有年份的每个月的平均温度值。输出将包括最多 12 个时间片(一年中的每个月对应一个时间片)。

  • 'interval_value':<value>, 'interval_unit':<unit>

    使用间隔值来定义循环间隔。当 dimension_name 为时间维度时需要间隔单位。间隔单位关键字包括 HOURDAYWEEKMONTHQUARTERYEAR。例如,使用此选项将每日温度聚合为每 10 天的温度。

  • 'interval_ranges':[(min, max),(min, max), ...]

    使用间隔范围选项定义聚合的自定义间隔。例如,使用此选项将每日温度聚合为跨特定季节日期的温度。

如果未指定内容,则将聚合跨维度的所有剖切。

Dictionary
返回值
数据类型说明
Raster

输出聚合多维栅格。

代码示例

聚合示例

通过计算总体平均值、月平均值、10 天中的最小值以及 2 个范围中的最大值来聚合降水量数据。

import arcpy
from arcpy.ia import *

arcpy.CheckOutExtension("ImageAnalyst")

in_raster = Raster('ClimateData_Daily.nc', True)

# Choose the precipitation variable
prcp_raster = Subset(in_raster, variables = 'prcp')

# Calculate the average precipitation across the whole time period
avg_prcp = Aggregate(prcp_raster, 'StdTime', 'Mean')

# Calculate the monthly mean precipitation 
monthly_avg_prcp = Aggregate(prcp_raster, 'StdTime', 
	'Mean', {'interval': 'monthly'})

# Calculate the minimum precipitation every 10 days
min_precip_10day = Aggregate(prcp_raster, 'StdTime', 'Min', 
	{'interval_value' : 10, 'interval_unit': 'day'})

# Calculate the maximum precipitation in two separate time ranges
max_prcp_range = Aggregate(prcp_raster, 'StdTime', 'Max', 
	{'interval_ranges':  [('2001-01-01T00:00:00', '2001-02-01T00:00:00'), 
	('2001-12-01T00:00:00', '2001-12-24T00:00:00')]})