描述
用于沿定义的变量和维度对数据进行分割,从而根据多维栅格数据集或多维栅格图层创建栅格图层。
使用方法
此工具通过提取变量子集来从多维栅格或镶嵌数据集创建多维栅格图层。例如,您的镶嵌数据集中包含 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 (可选) | 指定将用于分割维度的方法。
| 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 |
代码示例
使用 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)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是