描述
可沿定义的变量和维度对数据进行分割,从而创建多维栅格的子集。
使用方法
此工具通过提取变量子集来从多维栅格或镶嵌数据集创建多维栅格图层。例如,您的镶嵌数据集中包含 30 年的月降水量数据,而且您只想提取每年 1 月的数据,以查看该月份降水的变化。
受支持的多维栅格数据集包括云栅格格式 (CRF)、多维镶嵌数据集或者由 netCDF、GRIB 或 HDF 文件生成的多维栅格图层。
此工具可生成采用云栅格格式 (CRF) 的多维栅格数据集。目前尚不支持其他输出格式。
使用维度定义参数可按间隔、值或值范围分割维度。例如,如果您具有每 2 米深度(高达 500 米)按月采集的 10 年海洋盐度数据,则可以考虑在以下情景中使用不同的维度定义选项:
- 提取这 10 年间的 1 月份盐度数据。选择按值,将维度设置为 StdTime,并将值设置为 1 月。
- 在 0 至 150 米的深度范围内分割盐度数据。选择按范围,将维度设置为 StdZ,将最小值设置为 -150 并将最大值设置为 0。
- 提取这 10 年中每年 1 月份前 10 天的盐度数据。选择按迭代,将维度设置为 StdTime,将第一次迭代的开始和第一次迭代的结束设置为相应迭代周期的开始和结束,将步长设置为 1,并将单位设置为年。
默认情况下,将使用 LZ77 压缩类型压缩多维栅格输出。但是,建议您将压缩类型更改为 LERC,并根据您的数据调整最大误差。例如,如果您希望将分析结果精确到三位小数,则请将最大误差值设置为 0.001。最好避免不必要的精度要求,因为这会导致处理时间和存储大小增加。
要更改压缩类型,请修改环境设置。
语法
arcpy.md.SubsetMultidimensionalRaster(in_multidimensional_raster, out_multidimensional_raster, {variables}, {dimension_def}, {dimension_ranges}, {dimension_values}, {dimension}, {start_of_first_iteration}, {end_of_first_iteration}, {iteration_step}, {iteration_unit})
参数 | 说明 | 数据类型 |
in_multidimensional_raster | 输入多维栅格数据集。 支持的输入包括 netCDF、GRIB、HDF 或 CRF 文件、多维镶嵌数据集或多维栅格图层。 | Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File |
out_multidimensional_raster | 输出多维栅格数据集。 | Raster Dataset |
variables [variables,...] (可选) | 将包含在输出多维栅格中的变量。如果未指定任何变量,则将使用所有变量。 | String |
dimension_def (可选) | 指定将用于分割维度的方法。
| String |
dimension_ranges [dimension_ranges,...] (可选) | 指定维度的范围或范围列表。 该参数将根据维度名称以及范围的最小值和最大值对数据进行分割。当将 dimension_def 参数设置为 BY_RANGES 时,此参数为必需项。 | Value Table |
dimension_values [dimension_values,...] (可选) | 指定维度的值列表。当将 dimension_def 参数设置为 BY_VALUE 时,此参数为必需项。 | Value Table |
dimension (可选) | 分割变量时使用的维度。当将 dimension_def 参数设置为 BY_ITERATION 时,此参数为必需项。 | String |
start_of_first_iteration (可选) | 第一个间隔的开始。该间隔用于遍历数据集。当将 dimension_def 参数设置为 BY_ITERATION 时,此参数为必需项。 | String |
end_of_first_iteration (可选) | 第一个间隔的结束。该间隔用于遍历数据集。当将 dimension_def 参数设置为 BY_ITERATION 时,此参数为必需项。 | String |
iteration_step (可选) | 分割数据时使用的频率。当将 dimension_def 参数设置为 BY_ITERATION 时,此参数为必需项。 | Double |
iteration_unit (可选) | 指定迭代单位。当 dimension_def 参数设置为 BY_ITERATION 并且 dimension 参数设置为 StdTime 时,此参数为必需项。
| String |
代码示例
使用 BY_RANGES 方法从多维栅格中提取变量子集。
# Import system modules
import arcpy
# Execute
arcpy.md.SubsetMultidimensionalRaster(
"C:\data\Ocean_Data.crf", "C:\data\Ocean_Data_Subset.crf",
"salinity", "BY_RANGES", "StdZ -500 -100")
使用 BY_VALUE 方法从多维栅格中提取水温变量
# Import system modules
import arcpy
# Define input parameters
in_multidimensional_raster = r"C:\data\MD_Ocean_data.crf"
out_multidimensional_raster = r"C:\data\Temp_slice.crf"
variables = "water_temp"
dimension_def = "BY_VALUE"
dimension_values = "StdZ -50;StdZ -100"
#Execute
arcpy.md.SubsetMultidimensionalRaster(
in_multidimensional_raster, out_multidimensional_raster,
variables, dimension_def, dimension_values)
使用 BY_ITERATION 方法从多维栅格中提取盐度变量。
# Import system modules
import arcpy
# Set local variables
in_multidimensional_raster = r"C:\data\MD_Ocean_data.crf"
out_multidimensional_raster = r"C:\data\salinity_slice.crf"
variables = "salinity"
dimension_def = "BY_ITERATION"
dimension = "StdTime"
start_of_first_iteration = "2009-01-01"
end_of_first_iteration = "2009-01-10"
iteration_step = "1"
iteration_unit = "YEARS"
#Execute
arcpy.md.SubsetMultidimensionalRaster(in_multidimensional_raster, out_multidimensional_raster, variables, dimension_def, dimension, start_of_first_iteration, end_of_first_iteration, iteration_step, iteration_unit)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是