Learn R Programming

SDMtune (version 1.1.0)

predict,SDMmodelCV-method: Predict for Cross Validation

Description

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 = "", format = "GTiff", extent = NULL,
  parallel = FALSE, ...)

Arguments

object

'>SDMmodelCV object.

data

data.frame, '>SWD or raster stack with the data for the prediction.

fun

character. function used to combine the output of the k models, default is "mean". 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, default is NULL.

clamp

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

filename

character. Output file name for the prediction map, used only when data is a stack object. If provided the output is saved in a file, see details.

format

character. The output format, see writeRaster for all the options, default is "GTiff".

extent

Extent object, if provided it restricts the prediction to the given extent, default is NULL.

parallel

logical to use parallel computation during prediction, default is FALSE.

...

Additional arguments to pass to the writeRaster function.

Value

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

Details

  • filename, format, extent, parallel and ... arguments are used only when the prediction is done for a stack 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. The results might differ slightly from the Java software output.

  • 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.

  • Parallel computation increases the speed only for large datasets due to the time necessary to create the cluster.

References

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

Examples

Run this code
# NOT RUN {
# Acquire environmental variables
files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
                    pattern = "grd", full.names = TRUE)
predictors <- raster::stack(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")

# 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 all study area and get the result as
# average of the k models
predict(model, data = predictors, fun = "mean", type = "cloglog")

# Make cloglog prediction for the all study area, get the average, standard
# deviation, and maximum values of the k models, and save the output in three
# files
maps <- predict(model, data = predictors, fun = c("mean", "sd", "max"),
                type = "cloglog", filename = "prediction")
# 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 all 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")
# }

Run the code above in your browser using DataLab