Creates a raster in geography with each pixel containing a niche dynamic index (stability, expansion, or unfilling) extracted from 2 niches generated with ecospat.grid.clim.dyn
.
ecospat.niche.dynIndexProjGeo(z1,z2,env,index)
raster of class RasterLayer
Species 1 occurrence density grid created by ecospat.grid.clim.dyn
.
Species 2 occurrence density grid created by ecospat.grid.clim.dyn
.
A RasterStack or RasterBrick of environmental variables corresponding to the background (glob
in ecospat.grid.clim.dyn
).
"stability", "unfilling" or "expansion"
Olivier Broennimann olivier.broennimann@unil.ch
extracts the niche dynamic index of objects created by ecospat.niche.dyn.index
for each point of the background (glob
) using extract
(package raster). The values are binded to the geographic coordinates of env
and a raster is then recreated using rasterFromXYZ
Broennimann, O., M.C. Fitzpatrick, P.B. Pearman, B. Petitpierre, L. Pellissier, N.G. Yoccoz, W. Thuiller, M.J. Fortin, C. Randin, N.E. Zimmermann, C.H. Graham and A. Guisan. 2012. Measuring ecological niche overlap from occurrence and spatial environmental data. Global Ecology and Biogeography, 21:481-497.
Petitpierre, B., C. Kueffer, O. Broennimann, C. Randin, C. Daehler and A. Guisan. 2012. Climatic niche shifts are rare among terrestrial plant invaders. Science, 335:1344-1348.
ecospat.plot.niche.dyn
,ecospat.niche.dyn.index
, ecospat.niche.zProjGeo
# \donttest{
library(ade4)
library(raster)
data(ecospat.testNiche)
spp <- ecospat.testNiche
xy.sp1<-subset(spp,species=="sp1")[2:3] #Bromus_erectus
xy.sp2<-subset(spp,species=="sp3")[2:3] #Daucus_carota
load(system.file("extdata", "ecospat.testEnvRaster.Rdata", package="ecospat"))
env.sp1<-extract(env,xy.sp1)
env.sp2<-extract(env,xy.sp2)
env.bkg<-na.exclude(values(env))
#################################### PCA-ENVIRONMENT ##################################
pca.cal <- dudi.pca(env.bkg, center = TRUE, scale = TRUE, scannf = FALSE, nf = 2)
# predict the scores on the axes
scores.bkg <- pca.cal$li #scores for background climate
scores.sp1 <- suprow(pca.cal,env.sp1)$lisup #scores for sp1
scores.sp2 <- suprow(pca.cal,env.sp2)$lisup #scores for sp2
# calculation of occurence density (niche z)
z1 <- ecospat.grid.clim.dyn(scores.bkg, scores.bkg, scores.sp1,R=100)
z2 <- ecospat.grid.clim.dyn(scores.bkg, scores.bkg, scores.sp2,R=100)
plot(z1$z.uncor)
points(scores.sp1)
plot(z2$z.uncor)
points(scores.sp2)
ecospat.niche.overlap(z1,z2 ,cor = TRUE)
#################################### stability S in space ##################################
geozS<-ecospat.niche.dynIndexProjGeo(z1,z2,env,index="stability")
plot(geozS,main="Stability")
points(xy.sp1,col="red")
points(xy.sp2,col="blue")
# }
Run the code above in your browser using DataLab