Available with Image Analyst license.
Available with Spatial Analyst license.
Summary
Computes the anomaly for each slice in an existing multidimensional raster to generate a new multidimensional raster.
An anomaly is the deviation of an observation from its standard or mean value.
Usage
Supported multidimensional raster datasets include Cloud Raster Format (CRF), multidimensional mosaic datasets, or multidimensional raster layers generated by netCDF, GRIB, or HDF files.
This tool produces a multidimensional raster dataset in Cloud Raster Format (CRF). Currently, no other output formats are supported.
This tool calculates anomalies over time for one or more variables in a multidimensional raster. If you have a nontime dimension in addition to the time dimension, the anomaly will be calculated at each step in the additional dimension.
For example, you have monthly ocean temperature data, collected every 1 meter of depth up to 100 meters, and you want to calculate the temperature anomalies as deviations from the yearly mean. The Generate Multidimension Anomaly tool will determine the temperature anomalies based on a yearly mean if you set the Mean Calculation Interval parameter to Yearly, and it will return anomaly values for each of the 100 depths.
This tool only supports multidimensional raster datasets that have a time dimension.
The mathematical methods for calculating anomaly values are listed below. Anomalies can be calculated using either the mean or the median values as the definition of the average. If the data distribution is skewed, the mean can be highly influenced by outliers, so the median value or z-score method may be better suited for this type of data.
- Difference from mean = x - µ
- x = pixel value in a slice
- µ = mean of that pixel's values over the given time interval
- Percent difference from mean = |x - µ| / [(x + µ)/2]
- x = pixel value in a slice
- µ = mean of that pixel's values over the given time interval
- |x - µ| = absolute value of the difference between the value and the mean
- Percent of mean = x / µ
- x = pixel value in a slice
- µ = mean of that pixel's values over the given time interval
- Difference from median = x - ß
- x = pixel value in a slice
- ß = median of that pixel's values over the given time interval
- Percent difference from median = |x - ß| / [(x + ß)/2]
- x = pixel value in a slice
- ß = median of that pixel's values over the given time interval
- |x - ß| = absolute value of the difference between the value and the median
- Percent of median = x / ß
- x = pixel value in a slice
- ß = median of that pixel's values over the given time interval
- Z-score = (x - µ) / S
- x = pixel value in a slice
- µ = mean of that pixel's values over the given time interval
- S = the standard deviation of the pixel's values over the given time interval
- Difference from mean = x - µ
The mean or median will either be calculated from the input multidimensional raster or you can provide the mean or median values directly as a raster input in the Mean Calculation Interval parameter. The external raster can be a single raster or a multidimensional raster. If the input is a single raster, the difference from the mean will be calculated by comparing the pixel values in each slice to the corresponding pixel value in the external raster. If the input is a multidimensional raster, corresponding slices will be compared to calculate the difference from the mean, so the number and name of the variables and dimensions must match.
The external raster must have the same extent, cell size, and spatial reference as the input multidimensional raster.
The z-score anomaly calculation method is not supported if an external raster is used to calculate the difference from the mean.
Syntax
GenerateMultidimensionalAnomaly(in_multidimensional_raster, {variables}, {method}, {calculation_interval}, {ignore_nodata}, {reference_mean_raster})
Parameter | Explanation | Data Type |
in_multidimensional_raster | The input multidimensional raster dataset. | Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File |
variables [variables,...] (Optional) | The variable or variables for which anomalies will be calculated. If no variable is specified, all variables with a time dimension will be analyzed. | String |
method (Optional) | Specifies the method that will be used to calculate the anomaly.
| String |
calculation_interval (Optional) | Specifies the temporal interval that will be used to calculate the mean.
| String |
ignore_nodata (Optional) | Specifies whether NoData values are ignored in the analysis.
| Boolean |
reference_mean_raster (Optional) | The reference raster dataset that contains a previously calculated mean for each pixel. The anomalies will be calculated in comparison to this mean. | Raster Layer; Raster Dataset; Mosaic Layer; Mosaic Dataset |
Return Value
Name | Explanation | Data Type |
out_multidimensional_raster | The output Cloud Raster Format (CRF) multidimensional raster dataset. | Raster |
Code sample
This example generates an anomaly multidimensional raster for temperature data, comparing pixel values with the mean pixel value across all slices.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
tempanomaly = arcpy.ia.GenerateMultidimensionalAnomaly(
"c:/data/climateData.nc", "temperature", "DIFFERENCE_FROM_MEAN",
"ALL", "DATA", None)
tempanomaly.save("c:/data/TempAnomaly.crf")
This example generates an anomaly multidimensional raster for ocean temperature data, comparing pixel values with the yearly mean.
# Import system modules
import arcpy
from arcpy.ia import *
# Define input parameters
inputFile = "c:/data/climateData.crf"
variable = "oceantemp"
averageMethod = "PERCENT_DIFFERENCE_FROM_MEAN"
averageInterval = "EXTERNAL_RASTER"
ignoreNoData = "DATA"
referenceRaster = "c:/data/Average_OceanTemp.crf"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
Anomaly = arcpy.ia.GenerateMultidimensionalAnomaly(inputFile, variable,
averageMethod, averageInterval, ignoreNoData, referenceRaster)
# Save output
Anomaly.save("c:/data/TempAnomaly.crf")
Environments
Licensing information
- Basic: Requires Image Analyst or Spatial Analyst
- Standard: Requires Image Analyst or Spatial Analyst
- Advanced: Requires Image Analyst or Spatial Analyst