多维栅格相关性 (Image Analyst)

获得 Image Analyst 许可后可用。

摘要

分析一个或两个多维栅格中两个变量之间的相关性。

该工具以两个多维栅格作为输入,使用 Pearson、Kendall 或 Spearman 相关性方法比较两个变量,并输出一个相关性栅格,每个像素代表相应像素数组的相关性值。 输出的栅格可以映射两个变量相关和不相关的区域。

工具还可以在滞后值非零时计算互相关性,并在两个输入相同时计算自相关性。

您可以分析一个或两个多维栅格中两个变量之间的相关性。 输出是一个相关性栅格,其中每个像素代表两个变量的两个时间序列的相关性。 该工具可用于计算滞后的相关性、互相关性或自相关性。 例如,下面图像中的相关性栅格是根据随时间变化的土壤水分变量和降水变量计算得出的。

插图

多维栅格相关性分析工具图示
根据月度土壤水分和月度降水量计算得出相关性栅格。

使用情况

  • 对于两个多维栅格中的每个像素位置,工具使用两个变量的两个相应像素数组并计算一个相关性值。 工具比较每个重叠像素的两个有序数组,修剪不必要的数据。 当像素数组的长度不同时,将修剪较长数组的尾部。

  • 两个多维栅格必须具有相同的像元大小、空间范围和投影。 它们不需要相同的时间范围或间隔。

  • 如果需要相同的间隔,请使用聚合多维栅格工具或按维度插值栅格函数来重新采样维度间隔。

  • 使用子集化多维栅格工具或多维过滤器函数来定义相同的维度范围。

  • 或者,您可以使用延迟参数来控制如何在维度上对齐两个变量以通过指定的延迟移动像素数组来计算相关性值。 值为 0 表示无平移,值为 2 表示将第一个变量向前平移两个索引(步长)来计算,值为 -2 表示将第一个变量向后平移两个步长来计算。

    例如,第一个栅格中的像素数组是 0、1、2、3,第二个栅格中的像素数组是 4、5、6、7、8、9。

    使用延迟参数过滤多维数据
    使用延迟参数在维度上对齐两个变量。 对于值 0:将计算 0、1、2、3 与 4、5、6、7;对于值 2:将计算 0、1、2、3 与 6、7、8、9;对于值 -1:将计算 1、2、3 与 4、5、6。

  • 延迟描述了一个(领先)变量与另一个(滞后)变量稍后时间的值互相关和同步的情况。

  • 互相关性计算指定范围内每个延迟的相关性栅格,生成的相关性栅将被保存为多波段栅格。 当选中计算 P 值参数时,将在输出中添加附加的波段。 设计工作流以避免创建不必要的输出波段。

  • 要计算自相关性,需将第一个和第二个输入设置为相同的多维栅格、维度名称和变量。

参数

标注说明数据类型
输入多维栅格 1

输入多维栅格数据集。

任何受支持格式的第一个多维栅格。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service
输入多维栅格 2

将与第一个输入相关联的第二个多维栅格。 如果输入多维栅格 1 参数值与输入多维栅格 2 参数值相同,则将计算自相关性。 自相关性指的是两个连续时间间隔之间相同变量的相关程度。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service
栅格 1 的维度名称
(可选)

第一个数据集中的维度名称,将沿其定义像素数组。 当输入具有两个非空间维度时,必须指定一个维度。 计算中使用的维度长度必须大于 2。

String
变量 1
(可选)

来自第一个输入栅格的变量名称。

String
栅格 2 的维度名称
(可选)

第二个数据集中的维度名称。 计算中使用的维度长度必须大于 2。

String
变量 2
(可选)

来自第二个输入栅格的变量名称。

String
相关性方法
(可选)

指定将使用的相关性计算方法。

  • Pearson相关性方法将为 Pearson。 这是默认设置。
  • Spearman相关性方法将为 Spearman。
  • Kendall相关性方法将为 Kendall。
String
延迟
(可选)

通过指定的步长平移像素数组来计算相关性值,从 0 到维度/2,取决于时差。 默认值为 0。

Long
计算滞后时的互相关性
(可选)

指定是否计算滞后时的互相关性。

启用时,将在滞后值定义的范围内的每个滞后处计算相关性。 例如,如果滞后值为 2,则将计算 -2、-1、0、1 和 2 的相关性,并将其存储为输出栅格中的波段。

  • 选中 - 将计算滞后时的互相关性。
  • 未选中 - 不计算滞后时的互相关性。 这是默认设置。

Boolean
计算 P 值
(可选)

指定是否计算滞后时的 p 值。 P 值是描述两个变量相关程度的置信值。

  • 选中 - 将计算滞后时的 p 值。 输出将包括存储 p 值的其他波段。
  • 未选中 - 不计算滞后时的 p 值。 这是默认设置。

Boolean
输出最大相关性栅格
(可选)

一个包含最大相关性值及其对应滞后值的双波段栅格。 选中计算滞后时的互相关性参数时,将创建此栅格。

一个包含最大相关性值及其对应滞后值的双波段栅格。 当 calculate_xcorr 参数指定为 ALL_CROSS_CORRELATION 时,将创建此栅格。

Raster Dataset

返回值

标注说明数据类型
输出栅格

输出栅格数据集。 当 lag 参数值不为 0 时,将在每个滞后值处计算互相关性,并将其作为波段存储在输出中。

Raster Dataset

MultidimensionalRasterCorrelation(in_mdim_raster1, in_mdim_raster2, {dimension1}, {variable1}, {dimension2}, {variable2}, {corr_method}, {lag}, {calculate_xcorr}, {calculate_pvalue}, {out_max_corr_raster})
名称说明数据类型
in_mdim_raster1

输入多维栅格数据集。

任何受支持格式的第一个多维栅格。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service
in_mdim_raster2

将与第一个输入相关联的第二个多维栅格。 计算中使用的维度长度必须大于 2。 如果 in_mdim_raster1 参数值与 in_mdim_raster2 参数值相同,则将计算自相关性。 自相关性指的是两个连续时间间隔之间相同变量的相关程度。

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service
dimension1
(可选)

第一个数据集中的维度名称,将沿其定义像素数组。 当输入具有两个非空间维度时,必须指定一个维度。 计算中使用的维度长度必须大于 2。

String
variable1
(可选)

来自第一个输入栅格的变量名称。

String
dimension2
(可选)

第二个数据集中的维度名称。 计算中使用的维度长度必须大于 2。

String
variable2
(可选)

来自第二个输入栅格的变量名称。

String
corr_method
(可选)

指定将使用的相关性计算方法。

  • PEARSON相关性方法将为 Pearson。 这是默认设置。
  • SPEARMAN相关性方法将为 Spearman。
  • KENDALL相关性方法将为 Kendall。
String
lag
(可选)

通过指定的步长平移像素数组来计算相关性值,从 0 到维度/2,取决于时差。 默认值为 0。

Long
calculate_xcorr
(可选)

指定是否计算滞后时的互相关性。

指定 ALL_CROSS_CORRELATION 时,将在滞后值定义的范围内的每个滞后处计算相关性。 例如,如果滞后值为 2,则将计算 -2、-1、0、1 和 2 的相关性,并将其存储为输出栅格中的波段。

  • ALL_CROSS_CORRELATION将计算滞后时的互相关性。
  • NO_CROSS_CORRELATION不计算滞后时的互相关性。 这是默认设置。
Boolean
calculate_pvalue
(可选)

指定是否计算滞后时的 p 值。 P 值是描述两个变量相关程度的置信值。

  • CALCULATE_P_VALUE将计算滞后时的 p 值。 输出将包括存储 p 值的其他波段。
  • NO_P_VALUE不计算滞后时的 p 值。 这是默认设置。
Boolean
out_max_corr_raster
(可选)

一个包含最大相关性值及其对应滞后值的双波段栅格。 当 calculate_xcorr 参数指定为 ALL_CROSS_CORRELATION 时,将创建此栅格。

Raster Dataset

返回值

名称说明数据类型
out_raster

输出栅格数据集。 当 lag 参数值不为 0 时,将在每个滞后值处计算互相关性,并将其作为波段存储在输出中。

Raster Dataset

代码示例

MultidimensionalRasterCorrelation 示例 1(Python 窗口)
# Import system modules 
import arcpy 
from arcpy.ia import * 

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

# Execute 
arcpy.env.workspace = r"c:\data" 
output=arcpy.ia.MultidimensionalRasterCorrelation("soil2022.crf", "weather2022.crf", "StdTime", "soilm", "StdTime", "temperature", "PEARSON", 0, "NO_CROSS_CORRELATION", "NO_P_VALUE", None)
output.save("correlationraster.crf")
MultidimensionalRasterCorrelation 示例 2(独立脚本)
# Import system modules 
import arcpy 
from arcpy.ia import * 

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

# Define input parameters
raster1=r"E:\data\soil2022.crf"
raster2=r"E:\data\weather2022.crf"
dimension1="StdTime"
variable1="soilm"
dimension2="StdTime"
variable2="temperature"
correlation_method="PEARSON"
lag=3
calculate_cross_correlation="ALL_CROSS_CORRELATION"
calculate_pvalue="CACULATE_P_VALUE"
out_max_correlation_raster=r"E:\data\max_correlation.crf"

# Execute 
output = arcpy.ia.MultidimensionalRasterCorrelation(raster1, raster2, dimension1, variable1, dimension2, variable2, correlation _method, lag, calculate_cross_correlatio, calculate_pvalue, out_max_ correlation_raster)
output.save(r"E:\data\cross_correlation_raster.crf")

相关主题