context("sdm_threshold")
test_that("sdm_threshold makes rasters binary", {
library(S4DM)
library(terra)
# occurrence points
data("sample_points")
occurrences <- sample_points
# environmental data
env <- rast(system.file('ex/sample_env.tif', package="S4DM"))
# rescale the environmental data
env <- terra::scale(env) #breaks testthat if this isn't done
bg_data <- get_env_bg(coords = occurrences,
env = env,
method = "buffer",
width = 100000)
pres_data <- get_env_pres(coords = occurrences,
env = env)
pnp_model <-fit_plug_and_play(presence = pres_data$env,
background = bg_data$env,
method = "gaussian")
pnp_continuous <- project_plug_and_play(pnp_model = pnp_model,
data = bg_data$env)
#Make an empty raster to populate
out_raster <- env[[1]]
values(out_raster) <- NA
# use the bg_data for indexing
out_raster[bg_data$bg_cells] <- pnp_continuous
#convert to a binary raster
out_raster_binary <-
sdm_threshold(prediction_raster = out_raster,
occurrence_sf = pres_data$occurrence_sf,
quantile = 0.05,
return_binary = TRUE)
expect_s4_class(object = out_raster_binary,class = "SpatRaster")
expect_equal(object = length(unique(values(out_raster_binary))),expected = 2)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.