Skip to contents

Sets 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_params data 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_params data 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_params data 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()

Value

An object of type MizerParams

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_params should contain columns named prop_protect and L_refuge that 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_params should contain columns named start_Land end_L which contain the starting and ending lengths cm of each size bin and prop_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_params should contain columns named start_Land end_L which contain the starting and ending lengths cm of each size bin and refuge_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().