如何计算 R 中两个栅格数据集之间的相关性(r)?
How to calculate correlation(r) between two raster datasets in R?
我有两个(NPP_BEGA 和 ENACT_BEGA)堆叠栅格数据集。它们具有相同的空间分辨率、范围和维度。我想 运行 并映射这两个栅格数据集之间的相关性 (r) 和 P 值。
NPP_BEGA
class : RasterBrick
dimensions : 321, 401, 128721, 37 (nrow, ncol, ncell, nlayers)
resolution : 0.0375, 0.0375 (x, y)
extent : 32.98125, 48.01875, 2.98125, 15.01875 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : NPP_BEGA_RES.tif
names : NPP_BEGA_RES.1, NPP_BEGA_RES.2, NPP_BEGA_RES.3, NPP_BEGA_RES.4,
NPP_BEGA_RES.5, NPP_BEGA_RES.6, NPP_BEGA_RES.7, NPP_BEGA_RES.8, NPP_BEGA_RES.9,
NPP_BEGA_RES.10, NPP_BEGA_RES.11, NPP_BEGA_RES.12, NPP_BEGA_RES.13, NPP_BEGA_RES.14,
NPP_BEGA_RES.15, ...
min values : 0, 0, 0, 0,
max values : 90.21, 87.39, 91.44, 91.77,
ENACT_BEGA
class : RasterBrick
dimensions : 321, 401, 128721, 37 (nrow, ncol, ncell, nlayers)
resolution : 0.0375, 0.0375 (x, y)
extent : 32.98125, 48.01875, 2.98125, 15.01875 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : ENACT_BEGA_RES.tif
names : ENACT_BEGA_RES.1, ENACT_BEGA_RES.2, ENACT_BEGA_RES.3, ENACT_BEGA_RES.4,
ENACT_BEGA_RES.5, ENACT_BEGA_RES.6, ENACT_BEGA_RES.7, ENACT_BEGA_RES.8,
ENACT_BEGA_RES.9, ENACT_BEGA_RES.10, ENACT_BEGA_RES.11, ENACT_BEGA_RES.12,
ENACT_BEGA_RES.13, ENACT_BEGA_RES.14, ENACT_BEGA_RES.15, ...
min values : 0, 0, 0, 0,
max values : 923.8, 923.8, 491.7, 512.1,
这是我试过的
library(raster)
library(sp)
ENACT_BEGA<-brick("ENACT_BEGA_RES.tif")
NPP_BEGA<-brick("NPP_BEGA_RES.tif")
Cor<-corLocal(ENACT_BEGA,NPP_BEGA, test = T)
找到
There were 50 or more warnings (use warnings() to see the first 50)
1: In cor(x, y) : the standard deviation is zero
2: In cor(x, y) : the standard deviation is zero
50: In cor(x, y) : the standard deviation is zero
脚本有什么问题,我该如何更正?非常感谢!
脚本没有问题。您会收到警告,而不是错误。当没有标准偏差时,单元格会出现警告,因为至少其中一层的所有焦点值都相同:
cor(c(0,0,0), c(1,2,3))
#[1] NA
#Warning message:
#In cor(c(0, 0, 0), c(1, 2, 3)) : the standard deviation is zero
我有两个(NPP_BEGA 和 ENACT_BEGA)堆叠栅格数据集。它们具有相同的空间分辨率、范围和维度。我想 运行 并映射这两个栅格数据集之间的相关性 (r) 和 P 值。
NPP_BEGA
class : RasterBrick
dimensions : 321, 401, 128721, 37 (nrow, ncol, ncell, nlayers)
resolution : 0.0375, 0.0375 (x, y)
extent : 32.98125, 48.01875, 2.98125, 15.01875 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : NPP_BEGA_RES.tif
names : NPP_BEGA_RES.1, NPP_BEGA_RES.2, NPP_BEGA_RES.3, NPP_BEGA_RES.4,
NPP_BEGA_RES.5, NPP_BEGA_RES.6, NPP_BEGA_RES.7, NPP_BEGA_RES.8, NPP_BEGA_RES.9,
NPP_BEGA_RES.10, NPP_BEGA_RES.11, NPP_BEGA_RES.12, NPP_BEGA_RES.13, NPP_BEGA_RES.14,
NPP_BEGA_RES.15, ...
min values : 0, 0, 0, 0,
max values : 90.21, 87.39, 91.44, 91.77,
ENACT_BEGA
class : RasterBrick
dimensions : 321, 401, 128721, 37 (nrow, ncol, ncell, nlayers)
resolution : 0.0375, 0.0375 (x, y)
extent : 32.98125, 48.01875, 2.98125, 15.01875 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : ENACT_BEGA_RES.tif
names : ENACT_BEGA_RES.1, ENACT_BEGA_RES.2, ENACT_BEGA_RES.3, ENACT_BEGA_RES.4,
ENACT_BEGA_RES.5, ENACT_BEGA_RES.6, ENACT_BEGA_RES.7, ENACT_BEGA_RES.8,
ENACT_BEGA_RES.9, ENACT_BEGA_RES.10, ENACT_BEGA_RES.11, ENACT_BEGA_RES.12,
ENACT_BEGA_RES.13, ENACT_BEGA_RES.14, ENACT_BEGA_RES.15, ...
min values : 0, 0, 0, 0,
max values : 923.8, 923.8, 491.7, 512.1,
这是我试过的
library(raster)
library(sp)
ENACT_BEGA<-brick("ENACT_BEGA_RES.tif")
NPP_BEGA<-brick("NPP_BEGA_RES.tif")
Cor<-corLocal(ENACT_BEGA,NPP_BEGA, test = T)
找到
There were 50 or more warnings (use warnings() to see the first 50)
1: In cor(x, y) : the standard deviation is zero
2: In cor(x, y) : the standard deviation is zero
50: In cor(x, y) : the standard deviation is zero
脚本有什么问题,我该如何更正?非常感谢!
脚本没有问题。您会收到警告,而不是错误。当没有标准偏差时,单元格会出现警告,因为至少其中一层的所有焦点值都相同:
cor(c(0,0,0), c(1,2,3))
#[1] NA
#Warning message:
#In cor(c(0, 0, 0), c(1, 2, 3)) : the standard deviation is zero