创建多维栅格图层 (多维)

描述

用于沿定义的变量和维度对数据进行分割,从而根据多维栅格数据集或多维栅格图层创建栅格图层。

使用方法

  • 此工具通过提取变量子集来从多维栅格或镶嵌数据集创建多维栅格图层。例如,您的镶嵌数据集中包含 30 年的月降水量数据,而且您只想提取每年 1 月的数据,以查看该月份降水的变化。

  • 支持的多维栅格数据集包括 netCDF、GRIB、HDF 和 Esri 的 CRF。此外,还支持多维镶嵌数据集。

  • 该工具将生成一个临时图层,除非将其保存到磁盘,否则该图层将不会永久保留。

  • 使用维度定义参数可按间隔、值或值范围分割维度。例如,如果您具有每 2 米深度(高达 500 米)按月采集的 10 年海洋盐度数据,则可以考虑在以下情景中使用不同的维度定义选项:

    • 提取这 10 年间的 1 月份盐度数据。选择按值,将维度设置为 StdTime,并将设置为 1 月
    • 在 0 至 150 米的深度范围内分割盐度数据。选择按范围,将维度设置为 StdZ,将最小值设置为 -150 并将最大值设置为 0
    • 提取这 10 年中每年 1 月份前 10 天的盐度数据。选择按迭代,将维度设置为 StdTime,将第一次迭代的开始第一次迭代的结束设置为相应迭代周期的开始和结束,将步长设置为 1,并将单位设置为

  • 要创建包含多维栅格单个剖切片中的数据的非多维图层,请将维度定义参数设置为按值,选择一个维度值,然后选中无维度参数。

语法

MakeMultidimensionalRasterLayer(in_multidimensional_raster, out_multidimensional_raster_layer, {variables}, {dimension_def}, {dimension_ranges}, {dimension_values}, {dimension}, {start_of_first_iteration}, {end_of_first_iteration}, {iteration_step}, {iteration_unit}, {template}, {dimensionless})
参数说明数据类型
in_multidimensional_raster

输入多维栅格数据集。

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

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
out_multidimensional_raster_layer

输出多维栅格图层。

Raster Layer
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
template
(可选)

图层的范围(边界框)。为图层选择合适的范围选项。

  • 默认 - 将使用栅格数据集的空间参考规范来导出栅格数据集。
  • 当前显示范围 - 将使用当前显示的范围。
  • 如下面的指定 - 输入最小外接矩形的坐标:输入左侧右侧上侧下侧的范围。
  • 浏览 - 使用浏览按钮浏览至要用于范围的要素类的文件夹位置。
  • <图层> - 选择任一列出的图层并将其用作范围。类似于当前显示范围选项,会读取并存储该图层的范围。
Extent
dimensionless
(可选)

指定图层是否具有维度值。仅当选择单个剖切片来创建图层时,此参数才会启用。

  • NO_DIMENSIONS 图层没有维度值。
  • DIMENSIONS图层具有维度值。这是默认设置。
Boolean

代码示例

MakeMultidimensionalRasterLayer 示例 1(Python 窗口)

使用 BY_RANGES 方法从多维栅格中提取变量子集。

# Import system modules
import arcpy

# Execute
MakeMultidim = MakeMultidimensionalRasterLayer("C:\data\Ocean_Data.crf", "salinity", "BY_RANGES", "StdZ -500 -100", "120.084279939743 0.914964278021376 139.524470909773 21.1231086159414")


# Save Output
MakeMultidim.save("C:\data\Salinity_MultidimLayer.crf")
MakeMultidimensionalRasterLayer 示例 2(独立脚本)

使用 BY_VALUE 方法从多维栅格中提取特定深度值的水温变量。

# Import system modules
import arcpy

# Define input parameters
in_multidimensional_raster = r"C:\data\MD_Ocean_data.crf"
out_multidimensional_raster_layer = r"C:\data\Temp_slice.crf"
variables = "water_temp"
dimension_def = "BY_VALUE"
dimension_values = "StdZ -50;StdZ -100"
template = "120.084279939743 0.914964278021376 139.524470909773 21.1231086159414"

#Execute

arcpy.md.MakeMultidimensionalRasterLayer(in_multidimensional_raster, out_multidimensional_raster_layer, variables, dimension_def, dimension_values, template)
MakeMultidimensionalRasterLayer 示例 3(独立脚本)

使用 BY_ITERATION 方法从多维栅格中提取“盐度”变量。

# Import system modules
import arcpy
 
# Set local variables
in_multidimensional_raster = r"C:\data\MD_Ocean_data.crf"
out_multidimensional_raster_layer =  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"
template = "120.084279939743 0.914964278021376 139.524470909773 21.1231086159414"
 
#Execute
 
arcpy.md.MakeMultidimensionalRasterLayer(in_multidimensional_raster, out_multidimensional_raster_layer, variables, dimension_def, dimension, start_of_first_iteration, end_of_first_iteration, iteration_step, iteration_unit, template)

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题