View source: R/ecospat.niche.projGeo.R
ecospat.niche.dynIndexProjGeo | R Documentation |
Creates a SpatRaster 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, proj, env)
z1 |
Species 1 occurrence density grid created
by |
z2 |
Species 2 occurrence density grid created
by |
proj |
type of projection (0,1 or 2) |
env |
A SpatRaster of environmental variables
corresponding to the background ( |
Extracts the niche dynamic index of objects created
by ecospat.niche.dyn.index
for each background point
(glob
) using extract
from the terra package. The values
are projected to the geographic coordinates of env
and returned
as a SpatRaster layer. If proj=0, the common background for z1 and z2 (glob
)
is used. If proj=1, the background (glob1
) of z1 is used. If proj=2,
the background (glob1
) of z2 is used.
a SpatRaster with cell values 0-3. 1: unfilling (habitat occupied by species 1); 2: expansion (habitat occupied only by species 2); 3: stability (habitat occupied by both species); and 0 (unoccupied habitat).
Olivier Broennimann olivier.broennimann@unil.ch, Tyler Smith tyler@plantarum.ca
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
library(ade4)
library(terra)
data(ecospat.testNiche)
spp <- ecospat.testNiche
xy.sp1 <- subset(spp, species=="sp1")[2:3] #Bromus_erectus
xy.sp2 <- subset(spp, species=="sp4")[2:3] #Pritzelago_alpina
env<-terra::rast(system.file("extdata","ecospat.testEnv.tif",package="ecospat"))
env.sp1 <- terra::extract(env, xy.sp1)[,-1]
env.sp2 <- terra::extract(env, xy.sp2)[,-1]
env.bkg <- na.exclude(terra::values(env))
#####################
## PCA-ENVIRONMENT ##
#####################
library(ade4)
pca.cal <- ade4::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 <- ade4::suprow(pca.cal,env.sp1)$lisup #scores for sp1
scores.sp2 <- ade4::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, pch = 21, bg = "green")
plot(z2$z.uncor)
points(scores.sp2, pch = 21, bg = "red")
ecospat.plot.niche.dyn(z1, z2)
points(scores.sp1, pch = 21, bg = "green")
points(scores.sp2, pch = 21, bg = "red")
ecospat.niche.overlap(z1,z2 ,cor = TRUE)
##############################
## dynamic indices in space ##
##############################
geozS <- ecospat.niche.dynIndexProjGeo(z1, z2, proj=0, env)
plot(geozS, col = c("grey", "green", "red", "blue"),
legend = FALSE)
points(xy.sp1, bg = "green", pch = 21)
points(xy.sp2, bg = "red", pch = 21)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.