Learn R Programming

raster (version 2.3-40)

corLocal: Local correlation coefficient

Description

Local correlation coefficient for two RasterLayer objects (using a focal neighborhood) or for two RasterStack or Brick objects (with the same number of layers (> 2))

Usage

## S3 method for class 'RasterLayer,RasterLayer':
corLocal(x, y, ngb=5, 
     method=c("pearson", "kendall", "spearman"), test=FALSE, filename='', ...)


## S3 method for class 'RasterStackBrick,RasterStackBrick':
corLocal(x, y,  
     method=c("pearson", "kendall", "spearman"), test=FALSE, filename='', ...)

Arguments

x
RasterLayer or RasterStack/RasterBrick
y
object of the same class as x, and with the same number of layers
ngb
neighborhood size. Either a single integer or a vector of two integers c(nrow, ncol)
method
character indicating which correlation coefficient is to be used. One of "pearson", "kendall", or "spearman"
test
logical. If TRUE, return a p-value
filename
character. Output filename (optional)
...
additional arguments as for writeRaster

Value

  • RasterLayer

See Also

cor, cor.test

Examples

Run this code
set.seed(0)
b <- stack(system.file("external/rlogo.grd", package="raster"))
b[[2]] <- flip(b[[2]], 'y') + runif(ncell(b))
b[[1]] <- b[[1]] + runif(ncell(b))

x <- corLocal(b[[1]], b[[2]] )
plot(x)

# only cells where the p-value < 0.1
xm <- mask(x[[1]], x[[2]] < 0.1, maskvalue=FALSE)
plot(xm)


# for global correlation, use the cor function
x <- as.matrix(b)
cor(x, method="spearman")
 
# use sampleRegular for large datasets
x <- sampleRegular(b, 1000)
cor.test(x[,1], x[,2])

# RasterStack or Brick objects
y <- corLocal(b, flip(b, 'y'))

Run the code above in your browser using DataLab