View source: R/BIOMOD_EnsembleForecasting.R
| BIOMOD_EnsembleForecasting | R Documentation | 
This function allows to project ensemble models built with the 
BIOMOD_EnsembleModeling function onto new environmental data 
(which can represent new areas, resolution or time scales for example).
BIOMOD_EnsembleForecasting(
  bm.em,
  bm.proj = NULL,
  proj.name = NULL,
  new.env = NULL,
  new.env.xy = NULL,
  models.chosen = "all",
  metric.binary = NULL,
  metric.filter = NULL,
  compress = TRUE,
  nb.cpu = 1,
  na.rm = TRUE,
  ...
)
| bm.em | a  | 
| bm.proj | a  | 
| proj.name | (optional, default  | 
| new.env | (optional, default  | 
| new.env.xy | (optional, default  | 
| models.chosen | a  | 
| metric.binary | (optional, default  | 
| metric.filter | (optional, default  | 
| compress | (optional, default  | 
| nb.cpu | (optional, default  | 
| na.rm | (optional, default  | 
| ... | (optional, see Details) | 
If models.chosen = 'all', projections are done for all calibration and pseudo absences 
runs if applicable. 
 These projections may be used later by the 
BIOMOD_EnsembleForecasting function. 
 
If build.clamping.mask = TRUE, a raster file will be saved within the projection 
folder. This mask values will correspond to the number of variables in each pixel that are out 
of their calibration / validation range, identifying locations where predictions are uncertain. 
 
... can take the following values :
on_0_1000 : a logical value defining whether 0 - 1 
probabilities are to be converted to 0 - 1000 scale to save memory on backup
do.stack : a logical value defining whether all projections are to be 
saved as one SpatRaster object or several SpatRaster files (the 
default if projections are too heavy to be all loaded at once in memory)
keep.in.memory : a logical value defining whether all projections are 
to be kept loaded at once in memory, or only links pointing to hard drive are to be returned
output.format : a character value corresponding to the projections 
saving format on hard drive, must be either .grd, .img, .tif or .RData (the 
default if new.env is given as matrix or data.frame)
A BIOMOD.projection.out object containing models projections, or links to saved 
outputs. 
 Models projections are stored out of R (for memory storage reasons) in 
proj.name folder created in the current working directory :
 the output is a data.frame if new.env is a matrix or a 
data.frame
 it is a SpatRaster if new.env 
is a SpatRaster (or several
SpatRaster objects, if new.env is too large)
 raw projections, as well as binary and filtered projections (if asked),
are saved in the proj.name folder
Wilfried Thuiller, Damien Georges, Robin Engler
BIOMOD_FormatingData, bm_ModelingOptions, 
BIOMOD_Modeling, BIOMOD_EnsembleModeling, 
BIOMOD_RangeSize
Other Main functions: 
BIOMOD_EnsembleModeling(),
BIOMOD_FormatingData(),
BIOMOD_LoadModels(),
BIOMOD_Modeling(),
BIOMOD_Projection(),
BIOMOD_RangeSize()
library(terra)
# Load species occurrences (6 species available)
data(DataSpecies)
head(DataSpecies)
# Select the name of the studied species
myRespName <- 'GuloGulo'
# Get corresponding presence/absence data
myResp <- as.numeric(DataSpecies[, myRespName])
# Get corresponding XY coordinates
myRespXY <- DataSpecies[, c('X_WGS84', 'Y_WGS84')]
# Load environmental variables extracted from BIOCLIM (bio_3, bio_4, bio_7, bio_11 & bio_12)
data(bioclim_current)
myExpl <- terra::rast(bioclim_current)
 
# --------------------------------------------------------------- #
file.out <- paste0(myRespName, "/", myRespName, ".AllModels.models.out")
if (file.exists(file.out)) {
  myBiomodModelOut <- get(load(file.out))
} else {
  # Format Data with true absences
  myBiomodData <- BIOMOD_FormatingData(resp.var = myResp,
                                       expl.var = myExpl,
                                       resp.xy = myRespXY,
                                       resp.name = myRespName)
  # Model single models
  myBiomodModelOut <- BIOMOD_Modeling(bm.format = myBiomodData,
                                      modeling.id = 'AllModels',
                                      models = c('RF', 'GLM'),
                                      CV.strategy = 'random',
                                      CV.nb.rep = 2,
                                      CV.perc = 0.8,
                                      OPT.strategy = 'bigboss',
                                      metric.eval = c('TSS','ROC'),
                                      var.import = 3,
                                      seed.val = 42)
}
file.proj <- paste0(myRespName, "/proj_Current/", myRespName, ".Current.projection.out")
if (file.exists(file.proj)) {
  myBiomodProj <- get(load(file.proj))
} else {
  # Project single models
  myBiomodProj <- BIOMOD_Projection(bm.mod = myBiomodModelOut,
                                    proj.name = 'Current',
                                    new.env = myExpl,
                                    models.chosen = 'all',
                                    build.clamping.mask = TRUE)
}
file.EM <- paste0(myRespName, "/", myRespName, ".AllModels.ensemble.models.out")
if (file.exists(file.EM)) {
  myBiomodEM <- get(load(file.EM))
} else {
  # Model ensemble models
  myBiomodEM <- BIOMOD_EnsembleModeling(bm.mod = myBiomodModelOut,
                                        models.chosen = 'all',
                                        em.by = 'all',
                                        em.algo = c('EMmean', 'EMca'),
                                        metric.select = c('TSS'),
                                        metric.select.thresh = c(0.7),
                                        metric.eval = c('TSS', 'ROC'),
                                        var.import = 3,
                                        seed.val = 42)
}
# --------------------------------------------------------------- #
# Project ensemble models (from single projections)
myBiomodEMProj <- BIOMOD_EnsembleForecasting(bm.em = myBiomodEM, 
                                             bm.proj = myBiomodProj,
                                             models.chosen = 'all',
                                             metric.binary = 'all',
                                             metric.filter = 'all')
# Project ensemble models (building single projections)
myBiomodEMProj <- BIOMOD_EnsembleForecasting(bm.em = myBiomodEM,
                                             proj.name = 'CurrentEM',
                                             new.env = myExpl,
                                             models.chosen = 'all',
                                             metric.binary = 'all',
                                             metric.filter = 'all')
myBiomodEMProj
plot(myBiomodEMProj)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.