This function computes species distribution models using
two modelling algorithms: generalized linear models,
and maximum entropy (only if `rJava`

is available).
Note: this is an experimental function, and may change in the future.

```
sdm(
x,
predictors = NULL,
pol = NULL,
thin = TRUE,
thin.size = 500,
algorithm = "all",
size = 50,
width = 50000,
mask = FALSE
)
```

- x
A dataframe containing the species occurrences and geographic coordinates. Column 1 labeled as "species", column 2 "lon", column 3 "lat".

- predictors
A

`SpatRaster`

to extract values from the locations in x on which the models will be projected.- pol
A vector polygon specifying the boundary to restrict the prediction. If

`NULL`

, the extent of input points is used.- thin
Whether to thin occurrences

- thin.size
The size of the thin occurrences.

- algorithm
Character. The choice of algorithm to run the species distribution model. Available algorithms include:

“all”: Calls all available algorithms: GLM, and MAXENT.

“GLM”: Calls only Generalized linear model.

“MAXENT”: Calls only Maximum entropy.

- size
Minimum number of points required to successfully run a species distribution model especially for species with few occurrences.

- width
Width of buffer in meter if x is in longitude/latitude CRS.

- mask
logical. Should y be used to mask? Only used if pol is a SpatVector

A list with the following objects:

`ensemble_raster`

The ensembled raster that predicts the potential species distribution based on the algorithms selected.`data`

The dataframe of occurrences used to implement the model.`polygon`

Map polygons of the predicted distributions analogous to extent-of-occurrence range polygon.`indiv_models`

Raster layers for the separate models that predict the potential species distribution.

Zurell, D., Franklin, J., König, C., Bouchet, P.J., Dormann, C.F., Elith, J.,
Fandos, G., Feng, X., Guillera‐Arroita, G., Guisan, A., Lahoz‐Monfort, J.J.,
Leitão, P.J., Park, D.S., Peterson, A.T., Rapacciuolo, G., Schmatz, D.R.,
Schröder, B., Serra‐Diaz, J.M., Thuiller, W., Yates, K.L., Zimmermann, N.E.
and Merow, C. (2020), A standard protocol for reporting species distribution
models. *Ecography*, **43**: 1261-1277.

```
# \donttest{
# get predictor variables
library(predicts)
f <- system.file("ex/bio.tif", package="predicts")
preds <- rast(f)
#plot(preds)
# get species occurrences
b <- file.path(system.file(package="predicts"), "ex/bradypus.csv")
d <- read.csv(b)
# fit ensemble model for four algorithms
m <- sdm(d, predictors = preds, algorithm = "all")
#> Warning: [spatSample] fewer cells returned than requested
#> Warning: prediction from a rank-deficient fit may be misleading
#> Warning: prediction from a rank-deficient fit may be misleading
#> Warning: prediction from a rank-deficient fit may be misleading
#> Warning: prediction from a rank-deficient fit may be misleading
#> Loading required namespace: rJava
#> This is maxent_model version 3.4.3
#> Warning: [spatSample] more non-NA cells requested than available
#> Warning: SpatVector objects are converted to sf objects in smoothr. This conversion may introduce errors and increase the time required to perform smoothing.
# plot(m$ensemble_raster)
# plot(m$polygon, add=TRUE)
# }
```