Skip To Content

Generate Multidimensional Anomaly

Available with Image Analyst license.

Available with Spatial Analyst license.

Summary

Computes the anomaly for each slice in a multidimensional raster to generate a multidimensional dataset.

An anomaly is the deviation of an observation from its standard or mean value.

Usage

  • Supported multidimensional raster datasets include netCDF, GRIB, HDF, and Esri's CRF. Multidimensional mosaic datasets are also supported.

  • 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 1m depth up to 100m, 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 does not support multidimensional raster datasets that do not have a time dimension.

  • The three mathematical methods for calculating anomaly values are listed below.

    • Difference from mean = x - µ
      • x = pixel value in a slice
      • µ = mean of that pixel's values over a given time interval
    • Percent difference from mean = |x - µ| / [(x + µ)/2]
      • x = pixel value in a slice
      • µ = mean of that pixel's values over a 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 a given time interval

Syntax

GenerateMultidimensionalAnomaly(in_multidimensional_raster, {variables}, {method}, {calculation_interval}, {ignore_nodata})
ParameterExplanationData 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.

  • DIFFERENCE_FROM_MEANThe difference between a pixel value and the mean of that pixel's values across slices defined by the interval will be calculated. This is the default.
  • PERCENT_DIFFERENCE_FROM_MEANThe percent difference between a pixel value and the mean of that pixel's values across slices defined by the interval will be calculated.
  • PERCENT_OF_MEANThe percent of the mean will be calculated.
String
calculation_interval
(Optional)

Specifies the temporal interval that will be used to calculate the mean.

  • ALLCalculates the mean across all slices for each pixel.
  • HOURLYCalculates the hourly mean for each pixel.
  • DAILYCalculates the daily mean for each pixel.
  • WEEKLYCalculates the weekly mean for each pixel.
  • MONTHLYCalculates the monthly mean for each pixel.
  • YEARLYCalculates the yearly mean for each pixel.
String
ignore_nodata
(Optional)

Specifies whether NoData values are ignored in the analysis.

  • DATA The analysis will include all valid pixels along a given dimension and ignore any NoData pixels. This is the default.
  • NODATAThe analysis will result in NoData if there are any NoData values for the pixel along the given dimension.
Boolean

Return Value

NameExplanationData Type
out_multidimensional_raster

The output CRF (Cloud Raster Format) multidimensional raster dataset.

Raster

Code sample

GenerateMultidimensionalAnomaly example 1 (Python window)

This example generates an anomaly multidimensional raster for temperature data, comparing pixel values with the mean pixel value across all slices.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
arcpy.CheckOutExtension("Spatial")
outTempAnomaly = GenerateMultidimensionalAnomaly(
	"C:/sapyexamples/data/climateData.nc", "temperature", "DIFFERENCE_FROM_MEAN",
        "ALL", "DATA")
outTempAnomaly.save("C:/sapyexamples/output/TempAnomaly.crf")
GenerateMultidimensionalAnomaly example 1 (stand-alone window)

This example generates an anomaly multidimensional raster for ocean temperature data, comparing pixel values with the yearly mean.

# Name: GenerateMultidimensionalAnomaly_Ex_02.py
# Description: Generates an anomaly multidimensional raster for
#           ocean temperature data, comparing pixel values with the yearly mean
# Requirements: Spatial Analyst Extension

# Import system modules
import arcpy
from arcpy import env
from arcpy.sa import *

# Set environment settings
env.workspace = "C:/sapyexamples/data"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

""""
Usage: out_multidimensional_raster = GenerateMultidimensionalAnomaly(in_multidimensional_raster,
                                     {variables}, {method}, {temporal_interval})
"""

# Define input parameters
inputFile = "C:/sapyexamples/data/climateData.crf"
variable = "oceantemp"
averageMethod = "PERCENT_DIFFERENCE_FROM_MEAN"
averageInterval = "YEARLY"
ignoreNoData = "DATA"

# Execute GenerateMultidimensionalAnomaly
outYearlyAnomaly = GenerateMultidimensionalAnomaly(inputFile, variable, 
	averageMethod, averageInterval, ignoreNoData)

# Save the output
outYearlyAnomaly.save("C:/sapyexamples/output/TempAnomaly.crf")

Licensing information

  • Basic: Requires Spatial Analyst or Image Analyst
  • Standard: Requires Spatial Analyst or Image Analyst
  • Advanced: Requires Spatial Analyst or Image Analyst

Related topics