获得 Image Analyst 许可后可用。
需要 Spatial Analyst 许可。
描述
计算现有多维栅格中每个剖切片的异常,以生成新的多维栅格。
异常是观察值与其标准值或平均值的偏差。
使用方法
受支持的多维栅格数据集包括云栅格格式 (CRF)、多维镶嵌数据集或者由 netCDF、GRIB 或 HDF 文件生成的多维栅格图层。
此工具可生成采用云栅格格式 (CRF) 的多维栅格数据集。目前尚不支持其他输出格式。
此工具可计算多维栅格中一个或多个变量随时间的异常。如果除时间维度外还有非时间维度,则将计算附加维度中每个时间步长的异常。
例如,您拥有按每 1 米(最高 100 米)深度采集的每月海洋温度数据,并且您想要将温度异常计算为与年平均值的偏差。如果将平均值计算间隔参数设置为每年,则生成多维异常工具将基于年平均值确定温度异常,并针对所有 100 个深度返回异常值。
该工具仅支持具有时间维度的多维栅格数据集。
下面列出了用于计算异常值的数学方法。可以将平均值或中值用作平均值的定义来计算异常。如果数据分布发生偏斜,则平均值可能会在很大程度上受到异常值的影响,因此中值或 z 得分方法可能更适合此类数据。
- 与平均值的差值 = x - µ
- x = 剖切片中的像素值
- μ = 给定时间间隔内该像素值的平均值
- 与平均值的百分比差值 = |x - µ| / [(x + µ)/2]
- x = 剖切片中的像素值
- μ = 给定时间间隔内该像素值的平均值
- |x - µ| = 该值与平均值之差的绝对值
- 平均值百分比 = x / µ
- x = 剖切片中的像素值
- μ = 给定时间间隔内该像素值的平均值
- 与中值的差值 = x - ß
- x = 剖切片中的像素值
- ß = 给定时间间隔内该像素值的中值
- 与中值的百分比差值 = |x - ß| / [(x + ß)/2]
- x = 剖切片中的像素值
- ß = 给定时间间隔内该像素值的中值
- |x - ß| = 该值与中值之差的绝对值
- 中值的百分比 = x / ß
- x = 剖切片中的像素值
- ß = 给定时间间隔内该像素值的中值
- Z 得分 = (x - µ) / S
- x = 剖切片中的像素值
- μ = 给定时间间隔内该像素值的平均值
- S = 像素值在给定时间间隔内的标准差
- 与平均值的差值 = x - µ
将根据输入多维栅格计算平均值或中值,您也可以直接提供平均值或中值作为平均值计算间隔参数中的栅格输入。外部栅格可以为单个栅格或多维栅格。如果输入为单个栅格,则将通过比较每个剖切片中的像素值与外部栅格中的相应像素值来计算平均值的差值。如果输入为多维栅格,则将比较相应的剖切片以计算平均值的差值,因此变量和维度的数量和名称必须匹配。
外部栅格必须与输入多维栅格具有相同的范围、像元大小和空间参考。
如果使用外部栅格来计算平均值的差值,则不支持 z 得分异常计算方法。
语法
GenerateMultidimensionalAnomaly(in_multidimensional_raster, {variables}, {method}, {calculation_interval}, {ignore_nodata}, {reference_mean_raster})
参数 | 说明 | 数据类型 |
in_multidimensional_raster | 输入多维栅格数据集。 | Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File |
variables [variables,...] (可选) | 将计算异常的一个或多个变量。如果未指定变量,则将分析具有时间维度的所有变量。 | String |
method (可选) | 指定将用于计算异常的方法。
| String |
calculation_interval (可选) | 指定将用于计算平均值的时间间隔。
| String |
ignore_nodata (可选) | 指定分析中是否忽略 NoData 值。
| Boolean |
reference_mean_raster (可选) | 参考栅格数据集,其中包含之前针对每个像素计算的平均值。将以与该平均值进行比较的方式来计算异常。 | Raster Layer; Raster Dataset; Mosaic Layer; Mosaic Dataset |
返回值
名称 | 说明 | 数据类型 |
out_multidimensional_raster | 输出云栅格格式 (CRF) 多维栅格数据集。 | Raster |
代码示例
此示例通过将像素值与所有剖切片的平均像素值进行比较,为温度数据生成异常多维栅格。
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")
此示例通过将像素值与每年平均值进行比较,为海洋温度数据生成异常多维栅格。
# 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")
许可信息
- Basic: 需要 Spatial Analyst 或 Image Analyst
- Standard: 需要 Spatial Analyst 或 Image Analyst
- Advanced: 需要 Spatial Analyst 或 Image Analyst