Subset

Краткая информация

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

Обсуждение

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

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

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

Синтаксис

Subset (in_raster, {variables}, {dimension_definitions})
ПараметрОписаниеТип данных
in_raster

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

Raster
variables
[variables,...]

Имя переменной или список имен переменных, которые должны быть включены в выходной растр. Если не указано, будут включены все переменные.

String
dimension_definitions

Размерный интервал, используемый для поднабора многомерного растра. Этот параметр передается как словарь, в котором пары ключ:значение описываются как dimension_name:dimension interval. Ключ - это имя измерения, вдоль которого вы хотите задать подмножество, а значение - это интервал измерения. Интервал измерения должен использовать один из следующих форматов:

  • Одномерные входные данные.

    Например, для поднабора переменных с измерением глубины только на глубине 0 используйте {"depth": 0 }.

  • Кортеж, содержащий минимальное и максимальное значения измерения.

    Например, для поднабора переменных с измерением глубины от 0 до 100 используйте {"depth": (-100,0)}.

  • Кортеж, содержащий минимальные и максимальные значения измерения, размер приращения и единицу приращения.

    Например, для подстановки переменных с 1980 года до конца временного ряда с выделением первого дня каждого года используйте {"StdTime": ('1980-01-01T12:00:00', None, 1, 'year')}.

    Для поднабора переменных с измерением времени с 1980 по 2000 гг., извлекая январь каждого года, используйте {"StdTime": ('1980-01-01T12:00:00', 1980-31-01T12:00:00', 1, 'year')}.

  • Список, содержащий любое из вышеперечисленного. Вы можете включить несколько входных данных с одной размерностью и умножить минимальный и максимальный диапазоны.

    Например, для поднабора переменных с измерением глубин 0, 50 и 200 используйте {"depth": [0, -50, -200]}.

    Например, для выборки переменных на глубине от 0 до 100, а также на 500, используйте {"depth": [-500, (-100, 0)]}.

Dictionary
Возвращаемое значение
Тип данныхОписание
Raster

Выходной поднабор многомерного растра.

Пример кода

Пример поднабора

Извлекает четыре поднабора из многомерных климатических данных и сохраняет итоговый поднабор.

import arcpy
from arcpy.ia import *

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

# Select two variables: precipitation and water temperature 
out_subset_raster1 = Subset(in_raster, variables = ['precip', 'water_temp'])
print(out_subset_raster1.variables)

# Filter variables that have the Depth dimension and where depth=0.
# For variables that do not have dimension depth, all slices are selected.
out_subset_raster2 = Subset(in_raster, dimension_definitions = {'depth' : 0})   
print(out_subset_raster2.variables)

# Select water temperature data on the 1st of every January
out_subset_raster3 = Subset(in_raster, variables = 'water_temp', 
	dimension_definitions = {'time': 
	('1980-01-01T12:00:00', None, 1, 'year')})   
print(out_subset_raster3.variables)

# Select water temperature data for the first three months of every year
out_subset_raster4 = Subset(in_raster, variables = 'water_temp',
	dimension_definitions = {'time':('1980-01-01T00:00:00', 
	'1980-03-31T00:00:00', 1, 'year')})   

# Select both variables for January in 5 year increments: 1980, 1985, 1990, etc.
out_subset_raster5 = Subset(in_raster, variables = ['precip', 'water_temp']), 
	dimension_definitions = {'time':
	('1980-01-01T00:00:00', '1980-01-31T00:00:00', 5, 'year')})   

# Select surface water temperature in January 1980
out_subset_raster6 = Subset(in_raster, variables = 'water_temp', 
	dimension_definitions  = {'time': 
	('1980-01-01T12:00:00', '1980-01-31T12:00:00'), 'depth': 0})
print(out_subset_raster4.mdinfo)

# Save the water temperature in January 1980
out_subset_raster6.save("c:/output/Jan1980_watertemp.crf")