摘要
根据所选变量和维度间隔,创建作为输入多维栅格子集的栅格对象。
说明
使用 Subset 函数从多维栅格对象中提取变量数据的子组。您可以将子组用作其他函数的输入。例如,要计算包含温度和降水数据的多维栅格的平均月降水量值,您可以先使用 Subset,将降水量变量作为栅格对象进行提取。然后您可以使用 Aggregate 函数计算月平均值。
该函数将创建一个栅格对象,该栅格对象为输入的子组,其维度和变量信息由输入参数定义。
栅格对象的引用栅格数据集是临时的。要将其设置为永久,可以调用栅格对象的 save 方法。
语法
Subset (in_raster, {variables}, {dimension_definitions})
参数 | 说明 | 数据类型 |
in_raster | 输入多维栅格数据集。 | Raster |
variables [variables,...] | 要包含在输出栅格中的变量名称或变量名称列表。如果未指定,则将包含所有变量。 | String |
dimension_definitions | 用于划分多维栅格的维度间隔。此参数作为字典传递,其中键:值对被描述为 dimension_name:dimension interval。键是您希望划分维度的名称,值是维度间隔。维度间隔必须使用以下格式之一:
| 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")