Set up parameters for a mizerReef model
newReefParams.RdSets up a multi-species size spectrum model with additional unstructured resource components, senescence mortality, and predation refuge.
Usage
newReefParams(
group_params,
interaction = NULL,
crit_feed = NULL,
min_w_pp = NA,
w_pp_cutoff = 1,
n = 0.75,
new_refuge = FALSE,
method,
method_params,
refuge_user = NULL,
bad_pred = NULL,
satiation = NULL,
a_bar = NULL,
b_bar = NULL,
w_settle = NULL,
max_protect = NULL,
tau = NULL,
degrade = FALSE,
bleach_time = 2,
trajectory = NULL,
deg_scale = 1,
UR_interaction,
carry_capacity = FALSE,
initial_algae_growth = NULL,
algae_capacity = NULL,
detritus_capacity = NULL,
sen_decomp = NULL,
ext_decomp = NULL,
initial_d_external = NULL,
ext_mort_params = NULL,
include_ext_mort = TRUE,
include_sen_mort = TRUE,
z0pre = 0.2,
...
)Arguments
- group_params
A functional group parameter data frame containing at least the name of each functional group, their observed abundances, and the cut-off size for observations in grams.
- interaction
The group specific interaction matrix, \(\theta_{ij}\)
- crit_feed
Critical feeding level
- min_w_pp
Minimum size of plankton in grams
- w_pp_cutoff
Maximum size of plankton in grams
- n
Allometric growth exponent (also used as metabolic exponent p)
- method
The desired method for setting up benthic refuge, can be "sigmoidal", "binned", "competitive", or "noncomplex"
- method_params
A data frame containing values specific to each method for calculating refuge
- refuge_user
A vector of logical values indicating whether each functional group uses refuge, TRUE indicates the group uses refuge while false indicates that they do not. Must be included here if not in the
params@species_paramsdata frame.- bad_pred
Optional. A vector of logical values indicating whether hunting is inhibited by refuge for this functional group. FALSE indicates that this species is able to encounter prey within refuge (e.g. eels). Must be included here if not in the
params@species_paramsdata frame.- satiation
Optional. A vector of logical values indicating whether feeding level should be turned on for this functional group. Must be included here if not in the
params@species_paramsdata frame.- a_bar
Optional. The average length to weight conversion value \(\bar{a}\) and \(\bar{b}\) describe the fish dummies used when counting refuge holes. \(\bar{a}\) defaults to 0.025.
- b_bar
Optional. The average length to weight conversion value \(\bar{a}\) and \(\bar{b}\) describe the fish dummies used when counting refuge holes. \(\bar{b}\) defaults to 3.
- w_settle
Optional. The body weight (g) at which fish settle onto the reef. Fish smaller than this are considered to be larval and thus too small to use predation refuge. Defaults to 0.l grams.
- max_protect
Optional. The maximum proportion of fish (any size class) protected by refuge. Defaults to 0.98.
- tau
Optional. The proportion of fish with access to refuge that actually use it. Defaults to 1.
- bleach_time
The year of the simulation to implement bleaching. Defaults to year 2.
- trajectory
The trajectory for degraded reefs. Options are "rubble", "algae", or "recovery"
- deg_scale
A 2 x 2 array (refuge size x years post bleaching) that gives the values for scaling the refuge density at each size bin. Default scaling matrices for 15 years with the "rubble", "algae", and "recovery" trajectories are included as data objects in the package.
- UR_interaction
Interaction matrix for unstructured resources (species x resource)
- carry_capacity
A boolean value that indicates whether the user wants to implement a carrying capacity for unstructured resources. Defaults to FALSE.
- initial_algae_growth
The initial growth rate of algae in grams/m^2/year. This value is reset to match consumption in the
reefSteady()function so that steady state abundances match given values.- algae_capacity
The carrying capacity of the system for algae biomass in grams per year.
- detritus_capacity
The carrying capacity of the system for detritus biomass in grams per year.
- sen_decomp
The proportion of decomposing mass from senescence mortality that decomposes to become part of the detritus pool. Defaults to 0.8.
- ext_decomp
The proportion of decomposing mass from external mortality that decomposes to become part of the detritus pool. Defaults to 0.2.
- initial_d_external
The rate at which detritus biomass sinks from the pelagic zone and becomes part of the detritus pool in grams per year. This value is reset to make up any differences in consumption and production in the
reefSteady()function so that steady state abundances match observed values.- ext_mort_params
Named list containing desired mortality parameters
- include_ext_mort
A boolean value that indicates whether the user wants to use default external mortality. Defaults to TRUE.
- include_sen_mort
A boolean value that indicates whether the user wants to use default senescence mortality. Defaults to TRUE.
- z0pre
If
include_ext_mortis FALSE, the external mortality rate for each species calculated as z0pre * w_max ^ z0exp. z0exp defaults to 1-n where n is the given allometric scaling exponent and z0pre defaults to 0.2.- ...
Extra parameters to be passed to
newMultispeciesParams()
Adding unstructured resources
mizerReef supports two resource spectra that are not size- structured.
Algae are consumed by herbivorous fish, while detritus is consumed by
herbivorous fish and benthic invertebrates. This function sets the
interaction matrix for these resources as well as any default
parameters necessary to structure them.
The resource interaction matrix \eqn{\theta_{ki}} modifies the
interaction of each functional group \eqn{i} with each unstructured
resource \eqn{k} in the model. This can be used for example to allow
for different diet preferences on each unstructured resource.
Note that interaction with size structured resources, such as
plankton, is still set with the resource_interaction column of
the species parameters dataframe.Senescence mortality
Senescence mortality \eqn{\mu_{sen.i}(w)} is used to represent
mortality caused by background sources such as illness or age. The
rate of senescence mortality (in 1/year) is given by:
\deqn{\mu_{sen.i}(w) = k_{sen}\left(
\frac{log_{10}(w)}{log_{10}(w_{max.i})}
\right)^{p_{sen}}}
{\mu_{sen.i}(w) = k_{sen}
(log_{10}(w)/log_{10}(w_{max.i}))^{p_{sen}}}
where \eqn{k_{sen}} is the rate of senescence mortality, \eqn{p_sen}
defines the slope of the senescence curve, \eqn{w_max.i} maximum body
size of group \eqn{i} in grams.Setting the refuge profile
Refuge profiles account for the protective behavior of prey living in high complexity environments (e.g. coral reefs) with access to predation refuge. The refuge profile defines the proportion of fish within user-defined length bins that are protected from being encountered by a predator.
mizerReef determines how much fish weight a refuge can hold by converting user provided fish length bins to weight bins with average length to weight conversion parameters \(\bar{a}\) and \(\bar{b}\), which describe the length to weight relationship for the fish dummies used during data collection. The default values are \(\bar{a} = 0.025, \bar{b} = 3\). Assuming that fish in shelters are neutrally buoyant, the mass of the largest fish in each size category is proportional to the volume of refuges classified in that category.
A unique refuge profile is generated for each predator group x
prey group x prey size combination based on the given refuge profile
parameters as well as four values from params@species_params: length
to weight conversion values a and b, refuge_user, which is true
for groups utilize that predation refuge, and bad_pred, which is false
for predator groups whose body shape or predatory strategy allow them to
access fish within refuge (e.g. eels).
To ensure some food is always available to predators, the maximum
proportion of fish protected by refuge in any size class is set by
max_protect.
The refuge profile is used when calculating the food encounter rate in
reefEncounter() and the predation mortality rate in reefPredMort().
Its entries are dimensionless values between 0 and 1 which represent the
proportion of fish in the corresponding prey and size categories that are
hidden within refuge and thus cannot be encountered by predators. If no
refuge is available then predator-prey interactions are determined
entirely by size-preference.
The mizerReef package provides three methods to define the refuge profile.
Sigmoidal Method:
This method is preferred for data-poor reefs or reefs where the refuge distribution is unknown. It is also ideal for systems where only one functional group is expected to be utilizing refuge. The proportion of fish with access to refuge \( R_j(w_p) \) is given by$$ R_j(w_p) = \frac{r} {1 + e^{ \left( \Delta (w - W_{refuge}) \right)} }$$
Here \(W_{refuge}\) marks the body weight at which refuge becomes scarcer for prey. \(r\) defines the maximum proportion of fish with access to predation refuge and is always less than or equal to
max_protect. \(\alpha\) controls the rate at which the availability of refuge decreases with increasing body size. It defaults to a steep slope of 100.For this method,
method_paramsshould contain columns namedprop_protectandL_refugethat give the values for \(r\) and the length at which refuge becomes scarce in cm.Binned Method:
This method is appropriate for theoretical applications and does not rely on empirical data. It sets refuge to a constant proportion of fish within a given size range. The proportion of fish in group \(j\) with access to refuge is given by$$ R_j(w_p) = r_k ~~~~~~~ w_p ∈ (~w_{k-1}, w_k~] $$
where \(r_k\) is the proportion of fish with access to refuge in size class \(k\).
For this method,
method_paramsshould contain columns namedstart_Landend_Lwhich contain the starting and ending lengths cm of each size bin andprop_protect, the proportion of fish protected within each corresponding size bin.Competitive Method:
This method is appropriate when refuge density data is available for the modelled reef. The refuge density describes the distribution of refuges \((no./m^2)\) across defined fish body size categories. The proportion of fish in size class \(k\) with access to refuge is given by$$R_{j}(w_p) = \tau \cdot \frac{ \eta_{k} } { \sum_i \int_{w_{k-1}}^{w-k} N_i(w) \, dw}$$
where \( \tau \) is the proportion of fish with access to refuge that are expected to actually utilize it, \( \eta_{k}\) is the density of refuges in size range \((w_{k-1}, w_k]\) and \(\sum_{i} \int_{w_{k-1}}^{w_k} N_i(w)~dw\) gives the density of fish from any group in size range \((w_{k-1}, w_k]\). This represents the density of competitors for refuges in size class \(k\).
For this method,
method_paramsshould contain columns namedstart_Landend_Lwhich contain the starting and ending lengths cm of each size bin andrefuge_density, the number of refuges available in each size bin (no/m^2).
Users can also set a noncomplex reef with no habitat refuge. This option is convenient for finding steady state parameters.
This function checks that the supplied refuge parameters are valid, adds
relevant columns to the species_params data frame, and stores refuge
parameters in the other_params slot of the params object.
Refuge profile parameters can be input in a spreadsheet program and saved
as a .csv file. The data can then be read into R using the command
read.csv().