For use in conservation prioritization exercises, this function computes the metapopulation capacities for a suite of species within a selected set of planning units.

mc_reserve(pu, x, f, threshold = 0, scale = 1, units = c("km", "m"),
  parallel = FALSE, ...)

Arguments

pu

raster::RasterStack, sp::SpatialPolygonsDataFrame, or sf::sf object; planning units and representation levels of features as layers (raster inputs) or columns (vector inputs).

x

logical or binary; indicator variables specifying which planning units are included.

f

named list of dispersal survival functions with names matching the layer/column names in pu.

threshold

numeric; representation level threshold required to consider a species present in a planning unit.

scale

numeric; vales to rescale the metapopulation capacity by, e.g. to normalize them between 0-1 one can scale by the maximum, species-specific metapopulation capacity given by selecting all planning units. This should be a vector of length 1 or equal in length to the number of features.

units

character; metapopulation capacity depends on the units used for the areas and distances, this argument determines whether these are measured in meters or kilometers.

parallel

logical; whether to parallelize the metapopulation capacity calculations over the species. Parallelization is accomplished using foreach::foreach() and requires registering a parallel backend with doParallel::registerDoParallel() prior to calling this function.

...

additional arguments passed on to meta_capacity().

Value

A numeric vector of metapopulation capacities for each species.

Examples

# generate data r <- raster::raster(nrows = 10, ncols = 10, crs = "+proj=aea", vals = sample(0:1, 100, replace = TRUE)) s <- raster::stack(r, r, r) s[[2]][] <- sample(0:1, 100, replace = TRUE, prob = c(0.6, 0.4)) s[[3]][] <- sample(0:1, 100, replace = TRUE, prob = c(0.8, 0.2)) names(s) <- c("a", "b", "c") selected <- sample(c(FALSE, TRUE), 100, replace = TRUE, prob = c(0.7, 0.3)) disp_f <- list(a = dispersal_negexp(1 / 0.01), b = dispersal_negexp(1 / 0.005), c = dispersal_negexp(1 / 0.02)) mc_reserve(s, selected, disp_f)
#> a b c #> 1.854438e-04 8.571256e-05 4.787157e-05
# vector data features <- raster::rasterToPolygons(s) features <- sf::st_as_sf(features) mc_reserve(features, selected, disp_f)
#> a b c #> 1.854438e-04 8.571256e-05 4.787157e-05
# run in parallel
# NOT RUN { library(doParallel) registerDoParallel(3) mc_reserve(features, selected, disp_f, parallel = TRUE) # }