Skip to content

Conditioning a simple single‐stock Operating Model

pacematt edited this page Jan 25, 2024 · 17 revisions

In this first tutorial, we set up a simple single-stock and single-fleet operating model using some sample data provided with the MixME package. You should be familiar with FLR data objects and methods before starting this tutorial, particularly the

We will cover the basic structure required for inputs to a MixME simulation and introduce some of the conditioning functions to help build the operating model. We will then assemble the remaining objects required to run a MixME simulation. For simplicity, we will implement fixed catch advice over the duration of the simulation, so that stock estimation is not required (in reality we will generate perfect observations of the stock that are ignored by the harvest control rule module... but more on that later).

Let's load the necessary libraries and load a sample dataset to condition our first operating model.

## load libraries
library(FLCore)
library(FLFishery)
library(mse)
library(stockassessment)
library(MixME)

## load example data
data("singlestock_MixME_om")

In case anyone is interested, this is haddock (Melanogrammus aeglefinus) and we have stock and catch data for the years 1993 - 2019. These stock and catch data are age-structured and stored in separate FLR objects. The key stock information is stored within slots (numbers n, natural mortality m, stock mean individual weight wt and proportion mature mat) in a named FLBiol object (had), which is in turn nested in a named FLBiols object (stks). The catch information (landings numbers landings.n, landings mean individual weight landings.wt, discards numbers discards.n, discards mean individual weight discards.wt, selectivity catch.sel and catchability catch.q) are stored as a named FLCatch (had) in a named FLFishery (fleet) that is in turn nested in a named FLFisheries object (flts).

This hierarchical structure is extremely convenient because we can nest multiple stocks and fleets. An important note - stocks and their corresponding fleet catches must share same name. In this case both our stock and catch object are called had.

## A list of stks (FLBiols) and flts (FLFisheries)
summary(singlestock_MixME_om)

## Dimensions for each stock and fleet
summary(singlestock_MixME_om$stks)
summary(singlestock_MixME_om$flts)

It's

This dataset is now conditioned and ready to run, but we're going to first look at some of the inputs.