Make Multidimensional Raster Layer (Multidimensional)

Summary

Creates a raster layer from a multidimensional raster dataset or a multidimensional raster layer by slicing data along defined variables and dimensions.

Usage

  • This tool creates a multidimensional raster layer from a multidimensional raster or mosaic dataset by extracting a subset of variables. For example, you have a mosaic dataset that contains 30 years of monthly precipitation data, and you only want to extract data for each January to see how precipitation has changed for that month.

  • Supported multidimensional raster datasets include Cloud Raster Format (CRF), multidimensional mosaic datasets, or multidimensional raster layers generated by netCDF, GRIB, or HDF format files.

  • This tool generates a temporary layer that will not persist unless it's saved to disk.

  • Use the Dimension Definition parameter to slice dimensions using an interval, a value, or a range of values. For example, if you have 10 years of ocean salinity data, collected monthly and at every 2 meters depth up to 500 meters, you can use the different dimension definition options for the following scenarios:

    • Extract salinity data for the month of January over the 10-year period. Choose By Values, set Dimension to StdTime, and set Values to January.
    • Slice salinity data over a depth range from 0 to 150 meters. Choose By Ranges, set Dimension to StdZ, and set Minimum Value to -150 and Maximum Value to 0.
    • Extract salinity data for the first 10 days of January over a 10-year period. Choose By Iteration, set Dimension to StdTime, set Start of first iteration and End of first iteration to the corresponding start and end of the iteration period, set Step to 1, and set Unit to Years.

  • To create a nonmultidimensional layer that contains data from a single slice of the multidimensional raster, choose By Values for the Dimension Definition parameter, select a single dimension value, and check the Dimensionless parameter.

Parameters

LabelExplanationData Type
Input Multidimensional Raster

The input multidimensional raster dataset.

Supported inputs are netCDF, GRIB, HDF, CRF, and Zarr files, a multidimensional mosaic dataset, a multidimensional image service, an OPeNDAP URL, or a multidimensional raster layer.

Note:

A Zarr file must have an extension of .zarr and a .zgroup file in the folder.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
Output Multidimensional Raster Layer

The output multidimensional raster layer.

Raster Layer
Variables
(Optional)

The variables that will be included in the output multidimensional raster layer. If no variable is specified, the first variable will be used.

String
Dimension Definition
(Optional)

Specifies the method that will be used to slice the dimension.

  • AllThe full range for each dimension will be used. This is the default.
  • By RangesThe dimension will be sliced using a range or a list of ranges.
  • By IterationThe dimension will be sliced over a specified interval size.
  • By ValuesThe dimension will be sliced using a list of dimension values.
String
Range
(Optional)

The range or list of ranges for the specified dimension.

The data will be sliced based on the dimension name and the minimum and maximum values for the range. This parameter is required when the Dimension Definition parameter is set to By Ranges.

Value Table
Values
(Optional)

A list of values for the specified dimension. This parameter is required when the Dimension Definition parameter is set to By Values.

Value Table
Dimension
(Optional)

The dimension along which the variables will be sliced. This parameter is required when the Dimension Definition parameter is set to By Iteration.

String
Start of first iteration
(Optional)

The beginning of the first interval. This interval will be used to iterate through the dataset. This parameter is required when the Dimension Definition parameter is set to By Iteration.

String
End of first iteration
(Optional)

The end of the first interval. This interval will be used to iterate through the dataset. This parameter is required when the Dimension Definition parameter is set to By Iteration.

String
Step
(Optional)

The frequency with which the data will be sliced. This parameter is required when the Dimension Definition parameter is set to By Iteration.

Double
Unit
(Optional)

Specifies the iteration unit that will be used. This parameter is required when the Dimension Definition parameter is set to By Iteration and the Dimension parameter is set to StdTime.

  • HoursThe specified unit of time will be hours.
  • DaysThe specified unit of time will be days.
  • WeeksThe specified unit of time will be weeks.
  • MonthsThe specified unit of time will be months.
  • YearsThe specified unit of time will be years.
String
Extent
(Optional)

The extent (bounding box) of the layer. Choose the appropriate Extent option for the layer.

  • Current Display Extent Map View—The extent will be based on the active map or scene.
  • Draw Extent Square and Finish—The extent will be based on a rectangle drawn on the map or scene.
  • Extent of a Layer Layer—The extent will be based on an active map layer. Choose an available layer or use the Extent of data in all layers option. Each map layer has the following options:

    • All Features Select All—The extent of all features.
    • Selected Features Area from Selected Features—The extent of the selected features.
    • Visible Features Extent Indicator—The extent of visible features.

  • Browse Browse—The extent will be based on a dataset.
  • Clipboard Paste—The extent can be copied to and from the clipboard.
    • Copy Extent Copy—Copies the extent and coordinate system to the clipboard.
    • Paste Extent Paste—Pastes the extent and coordinate system from the clipboard. If the clipboard does not include a coordinate system, the extent will use the map’s coordinate system.
  • Reset Extent Reset—The extent will be reset to the default value.

When coordinates are manually provided, the coordinates must be numeric values and in the active map's coordinate system. The map may use different display units than the provided coordinates. Use a negative value sign for south and west coordinates.

Extent
Dimensionless
(Optional)

Specifies whether the layer will have dimension values. This parameter is only active if a single slice is selected to create a layer.

  • Checked—The layer will not have dimension values.
  • Unchecked—The layer will have dimension values. This is the default.

Boolean
Spatial Reference
(Optional)

The coordinate system for the Output Multidimensional Raster Layer parameter value. This parameter only applies when the Input Multidimensional Raster parameter value is in Zarr format. Use this parameter to define the spatial reference if it is missing in the data.

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})
NameExplanationData Type
in_multidimensional_raster

The input multidimensional raster dataset.

Supported inputs are netCDF, GRIB, HDF, CRF, and Zarr files, a multidimensional mosaic dataset, a multidimensional image service, an OPeNDAP URL, or a multidimensional raster layer.

Note:

A Zarr file must have an extension of .zarr and a .zgroup file in the folder.

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

The output multidimensional raster layer.

Raster Layer
variables
[variables,...]
(Optional)

The variables that will be included in the output multidimensional raster layer. If no variable is specified, the first variable will be used.

String
dimension_def
(Optional)

Specifies the method that will be used to slice the dimension.

  • ALLThe full range for each dimension will be used. This is the default.
  • BY_RANGESThe dimension will be sliced using a range or a list of ranges.
  • BY_ITERATIONThe dimension will be sliced over a specified interval size.
  • BY_VALUEThe dimension will be sliced using a list of dimension values.
String
dimension_ranges
[dimension_ranges,...]
(Optional)

The range or list of ranges for the specified dimension.

The data will be sliced based on the dimension name and the minimum and maximum values for the range. This parameter is required when the dimension_def parameter is set to BY_RANGES.

Value Table
dimension_values
[dimension_values,...]
(Optional)

A list of values for the specified dimension. This parameter is required when the dimension_def parameter is set to BY_VALUE.

Value Table
dimension
(Optional)

The dimension along which the variables will be sliced. This parameter is required when the dimension_def parameter is set to BY_ITERATION.

String
start_of_first_iteration
(Optional)

The beginning of the first interval. This interval will be used to iterate through the dataset. This parameter is required when the dimension_def parameter is set to BY_ITERATION.

String
end_of_first_iteration
(Optional)

The end of the first interval. This interval will be used to iterate through the dataset. This parameter is required when the dimension_def parameter is set to BY_ITERATION.

String
iteration_step
(Optional)

The frequency with which the data will be sliced. This parameter is required when the dimension_def parameter is set to BY_ITERATION.

Double
iteration_unit
(Optional)

Specifies the iteration unit that will be used. This parameter is required when the dimension_def parameter is set to BY_ITERATION and the dimension parameter is set to StdTime.

  • HOURSThe specified unit of time will be hours.
  • DAYSThe specified unit of time will be days.
  • WEEKSThe specified unit of time will be weeks.
  • MONTHSThe specified unit of time will be months.
  • YEARSThe specified unit of time will be years.
String
template
(Optional)

The extent (bounding box) of the layer. Choose the appropriate Extent option for the layer.

  • MAXOF—The maximum extent of all inputs will be used.
  • MINOF—The minimum area common to all inputs will be used.
  • DISPLAY—The extent is equal to the visible display.
  • Layer name—The extent of the specified layer will be used.
  • Extent object—The extent of the specified object will be used.
  • Space delimited string of coordinates—The extent of the specified string will be used. Coordinates are expressed in the order of x-min, y-min, x-max, y-max.
Extent
dimensionless
(Optional)

Specifies whether the layer will have dimension values. This parameter is only enabled if a single slice is selected to create a layer.

  • NO_DIMENSIONS The layer will not have dimension values.
  • DIMENSIONSThe layer will have dimension values. This is the default.
Boolean
spatial_reference
(Optional)

The coordinate system for the out_multidimensional_raster_layer parameter value. This parameter only applies when the in_multidimensional_raster parameter value is in Zarr format. Use this parameter to define the spatial reference if it is missing in the data.

Coordinate System

Code sample

MakeMultidimensionalRasterLayer example 1 (Python window)

Extract a subset of variables from a multidimensional raster using the BY_RANGES method.

# 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 example 2 (stand-alone script)

Extract the water temperature variable from a multidimensional raster for specific depth values using the BY_VALUE method.

# 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 example 3 (stand-alone script)

Extract the Salinity variable from a multidimensional raster using the BY_ITERATION method.

# 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)