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.
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 notmean
. 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 thefun
argument contains more than one function name, the saved files are named asfilename_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.
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")}