空间数据分析:相关性测试与栅格数据

在科学或实验中,探究两个变量之间的关系是一项常见任务。通过相关性测试,可以获得相关系数和p值。相关系数表明关系的强度,而p值则告诉相关性测试是否显著。基于这些结果,可以得出一个因变量是否影响目标变量的结论。本文将讨论如何对表格数据进行相关性测试,特别是空间栅格数据。栅格数据是具有空间属性的图像,对空间栅格数据进行相关性测试与表格数据类似。

假设有两组栅格数据:(1) NDVI(归一化植被指数)和(2) 亮度温度(BT)。想要测试这两者之间的关系,以了解植被是否影响温度。NDVI代表植被状况,NDVI值高于0.6通常表示高密度植被,如森林;NDVI值在0.4到0.6之间通常表示农作物;NDVI值在0.2到0.4之间通常表示土壤、裸地或房屋;NDVI值为负数通常表示水体。

首先,需要将这两个栅格数据集叠加在一起。接下来,将它们从栅格转换为表格数据。每一对单元格或像素将并排排列在表格中。因此,表格有两列,分别对应NDVI和BT。表格的行数与单元格数量相同。之后,就可以运行相关性测试了。

但是,并不总是能得到具有相同分辨率或单元格大小、覆盖区域的栅格数据集。在这个例子中,NDVI是使用Landsat 8 OLI的Band 5和Band 4处理的,单元格大小为30米。亮度温度的单元格大小为90米。这两个栅格数据集具有不同的单元格大小,并且覆盖区域也不同。将它们叠加在一起后,它们不能被转换为数据框,因为单元格之间不匹配。图1展示了两组栅格图像。黑色栅格的分辨率高于红色栅格。单元格不匹配。

重采样单元格大小

这是空间分析的挑战。在运行相关性测试之前,必须处理这两个栅格图像,使它们具有相同的单元格大小和覆盖区域。NDVI栅格的每个单元格必须与BT栅格的每个单元格分别对应。为了做到这一点,在叠加栅格图像之前,需要根据另一个栅格的单元格大小对其中一个栅格数据进行重采样。现在的选择是,是按照BT栅格对NDVI栅格进行重采样,还是反之。

如果根据BT栅格对NDVI栅格进行重采样,那么30米的单元格大小将被泛化到90米。其中将丢失一些信息。如果将分辨率为90米的BT栅格重采样到30米分辨率,将会产生插值的合成信息。在空间数据中,更倾向于将复杂的数据泛化为更简单的数据,而不是反之。因此,在这种情况下,将对NDVI栅格进行重采样,使单元格分辨率为90米。

在“raster”包中有两种重采样方法。第一种方法“ngb”用于根据“最近邻”对分类值进行重采样。另一种方法是“双线性”插值,用于对连续值进行重采样。在这种情况下,使用双线性插值。

“ngb”方法创建一个新的栅格,其单元格值根据旧栅格的最近值确定。双线性插值创建一个新的栅格,其单元格值基于旧栅格的4个最近值。请观察图3。创建了一个新的单元格。新栅格的值在蓝点上。有四个单元格围绕着蓝点。它们是7、9、1和11。蓝点的值是4个周围值的加权平均值,根据距离而定。

掩膜栅格

重采样NDVI图像后,现在可以将两个图像转换为具有配对单元格的数据框。下一个挑战是解决无值单元格的问题。有些区域有NDVI值,但没有BT值。也有一些区域有BT值,但没有NDVI值。不希望这些区域被包含在相关性测试中。通常,无值区域用特殊数字填充,如0、9999或-9999。这将破坏相关性测试。

为了过滤掉这些区域,需要用彼此的掩膜处理两个栅格数据集。这意味着,对于NDVI或BT无值的单元格将被移除。这与交集相同。只返回两个栅格数据集都有可用值的单元格。以下是执行栅格掩膜的代码。

# 掩膜栅格 ndvi_m <- mask(ndvi, bt) bt_m <- mask(bt, ndvi) # 绘图 plot(ndvi_m) plot(bt_m)

转换为数据框并运行相关性测试

现在重采样和掩膜已经完成,两个栅格数据集可以转换为数据框。如前所述,数据框有一列用于NDVI值,另一列用于BT值。每一行是配对的单元格。现在可以进行相关性测试以测试关系。在这种情况下,使用皮尔逊相关性,因为两个变量都是连续的。以下是获取相关系数和p值的代码。

# 叠加两个栅格并创建数据框 overlay <- stack(ndvi_m, bt_m) overlay <- data.frame(na.omit(values(overlay))) names(overlay2) <- c("ndvi", "bt") # 相关性测试 cor.test(overlay[,1], overlay[,2])

输出结果如下:

Pearson's product-moment correlation data: overlay[, 1] and overlay[, 2] t = 6.1095, df = 31557, p-value = 1.011e-09 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.02334775 0.04538748 sample estimates: cor 0.0343718

以下是数据的前7行:

ndvi bt 1 0.16652 31.49438 2 0.1741 31.42719 3 0.223416 31.60288 4 0.273133 32.10332 5 0.28525 32.57689 6 0.250479 32.85951 7 0.23371 33.02891

可以看到,相关系数是0.0343718,p值是1.011e-09。这意味着NDVI不影响亮度温度。

还可以进行其他类型的分析。例如,让以NDVI作为自变量,BT作为目标变量进行线性回归。以下是代码。

# 线性回归(备选) linear <- lm(overlay[,1] ~ overlay[,2]) summary(linear) Call: lm(formula = overlay[, 1] ~ overlay[, 2]) Residuals: Min 1Q Median 3Q Max -0.48114 -0.14726 0.01716 0.16513 0.28196 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.4453772 0.0091248 48.81 < 2e-16 *** overlay[, 2] 0.0017075 0.0002795 6.11 1.01e-09 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.1733 on 31557 degrees of freedom Multiple R-squared: 0.001181, Adjusted R-squared: 0.00115 F-statistic: 37.33 on 1 and 31557 DF, p-value: 1.011e-09
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485