标注 | 说明 | 数据类型 |
输入多维栅格 | 输入多维栅格数据集。 支持的输入包括 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 |
范围 (可选) | 图层的范围(边界框)。 为图层选择合适的范围选项。
| Extent |
无维度 (可选) | 指定图层是否具有维度值。 仅当选择单个剖切片来创建图层时,此参数才处于活动状态。
| Boolean |
空间参考 (可选) | 输出多维栅格图层参数值的坐标系。 此参数仅在输入多维栅格参数值为 Zarr 格式时适用。 如果数据中缺少空间参考,则可以使用此参数定义空间参考。 | Coordinate System |
摘要
沿定义的变量和维度对数据进行分割,从而根据多维栅格数据集或多维栅格图层创建栅格图层。
使用情况
此工具通过提取变量子集来从多维栅格或镶嵌数据集创建多维栅格图层。 例如,您的镶嵌数据集中包含 30 年的月降水量数据,而且您只想提取每年 1 月的数据,以查看该月份降水的变化。
受支持的多维栅格数据集包括云栅格格式 (CRF)、多维镶嵌数据集或者由 netCDF、GRIB 或 HDF 格式文件生成的多维栅格图层。
该工具将生成一个临时图层,除非将其保存到磁盘,否则该图层将不会永久保留。
使用维度定义参数可按间隔、值或值范围分割维度。 例如,如果您具有每 2 米深度(最深达 500 米)按月采集的 10 年海洋盐度数据,则可以考虑在以下情景中使用不同的维度定义选项:
- 提取这 10 年间的 1 月份盐度数据。 选择按值,将维度设置为 StdTime,并将值设置为 1 月。
- 在 0 至 150 米的深度范围内分割盐度数据。 选择按范围,将维度设置为 StdZ,将最小值设置为 -150 并将最大值设置为 0。
- 提取这 10 年中 1 月份前 10 天的盐度数据。 选择按迭代,将维度设置为 StdTime,将第一次迭代的开始和第一次迭代的结束设置为相应迭代周期的开始和结束,将步长设置为 1,并将单位设置为年。
要创建包含来自多维栅格单个切片的数据的非多维图层,需要为维度定义参数选择按值,选择一个单维度值,然后选中无维度参数。
参数
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 (可选) | 指定将用于分割维度的方法。
| 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 |
template (可选) | 图层的范围(边界框)。 为图层选择合适的范围选项。
| Extent |
dimensionless (可选) | 指定图层是否具有维度值。 仅当选择单个剖切片来创建图层时,此参数才会启用。
| Boolean |
spatial_reference (可选) | out_multidimensional_raster_layer 参数值的坐标系。 此参数仅在 in_multidimensional_raster 参数值为 Zarr 格式时适用。 如果数据中缺少空间参考,则可以使用此参数定义空间参考。 | Coordinate System |
代码示例
使用 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")
使用 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)
使用 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)