View source: R/spec_interp_area_targets.R
| spec_interp_area_targets | R Documentation |
Specify targets by interpolating them between area-based thresholds.
Briefly, this method involves
(i) setting target thresholds for rare features to a particular percentage
threshold, (ii) setting target thresholds for common features
to a particular percentage threshold, and (iii) interpolating
target thresholds for features with spatial distributions that
range between the those for the rare and common features.
Additionally, features can (optionally) have their targets capped at a
particular threshold.
This method is especially useful for setting targets based on
interpolation procedures when features have data expressed as an area-based
unit of measurement (e.g., km2).
Note that this function is designed to be used with add_auto_targets()
and add_group_targets().
spec_interp_area_targets(
rare_area_threshold,
rare_relative_target,
rare_area_target,
rare_method,
common_area_threshold,
common_relative_target,
common_area_target,
common_method,
cap_area_target,
interp_method,
area_units
)
rare_area_threshold |
|
rare_relative_target |
|
rare_area_target |
|
rare_method |
|
common_area_threshold |
|
common_relative_target |
|
common_area_target |
|
common_method |
|
cap_area_target |
|
interp_method |
|
area_units |
|
This method has been applied to set target thresholds at global and national scales (e.g., Butchart et al. 2015; Rodrigues et al. 2004; Polak et al. 2015). It is based on the rationale that species with a smaller geographic distribution are at a greater risk of extinction, and so require a larger percentage of their geographic distribution to be represented by a prioritization (Rodrigues et al. 2004). When using this method in a planning exercise, it is important to ensure that the threshold parameters reflect the stakeholder objectives. Additionally, the threshold parameters may need to set according to the spatial extent of the planning region.
An object (TargetMethod) for specifying targets that
can be used with add_auto_targets() and add_group_targets()
to add targets to a problem().
This method provides a flexible approach for setting target thresholds based
on an interpolation procedure and the spatial extent of the features.
To express this mathematically, we will define the following terminology.
Let f denote the total spatial extent of a feature (e.g., geographic
range size),
a the threshold for identifying rare features
(per rare_area_threshold and area_units),
b the relative targets for rare features
(per rare_relative_target),
c the area-based targets for rare features
(per rare_area_target and area_units),
d() the function for calculating targets for rare features
as a maximum or minimum value (per rare_method),
e the threshold for identifying common features
(per common_area_threshold and area_units),
g the relative targets for common features
(per common_relative_target),
h the area-based targets for common features
(per common_area_target and area_units),
i() the method for calculating targets for common features
as a maximum or minimum value (per common_method), and
j the target cap (per cap_area_target and area_units), and
k() the interpolation method for features with a spatial distribution
that is larger than a rare features and smaller than a common feature
(per interp_method).
In particular, k() is either a linear or log-linear interpolation
procedure based on the thresholds for identifying rare and common features
as well as the relative targets for rare and common features.
Given this terminology, the target threshold (t) for the feature
is calculated as follows.
If f < a, then
t = min(d(c, b \times f), j).
If f > e, then
t = min(i(h, g \times f), j).
If a \leq f \leq e, then
t = min(k(f, a, b, e, g), j).
This function involves calculating targets based on the spatial extent
of the features in x.
Although it can be readily applied to problem() objects that
have the feature data provided as a terra::rast() object,
you will need to specify the spatial units for the features
when initializing the problem() objects if the feature data
are provided in a different format. In particular, if the feature
data are provided as a data.frame or character vector,
then you will need to specify an argument to feature_units when
using the problem() function.
See the Examples section of the documentation for add_auto_targets()
for a demonstration of specifying the spatial units for features.
Butchart SHM, Clarke M, Smith RJ, Sykes RE, Scharlemann JPW, Harfoot M, Buchanan GM, Angulo A, Balmford A, Bertzky B, Brooks TM, Carpenter KE, Comeros‐Raynal MT, Cornell J, Ficetola GF, Fishpool LDC, Fuller RA, Geldmann J, Harwell H, Hilton‐Taylor C, Hoffmann M, Joolia A, Joppa L, Kingston N, May I, Milam A, Polidoro B, Ralph G, Richman N, Rondinini C, Segan DB, Skolnik B, Spalding MD, Stuart SN, Symes A, Taylor J, Visconti P, Watson JEM, Wood L, Burgess ND (2015) Shortfalls and solutions for meeting national and global conservation area targets. Conservation Letters, 8: 329–337.
Polak T, Watson JEM, Fuller RA, Joseph LN, Martin TG, Possingham HP, Venter O, Carwardine J (2015) Efficient expansion of global protected areas requires simultaneous planning for species and ecosystems. Royal Society Open Science, 2: 150107.
Rodrigues ASL, Akçakaya HR, Andelman SJ, Bakarr MI, Boitani L, Brooks TM, Chanson JS, Fishpool LDC, Da Fonseca GAB, Gaston KJ, Hoffmann M, Marquet PA, Pilgrim JD, Pressey RL, Schipper J, Sechrest W, Stuart SN, Underhill LG, Waller RW, Watts MEJ, Yan X (2004) Global gap analysis: priority regions for expanding the global protected-area network. BioScience, 54: 1092–1100.
Other target setting methods:
spec_absolute_targets(),
spec_area_targets(),
spec_duran_targets(),
spec_interp_absolute_targets(),
spec_jung_targets(),
spec_max_targets(),
spec_min_targets(),
spec_polak_targets(),
spec_pop_size_targets(),
spec_relative_targets(),
spec_rl_ecosystem_targets(),
spec_rl_species_targets(),
spec_rodrigues_targets(),
spec_rule_targets(),
spec_ward_targets(),
spec_watson_targets(),
spec_wilson_targets()
## Not run:
# set seed for reproducibility
set.seed(500)
# load data
sim_complex_pu_raster <- get_sim_complex_pu_raster()
sim_complex_features <- get_sim_complex_features()
# create problem with interpolated targets.
# here, targets will be set as 100% for features smaller than 1000 km^2
# in size, 10% for features greater than 250,000 km^2 in size,
# log-linearly interpolated for features with an intermediate range size,
# and capped at 1,000,000 km^2
p1 <-
problem(sim_complex_pu_raster, sim_complex_features) %>%
add_min_set_objective() %>%
add_auto_targets(
method = spec_interp_area_targets(
rare_area_threshold = 1000,
rare_relative_target = 1,
rare_area_target = NA, # not used
rare_method = "max", # not used
common_area_threshold = 250000,
common_relative_target = 0.1,
common_area_target = NA, # not used
common_method = "max", # not used
cap_area_target = 1000000,
interp_method = "log10",
area_units = "km^2"
)
) %>%
add_binary_decisions() %>%
add_default_solver(verbose = FALSE)
# solve problem
s1 <- solve(p1)
# plot solution
plot(s1, main = "solution", axes = FALSE)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.