Aggregate

Доступно с лицензией Image Analyst.

Сводка

Создает растровый объект путем комбинирования срезов входного многомерного растра на основе интервала измерений и метода агрегации.

Описание

Используйте функцию Aggregate для агрегирования значений переменной многомерного растра по заданной переменной. Например, если у вас есть данные о ежедневных осадках, вы можете определить среднемесячное количество осадков.

Эта функция создает растровый объект, который является агрегацией входного многомерного растра. По умолчанию агрегация вычисляется для всех переменных, связанных с данным измерением. Например, в случае, когда осадки, температура и скорость ветра имеют измерение времени, все три переменные будут агрегированы отдельно, если dimension_name задано как измерение времени. Если вы хотите агрегировать только одну переменную, используйте функцию Subset перед использованием Aggregate.

Указанный набор растровых данных является временным для растрового объекта. Чтобы сделать его постоянным, можно вызвать метод save растрового объекта.

Синтаксис

Aggregate (in_raster, dimension_name, raster_function, {raster_function_arguments}, {aggregation_definition})
ParameterОбъяснениеТип данных
in_raster

Входной многомерный растр, который будет агрегирован.

Raster
dimension_name

Измерение агрегации. Это измерение, по которому переменные будут агрегированы.

String
raster_function

Имя растровой функции в виде строки (например Mean, Max, Min, Majority, Minority, Sum, и т.п.) или путь к пользовательской растровой функции (файл .rft.xml), используемой для вычисления агрегированных значений пикселов.

String
raster_function_arguments

Параметры и значения, связанные с растровой функцией или цепочкой функций. Если не заданы, будут применены значения по умолчанию.

Dictionary
aggregation_definition

Интервал измерения, по которому данные будут агрегированы. Пары ключ-значение должны иметь один из следующих форматов:

  • 'interval':<interval_keyword>

    Используйте ключевое слово интервала только, если dimension_name является измерением времени. Ключевые слова интервалов включают HOURLY, DAILY, WEEKLY, MONTHLY, QUARTERLY и YEARLY. Например, используйте эту опцию для агрегирования данных дневных температур в данные месячных температур для каждого года. Выходные данные будут включать не более 12 срезов для каждого года.

  • 'recurrent_interval':<recurrent_interval_keyword>

    Используйте периодическое ключевое слово интервала только, если dimension_name является измерением времени. Периодические ключевые слова интервалов включают DAILY, WEEKLY, MONTHLY и QUARTERLY. Например, используйте эту опцию для вычисления среднего значения температуры для каждого месяца по данным за весь год в наборе данных. Выходные данные будут включать не более 12 срезов для каждого года (один срез для каждого месяца года).

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

    Используйте значение интервала для определения повторяющихся интервалов. Необходимо указать единицы интервала, если dimension_name является измерением времени. Ключевые слова единиц интервалов включают HOUR, DAY, WEEK, MONTH, QUARTER и YEAR. Например, используйте эту опцию для объединения значений суточных температур в значения температуры за каждые 10 дней.

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

    Используйте параметр интервальные диапазоны для определения пользовательских интервалов агрегации. Например, используйте эту опцию для агрегирования дневных температур в значения температуры за определенные сезонные периоды.

Если не указано, будут агрегированы все срезы измерения.

Dictionary
Значение отраженного сигнала
Тип данныхОбъяснение
Raster

Выходной агрегированный многомерный растр.

Пример кода

Пример агрегирования

Агрегирует данные о количестве осадков путем вычисления общего среднего, среднемесячного и минимального значений за десять дней и максимального за два периода.

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')]})