## Warning: replacing previous import 'ggplot2::%+%' by
## 'FLCore::%+%' when loading 'ggplotFL'


FLasher is an FLR package for performing stochastic projections of fish populations and fisheries through time. It is a sequel to an older package FLash that has been widely used for projecting FLStock objects. It is anticpated that FLasher eventually replaces FLash. The interfaces are almost the same so moving existing scripts from using FLash to FLasher should be straightforward.

The main differences betwen FLasher and FLash are:

  • As well as performing projections on single FLStock objects, FLasher can perform projections on a pair of FLBiol(s) and FLFishery(ies) objects to simulate mixed fishery interactions.
  • FLasher can operate on a seasonal as well an annual timestep.
  • FLasher is built using the CppAD library, whereas FLash was build using ADOLC (this should be invisible to the user).

Basic principles

A projection is controlled by a fwdControl object. This determines how long the projection runs for, and what targets the projection attempts to hit along the way.

When projecting with FLBiol(s) and FLFishery(ies) objects, the fishing efforts of the FLFishery(ies) in each timestep are found to hit the target.

Projecting with an FLStock is the equivalent of projecting with a single FLBiol and FLFishery (this is what happens internally). When an FLStock is being projected, the Fmultiplier in each step is found that hits the target (the assumption is made that effort and F are linearly related).

Moving from FLash to FLasher

If you are moving from using FLash to FLasher there are a few basic things to note.

The first thing to note is argument names to the fwd() function. The projection is still run using the fwd() function. The FLStock argument can still be unnamed if it is passed in as the first argument. However, the fwdControl argument must now be named as control. Additionally, the name of the sr.residuals argument is now deviances

# Will not work
out <- fwd(stock, control, sr = srrbits, sr.residuals = residuals)
# Will work
out <- fwd(stock, control = control, sr = srrbits, deviances = deviances)

The second thing is that when making the fwdControl object the names of the some of the columns has changed. The quantity column is now called quant. The val column is now called value.

Other differences relate to the way some calculations are carried out and will be presented below.

Where to start

See the tutorials at the FLR website:

  • The tutorial on running medium term projections with an FLStock.
  • The tutorial on setting stock recruitment for FLasher projections.
  • The tutorial on performing mixed fisheries projections with FLasher.
  • The tutorial vignette on using the FLasher plugin for accessing Automatic Differentiation capabilities in R and other nerdy things.

More details of the internal workings of FLasher can be found in the vignette FLasher reference manual.