View source: R/ps_prioritize.R
ps_prioritize | R Documentation |
Create a ranking of conservation priorities using optimal or probabilistic forward stepwise selection. Prioritization accounts for the occurrence quantities for all lineages present in the site, including terminal taxa and larger clades; the evolutionary branch lengths of these lineages on the phylogeny, which represent their unique evolutionary heritage; the impact that protecting the site would have on these lineages' range-wide protection levels; the compositional complementarity between the site, other high-priority sites, and existing protected areas; the site's initial protection level; the relative cost of protecting the site; and a free parameter "lambda" determining the shape of the conservation benefit function.
ps_prioritize(
ps,
init = NULL,
cost = NULL,
lambda = 1,
protection = 1,
max_iter = NULL,
method = c("optimal", "probable"),
trans = function(x) replace(x, which(rank(-x) > 25), 0),
n_reps = 100,
n_cores = 1,
summarize = TRUE,
spatial = TRUE,
progress = interactive()
)
ps |
phylospatial object. |
init |
Optional numeric vector or spatial object giving the starting protection status of each site across the study area. Values should be between 0 and 1 and represent the existing level of conservation effectiveness in each site. If this argument is not specified, it is assumed that no existing reserves are present. |
cost |
Optional numeric vector or spatial object giving the relative cost of protecting each site. Values should be positive, with greater values indicating higher cost of conserving a site. If this argument is not specified, cost is assumed to be uniform across sites. |
lambda |
Shape parameter for taxon conservation benefit function. This can be any real number. Positive values, such as the default
value |
protection |
Degree of protection of proposed new reserves (number between 0 and 1, with same meaning as |
max_iter |
Integer giving max number of iterations to perform before stopping, i.e. max number of sites to rank. |
method |
Procedure for selecting which site to add to the reserve network at each iteration:
|
trans |
A function that transforms marginal values into relative selection probabilities; only used if |
n_reps |
Number of random repetitions to do; only used if |
n_cores |
Number of compute cores to use for parallel processing; only used if |
summarize |
Logical: should summary statistics across reps (TRUE, default) or the reps themselves (FALSE) be returned? Only relevant
if |
spatial |
Logical: should the function return a spatial object (TRUE, default) or a matrix (FALSE)? |
progress |
Logical: should a progress bar be displayed? |
This function uses the forward stepwise selection algorithm of Kling et al. (2019) to generate a ranked conservation prioritization.
Prioritization begins with the starting protected lands network identified in init
, if provided. At each iteration, the marginal
conservation value of fully protecting each site is calculated, and a site is selected to be added to the reserve network. Selection can
happen either in an "optimal" or "probable" fashion as described under the method
argument. This process is repeated until all sites
are fully protected or until max_iter
has been reached, with sites selected early in the process considered higher conservation
priorities.
The benefit of the probabilistic approach is that it relaxes the potentially unrealistic assumption that protected land will actually be added in the optimal order. Since the algorithm avoids compositional redundancy between high-priority sites, the optimal approach will never place high priority on a site that has high marginal value but is redundant with a slightly higher-value site, whereas the probabilistic approach will select them at similar frequencies (though never in the same randomized run).
Every time a new site is protected as the algorithm progresses, it changes the marginal conservation value of the other sites. Marginal
value is the increase in conservation benefit that would arise from fully protecting a given site, divided by the cost of protecting the
site. This is calculated as a function of the site's current protection level, the quantitative presence probability or abundance of all
terminal taxa and larger clades present in the site, their evolutionary branch lengths on the phylogeny, the impact that protecting the
site would have on their range-wide protection levels, and the free parameter lambda
. lambda
determines the relative importance of
protecting a small portion of every taxon's range, versus fully protecting the ranges of more valuable taxa (those with longer
evolutionary branches and smaller geographic ranges).
Matrix or spatial object containing a ranking of conservation priorities. Lower rank values represent higher
conservation priorities. All sites with a lower priority than max_iter
have a rank value equal to the number
of sites in the input data set (i.e. the lowest possible priority).
method = "optimal"
. the result contains a single variable "priority" containing the ranking.
method = "probable"
and summarize = TRUE
, the "priority" variable gives the average rank across reps, variables labeled "pctX" give the Xth percentile of the rank distribution for each site, variables labeled "topX" give the proportion of reps in which a site was in the top X highest-priority sites, and variables labeled "treX" give a ratio representing "topX" relative to the null expectation of how often "topX" should occur by chance alone.
method = "probable"
and summarize = FALSE
, the result contains the full set of n_rep
solutions,
each representing the the ranking, with low values representing higher priorities..
Kling, M. M., Mishler, B. D., Thornhill, A. H., Baldwin, B. G., & Ackerly, D. D. (2019). Facets of phylodiversity: evolutionary diversification, divergence and survival as conservation targets. Philosophical Transactions of the Royal Society B, 374(1763), 20170397.
benefit()
, plot_lambda()
# simulate a toy `phylospatial` data set
set.seed(123)
ps <- ps_simulate()
# basic prioritization
p <- ps_prioritize(ps)
# specifying locations of initial protected areas
# (can be binary, or can be continuous values between 0 and 1)
# here we'll create an `init` raster with arbitrary values ranging from 0-1,
# using the reference raster layer that's part of our `phylospatial` object
protected <- terra::setValues(ps$spatial, seq(0, 1, length.out = 400))
cost <- terra::setValues(ps$spatial, rep(seq(100, 20, length.out = 20), 20))
p <- ps_prioritize(ps, init = protected, cost = cost)
# using probabilistic prioritization
p <- ps_prioritize(ps, init = protected, cost = cost,
method = "prob", n_reps = 1000, max_iter = 10)
terra::plot(p$top10)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.