Skip to contents

Predict the output for a new dataset given a trained SDMmodelCV model. The output is given as the provided function applied to the prediction of the k models.

Usage

# S4 method for SDMmodelCV
predict(
  object,
  data,
  fun = "mean",
  type = NULL,
  clamp = TRUE,
  filename = "",
  overwrite = FALSE,
  wopt = list(),
  extent = NULL,
  progress = TRUE,
  ...
)

Arguments

object

SDMmodelCV object.

data

data.frame, SWD or raster rast with the data for the prediction.

fun

character. Function used to combine the output of the k models. Note that fun is a character argument, you must use "mean" and not mean. You can also pass a vector of character containing multiple function names, see details.

type

character. Output type, see details, used only for Maxent and Maxnet methods.

clamp

logical for clumping during prediction, used only for Maxent and Maxnet methods.

filename

character. If provided the raster map is saved in a file. It must include the extension.

overwrite

logical. If TRUE an existing file is overwritten.

wopt

list. Writing options passed to writeRaster.

extent

ext object, if provided it restricts the prediction to the given extent.

progress

logical. If TRUE shows a progress bar during prediction.

...

Additional arguments to pass to the predict function.

Value

A vector with the prediction or a rast object if data is a rast or a list in the case of multiple functions.

Details

  • filename, and extent are arguments used only when the prediction is run for a rast object.

  • When a character vector is passed to the fun argument, than all the given functions are applied and a named list is returned, see examples.

  • When filename is provided and the fun argument contains more than one function name, the saved files are named as filename_fun, see example.

  • For models trained with the Maxent method the argument type can be: "raw", "logistic" and "cloglog". The function performs the prediction in R without calling the MaxEnt Java software. This results in a faster computation for large datasets and might result in a slightly different output compared to the Java software.

  • For models trained with the Maxnet method the argument type can be: "link", "exponential", "logistic" and "cloglog", see maxnet for more details.

  • For models trained with the ANN method the function uses the "raw" output type.

  • For models trained with the RF method the output is the probability of class 1.

  • For models trained with the BRT method the function uses the number of trees defined to train the model and the "response" output type.

References

Wilson P.D., (2009). Guidelines for computing MaxEnt model output values from a lambdas file.

Author

Sergio Vignali

Examples

# Acquire environmental variables
files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
                    pattern = "grd",
                    full.names = TRUE)

predictors <- terra::rast(files)

# Prepare presence and background locations
p_coords <- virtualSp$presence
bg_coords <- virtualSp$background

# Create SWD object
data <- prepareSWD(species = "Virtual species",
                   p = p_coords,
                   a = bg_coords,
                   env = predictors,
                   categorical = "biome")
#>  Extracting predictor information for presence locations
#>  Extracting predictor information for presence locations [35ms]
#> 
#>  Extracting predictor information for absence/background locations
#>  Extracting predictor information for absence/background locations [61ms]
#> 

# Create 4 random folds splitting only the presence data
folds <- randomFolds(data,
                     k = 4,
                     only_presence = TRUE)

model <- train(method = "Maxnet",
               data = data,
               fc = "l",
               folds = folds)

# Make cloglog prediction for the whole study area and get the result as
# average of the k models
predict(model,
        data = predictors,
        fun = "mean",
        type = "cloglog")
#> class       : SpatRaster 
#> dimensions  : 192, 186, 1  (nrow, ncol, nlyr)
#> resolution  : 0.5, 0.5  (x, y)
#> extent      : -125, -32, -56, 40  (xmin, xmax, ymin, ymax)
#> coord. ref. : +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs 
#> source(s)   : memory
#> name        :        mean 
#> min value   : 0.002795287 
#> max value   : 0.997615554 

# Make cloglog prediction for the whole study area, get the average, standard
# deviation, and maximum values of the k models, and save the output in three
# files.
# The following commands save the output in the working directory. Note that
# the `filename` must include the extension
if (FALSE) {
maps <- predict(model,
                data = predictors,
                fun = c("mean", "sd", "max"),
                type = "cloglog",
                filename = "prediction.tif")

# In this case three files are created: prediction_mean.tif,
# prediction_sd.tif and prediction_max.tif
plotPred(maps$mean)
plotPred(maps$sd)
plotPred(maps$max)

# Make logistic prediction for the whole study area, given as standard
# deviation of the k models, and save it in a file
predict(model,
        data = predictors,
        fun = "sd",
        type = "logistic",
        filename = "my_map.tif")}