Apply an isolation.forest model on a stars object to calculate environmental suitability and do quantile stretch to [0, 1].

probability(x, vars, offset = 0)

Arguments

x

(isolation_forest). It could be the item model of POIsotree made by function isotree_po.

vars

(stars) The stack of environmental variables. More specifically, make sure it has x and y dimensions only, and distribute variables to attributes of this stars. Otherwise, the function would stop.

offset

(numeric) The offset to adjust fitted suitability. The default is zero. Highly recommend to leave it as default.

Value

a stars of predicted habitat suitability

See also

Examples

if (FALSE) {
# Using a pseudo presence-only occurrence dataset of
# virtual species provided in this package
library(dplyr)
library(sf)
library(stars)
library(itsdm)

# Prepare data
data("occ_virtual_species")
obs_df <- occ_virtual_species %>% filter(usage == "train")
eval_df <- occ_virtual_species %>% filter(usage == "eval")
x_col <- "x"
y_col <- "y"
obs_col <- "observation"

# Format the observations
obs_train_eval <- format_observation(
  obs_df = obs_df, eval_df = eval_df,
  x_col = x_col, y_col = y_col, obs_col = obs_col,
  obs_type = "presence_only")

env_vars <- system.file(
  'extdata/bioclim_tanzania_10min.tif',
  package = 'itsdm') %>% read_stars() %>%
  slice('band', c(1, 5, 16))

# With imperfect_presence mode,
mod <- isotree_po(
  obs_mode = "imperfect_presence",
  obs = obs_train_eval$obs,
  obs_ind_eval = obs_train_eval$eval,
  variables = env_vars, ntrees = 10,
  sample_size = 0.8, ndim = 2L,
  seed = 123L, nthreads = 1,
  response = FALSE,
  spatial_response = FALSE,
  check_variable = FALSE)

suit <- probability(mod$model, mod$variables)
}