project: Project a FishRAM simulation.

View source: R/simulation_functions.R

projectR Documentation

Project a FishRAM simulation.

Description

Runs the FishRAM model for a specified recruitment scenario. Full details of the model specification can be found in the supporting information of Tidbury et al. (2021), however some details have been extended for this package (see details below).

Usage

project(
  params,
  R,
  t_start = 1,
  t_end = (length(R) + t_start - 1),
  R_init = NULL,
  CLim_func = NULL,
  CLim_alloc = NULL
)

Arguments

params

An object of type BioeconomicParams encoding the model parameters.

R

A numeric of function specifying the recruitment of the stock across the simulation. See details

t_start

The year which forms the start of the simulation. The default is 1.

t_end

The year which forms the end of the simulation. The default is length(R) + t_start - 1

R_init

The initial recruitment value. Only required if R is a function.

CLim_func

The catch limit function. This should be a function of the current stock size that returns the total catch limit across both fleets. The default value is NULL which corresponds to no management of the stock.

CLim_alloc

The catch allocation across both fleets. This should be a numeric of length 2 that sums to 1. The first element should be the proportion of total catch assigned to the commercial fleet, while the second element should be the proportion of total catch assigned to the recreational fleet. The default is NULL - no management.

Details

Recruitment can be specified in 3 ways using different forms of the R parameter:

  • A numeric of length 1, giving the constant recruitment across the duration of the simulation.

  • A numeric of length t_end - t_start + 1, specifying the recruitment at each time step of the simulation.

  • A function which calculates recruitment from the adult stock size at each time step. This function should have exactly one argument (the adult stock size) and return a numeric of length 1. If using a function, the R_init argument should also be passed through to specify the initial recruitment at the start of the simulation.

Value

An object of class BioeconomicSim. See the BioeconomicSim-class help file for a full list of model outputs included in this object.

Model extensions

Mortality reparametrisation. To allow for a larger range of mortalities, the mortality in FishRAM is parametrised differently to the mortality in Tidbury et al. (2021). The stock dynamics for the adult population are instead calculated through

S_{A, t} = \exp(M_A + (1 - \varphi δ)F_{R, t} + (1-Γ η)F_{C, t})S_{A, t-1} + D_{t}S_{J, t}

. With the landings of each fleet now calculated as

L_{R, t} = W_C \frac{(1-δ)F_{R, t}}{M_A + (1 - \varphi δ)F_{R, t} + (1-Γ η)F_{C, t}}S_{A, t}

L_{C, t} = W_C \frac{(1-η)F_{C, t}}{M_A + (1 - \varphi δ)F_{R, t} + (1-Γ η)F_{C, t}}S_{A, t}

This is equivalent to assuming that all mortalities (commercial, recreational, and natural) are applied simultaneously to the adult stock.

Initial values For the first 5 years of the simulation, some quantities relying on the history of simulation are calculated differently, by assuming some values were static prior to the start of the simulation.

  • Number of trips. The number of trips of the commercial fleet T_C depends on the profit of the fleet from 2 years ago. The commercial fleet profit is therefore assumed to be constant before the simulation starts (i.e. for time t <= 0) to ensure that T_C can be calculated for the first 2 years.

  • Maturation. The fraction of juveniles maturing into adults in a given year D_t is estimated from the recruitment values from 5 years previously. Recruitment is therefore assumed to be constant before the start of the simulation so that $D_t$ can be calculated for the first 5 years.

References

Hannah J Tidbury, Angela Muench, Philip D Lamb, Kieran Hyder, Balancing biological and economic goals in commercial and recreational fisheries: systems modelling of sea bass fisheries, ICES Journal of Marine Science, Volume 78, Issue 5, August 2021, Pages 1793-1803

Examples

#loads in the relevant parameters
data("seabass")
sim <- project(params, R = 8606000, t_start = 1990, t_end = 2030)

#Runs the simulation with 20 years of high recruitment followed
#by 20 years of low recruitment
R <- c(rep(23151200, 20), rep(757600, 20))
sim <- project(params, R = R)

#Generates recruitment from a type II functional response
#recruitment function with log Gaussian noise.
rec_func <- function(stock){
  return(
    1.5*stock/(7e-4 + 1.3e-4 * 1.5e-3 * stock)*exp(rnorm(1,mean=0,sd=0.9))
  )
}
sim <- project(params, R = rec_func, t_start = 2010, t_end = 2050, R_init = 1e4)

# Including management strategies
# MSY as calculated by the original Tidbury paper
CLim_func <- function(stock){
return(0.203/(0.203 + 0.24) * stock * (1 - exp(-(0.203 + 0.24))))
}
# All allocated to the commercial fleet
sim <- project(params, R = rec_func, t_start = 2010, t_end = 2050, R_init = 1e4,
              CLim_func = CLim_func, CLim_alloc = c(1,0))
# All allocated to the recreational fleet
sim <- project(params, R = rec_func, t_start = 2010, t_end = 2050, R_init = 1e4,
              CLim_func = CLim_func, CLim_alloc = c(0, 1))
# Allocated equally across both fleets
sim <- project(params, R = rec_func, t_start = 2010, t_end = 2050, R_init = 1e4,
              CLim_func = CLim_func, CLim_alloc = c(0.5,0.5))

CefasRepRes/FishRAM documentation built on Feb. 1, 2023, 1:15 a.m.