Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pairwise correlation between raster layers in R

I need accomplish a pairwise Pearson correlation between 19 raster layers for Africa Continent extracted from WordClim database. I want to checking what are variables layers more correlated/significant to my model. For this i tried use the layerStats function from Raster package, but after execute my output not contain numerical values, all the rows and columns showed NAs values. Below is my script.

#Loading raster files from WorldClim database
rastFiles<- list.files(pattern="bil")
a<-stack(rastFiles)

# Adjusting for African Continent
newext<-c(-20, 55, -35, 45)
Africa<-crop(a,newext)
Africa

#Correlation
cor<-layerStats(Africa,'pearson')
like image 397
Ricardo Adelino Avatar asked Aug 19 '15 03:08

Ricardo Adelino


1 Answers

In r, simply use the code below, ensuring you have na.rm=T to deal with NAs across layers:

library(raster)    
jnk=layerStats(raster_stack, 'pearson', na.rm=T)
corr_matrix=jnk$'pearson correlation coefficient'
like image 164
Lucas Fortini Avatar answered Oct 01 '22 16:10

Lucas Fortini