R/mc-reserve.r
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, ...)
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 |
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
|
... | additional arguments passed on to |
A numeric vector of metapopulation capacities for each species.
# 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) # }