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

摘要

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

使用情况

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

  • 受支持的多维栅格数据集包括云栅格格式 (CRF)、多维镶嵌数据集或者由 netCDF、GRIB 或 HDF 格式文件生成的多维栅格图层。

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

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

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

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

参数

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

输入多维栅格数据集。

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

注:

Zarr 文件必须具有扩展名 .zarr 和文件夹中的 .zgroup 文件。

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

输出多维栅格图层。

Raster Layer
变量
(可选)

将包含在输出多维栅格图层中的变量。 如果未指定任何变量,则将使用第一个变量。

String
维度定义
(可选)

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

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

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

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

Value Table
(可选)

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

Value Table
维度
(可选)

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

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

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

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

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

String
步骤
(可选)

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

Double
单位
(可选)

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

  • 小时指定的时间单位将为小时。
  • 指定的时间单位将为天。
  • 指定的时间单位将为周。
  • 指定的时间单位将为月。
  • 指定的时间单位将为年。
String
范围
(可选)

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

  • 当前显示范围 地图视图 - 范围基于活动地图或场景。 仅在存在活动地图时,才可使用此选项。
  • 绘制范围 Draw Extent - 范围将基于在地图或场景上绘制的矩形。 此选项将在工程地理数据库中创建要素类并将图层添加至地图。 该要素类的坐标系将与地图相同。
    注:

    环境对话框中不提供此选项。 只能在具有范围数据类型的工具参数中或工具对话框的环境选项卡中找到此选项。

    注:

    当选中从“编辑”选项卡启用和禁用编辑编辑选项时,必须在编辑功能区选项卡上启用编辑才能绘制范围。

  • 图层范围 图层 - 范围基于活动地图图层。 使用下拉列表选择可用图层,或使用所有图层中数据的范围选项获取所有活动地图图层(不包括底图)的组合范围。 仅在存在具有图层的活动地图时,才可使用此选项。

    每个地图图层具有以下选项:

    • 所有要素 全选 - 图层中所有要素的范围。
    • 选定要素Area from Selected Features - 图层中选定要素的范围。
    • 可见要素 Extent Indicator - 图层中可见要素的范围。
      注:

      选定要素 Area from Selected Features可见要素 Extent Indicator 选项中的范围仅适用于要素图层。

  • 浏览 浏览 - 范围基于现有数据集。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围坐标和坐标系复制到剪贴板。
    • 使用粘贴范围 粘贴 - 从剪贴板粘贴范围坐标和(可选)坐标系。 如果剪贴板值不包含坐标系,则范围将使用地图的坐标系。
    注:

    将使用与 ArcPy Extent 对象相同的格式和顺序从剪贴板中复制和粘贴范围坐标:x-min、y-min、x-max、y-max 和空间参考。

  • 重置范围 重置 - 将范围重置为默认值。
  • 手动输入坐标 - 坐标必须是数值,并且与活动地图的坐标系相匹配。
    警告:

    地图可能使用与输入的坐标不同的显示单位。 不支持使用主方向(N、S、E、W)。 在南纬和西经坐标中使用负号。

Extent
无维度
(可选)

指定图层是否具有维度值。 仅当选择单个剖切片来创建图层时,此参数才处于活动状态。

  • 选中 - 图层没有维度值。
  • 未选中 - 图层具有维度值。 这是默认设置。

Boolean
空间参考
(可选)

输出多维栅格图层参数值的坐标系。 此参数仅在输入多维栅格参数值为 Zarr 格式时适用。 如果数据中缺少空间参考,则可以使用此参数定义空间参考。

Coordinate System

arcpy.management.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}, {spatial_reference})
名称说明数据类型
in_multidimensional_raster

输入多维栅格数据集。

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

注:

Zarr 文件必须具有扩展名 .zarr 和文件夹中的 .zgroup 文件。

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

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

  • MAXOF - 将使用的所有输入的最大范围。
  • MINOF - 将使用的所有输入共用的最小范围。
  • DISPLAY - 范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。 坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
dimensionless
(可选)

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

  • NO_DIMENSIONS图层没有维度值。
  • DIMENSIONS图层具有维度值。 这是默认设置。
Boolean
spatial_reference
(可选)

out_multidimensional_raster_layer 参数值的坐标系。 此参数仅在 in_multidimensional_raster 参数值为 Zarr 格式时适用。 如果数据中缺少空间参考,则可以使用此参数定义空间参考。

Coordinate System

代码示例

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)