The environmental variables
In this module we will see where and how find environmental layers to build our SDM. Then we will refine again our dataset taking into account the spatial resolution of the environmental layer. Finally, we will see how to deal with the problem of multi-collinearity in environmental layers. At the end on this module we will have a dataset with occurrences and a number of layer that we will use to train our SDM in module 3.
Remove duplicates within the same raster cell
We downloaded layers at a spatial resolution of
approximately 5x5 Km. This means that it is possible that within the same cell
fall more than one occurrence. Despite the coordinates of two occurrences
falling in the same cell can be different, technically they are just a duplicate
of the environmental information provided by the raster. We want to remove this
duplicate (analogously to what we did in Module 1) to remove the potential bias
introduced by duplications. To do this we will use an ad.hoc function written
for this purpose:
occ.desaggregation_RASTER<-function(df, colxy, colvar, rast, plot=T)
{
require(raster)
df_ini<-df
var1<-cellFromXY(rast, df[,colxy])
if(any(is.na(var1))){stop("no NA admitted in species occurrences!")}
var2<-split(var1, var1)
l<-sapply(var2, length)
l1<-l[l>1]
for(j in 1:length(l1))
{
w<-which(var1%in%as.numeric(names(l1[j])))
found<-df[w,]
s<-sample(w,1)
df[w[w!=s],colxy]<-NA
}
df_final<-df[!is.na(df[,colxy[1]]),]
if(plot==T)
{
x11()
plot(df_ini[,colxy],main="distribution of occurences",sub=paste("# initial (black):",nrow(df_ini)," | # kept (red): ",nrow(df_final)),pch=19,col="black",cex=0.5)
points(df_final[,colxy],pch=19,col="red",cex=0.2)
}
return(df_final)
}
Now we apply the new function occ.desaggregation_RASTER to the krameri datasets:
> krameri<-occ.desaggregation_RASTER(df=krameri,colxy=c(2,1), rast=r[[1]], plot=F)
and check the new datafile:
>dim( krameri)
[1] 481
Do you remember the initial number of occurrences downloaded from GBIF? More than 8000. Now we have “only” 481 occurrences!