子集多维栅格 (多维)

摘要

可沿定义的变量和维度对数据进行分割,从而创建多维栅格的子集。

使用情况

  • 此工具通过提取变量子集来从多维栅格或镶嵌数据集创建多维栅格图层。例如,您的镶嵌数据集中包含 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。 避免不必要的精度要求,因为它们将增加处理时间和存储大小。

    要更改压缩类型,修改压缩环境设置

参数

标注说明数据类型
输入多维栅格

输入多维栅格数据集。

支持的输入包括 netCDF、GRIB、HDF 或 CRF 文件、多维镶嵌数据集或多维栅格图层。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
输出多维栅格

输出多维栅格数据集。

Raster Dataset
变量
(可选)

将包含在输出多维栅格中的变量。如果未指定任何变量,则将使用所有变量。

String
维度定义
(可选)

指定将用于分割维度的方法。

  • 全部将使用每个维度的完整范围。 这是默认设置。
  • 按范围将使用范围或范围列表对维度进行分割。
  • 按迭代将以指定的间隔大小对维度进行分割。
  • 按值将使用一系列维度值对维度进行分割。
String
范围
(可选)

指定维度的范围或范围列表。

将根据维度名称以及范围的最小值和最大值对数据进行分割。 当维度定义参数设置为按范围时,此参数为必需项。

Value Table
(可选)

指定维度的值列表。 当维度定义参数设置为按值时,此参数为必需项。

Value Table
维度
(可选)

分割变量时使用的维度。当维度定义参数设置为按迭代时,此参数为必需项。

String
第一次迭代的开始
(可选)

第一个间隔的开始。 此间隔将用于遍历数据集。 当维度定义参数设置为按迭代时,此参数为必需项。

String
第一次迭代的结束
(可选)

第一个间隔的结束。 此间隔将用于遍历数据集。 当维度定义参数设置为按迭代时,此参数为必需项。

String
步骤
(可选)

分割数据时使用的频率。 当维度定义参数设置为按迭代时,此参数为必需项。

Double
单位
(可选)

指定将使用的迭代单位。 当维度定义参数设置为按迭代维度参数设置为 StdTime 时,此参数为必需项。

  • 小时指定的时间单位将为小时。
  • 指定的时间单位将为天。
  • 指定的时间单位将为周。
  • 指定的时间单位将为月。
  • 指定的时间单位将为年。
String

arcpy.management.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
(可选)

指定将用于分割维度的方法。

  • ALL将使用每个维度的完整范围。 这是默认设置。
  • BY_RANGES将使用范围或范围列表对维度进行分割。
  • BY_ITERATION将以指定的间隔大小对维度进行分割。
  • BY_VALUE将使用一系列维度值对维度进行分割。
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 时,此参数为必需项。

  • HOURS指定的时间单位将为小时。
  • DAYS指定的时间单位将为天。
  • WEEKS指定的时间单位将为周。
  • MONTHS指定的时间单位将为月。
  • YEARS指定的时间单位将为年。
String

代码示例

SubsetMultidimensionalRaster 示例 1(Python 窗口)

使用 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")
SubsetMultidimensionalRaster 示例 2(独立脚本)

使用 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)
SubsetMultidimensionalRaster 示例 3(独立脚本)

使用 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)