# 7.2. New fisheries implementation¶

## 7.2.1. New algorithm¶

A new feature provided by the new fisheries implementation is the consideration of bycatch.

The `fisheries.catch.matrix.file`

parameter provides the location of a CSV file containing \(N_{fisheries}\) lines and \(N_{species}\) columns.

The table provides, for each fisheries, the proportion of each fish biomass that is extracted by the fisherie.

In the example provided in Fig. 7.1, fisherie 7 targets the sole (proportion of 100%) but with 10% of bycatches of plaice and horse mackerel.

Let’s call this proportion matrix \(A_{N_{fisherie}, N_{specie}}\).

The new fishing mortality process, for a given specie \(s\), is done by computing the mortality rate associated with each fisherie:

with \(N_{s, t}\) the number of individuals of species \(s\) and \(F_{s,k}\) the fishing mortality rate.

Note

If the stochastic mortality algorithm is used, the order in which the fisheries are accessed is random.

In the new implementation of fisheries, the fishing mortality rate \(F_{s,k}\) is variable in space, time and depends on the size of the targetted specie:

with \(R_k\) the time varying fishing rate, \(S_k\) the size-dependent multiplication factor and \(Z_k\) the space-dependent multiplication factor, whose calculation is detailed below.

## 7.2.2. Size/Age selectivity¶

In order to take into account the selectivity of the fisheries on the size or age of the focus species, fishing rate are now scaled by a selectivity curve (\(S_k(s)\) factor in equation (7.1)).

First, the user has to define, for each fisherie, which variable will be used to compute
the selectivity (`age`

or `len`

). This is done by filling the
`fisheries.select.var.fisX`

parameter.

Then, the user needs to define which kind of selectivity curve should be used.
This is done by setting the `fisheries.select.curve.fisX`

parameter, which can take three values.

### 7.2.2.1. Step selectivity¶

If `fisheries.select.curve.fisX = step`

, a step like selectivity is used:

with \(x_0\) being the `fisheries.select.l50.fisX`

parameter

### 7.2.2.2. Sigmoid selectivity¶

If `fisheries.select.curve.fisX = sigmo`

, a sigmoid like selectivity is used:

with \(x_0\) being the `fisheries.select.l50.fisX`

parameter,
\(\alpha\) the `fisheries.select.a.fisX`

parameter and
\(\beta\) the `fisheries.select.b.fisX`

parameter.

### 7.2.2.3. Gaussian selectivity¶

If `fisheries.select.curve.fisX = gauss`

, a Gaussian like selectivity is used:

with \(x_0\) being the `fisheries.select.l50.fisX`

parameter and
\(\gamma\) the `fisheries.select.b.fisX`

parameter.

## 7.2.3. Time-variability¶

The time varying fishing rates \(R_k(t)\) (equation (7.1)) can be provided using different methods, which are displayed in Fig. 7.3 (for a 24 time step simulation of 2 years).

The method is set through the `fisheries.rate.method.fisX`

parameter, which can take 5 values.

### 7.2.3.1. Constant¶

If `fisheries.rate.method.fisX = constant`

, a constant fishing rate (`fisheries.rate.const.rate.fisX`

parameter) is applied during the simulation. The model assumes that this fishing rate is a yearly rate and
is converted into a seasonal one (i.e. it is divided by the `ndtPerYear`

variable).

### 7.2.3.2. By year¶

If `fisheries.rate.method.fisX = byyear`

, the user provides the number of different fishing rates per year (`fisheries.rate.periodsperyear.fisX`

parameter) and the associated annual fishing rates (`fisheries.rate.byyear.rate.fisX`

parameter). This fishing rate will be repeated for each simulated year.

In the example below (top right), 4 fishing rates per year are provided. Therefore, the fishing rate is updated every 12 / 4 = 3 time steps (cf. red lines).

### 7.2.3.3. Linear¶

If `fisheries.rate.method.fisX = linear`

, the user provides an initial fishing rate (`fisheries.rate.linear.rate.fisX`

parameter), a slope (`fisheries.rate.linear.slope.fisX`

) and
the number of different annual fishing rates per year (`fisheries.rate.periodsperyear.fisX`

parameter). The fishing rates are computed by using an affine function.

In the example below (middle right), 4 fishing rates per year are provided. Therefore, the fishing rate is updated every 12 / 4 = 3 time steps (cf. red lines).

### 7.2.3.4. Regime shifts¶

If `fisheries.rate.method.fisX = byregime`

, the user defines time-steps of regime shifts (`fisheries.rate.regime.shifts.fisX`

parameter) and their associated annual fishing rates (`fisheries.rate.regime.rates.fisX`

parameter) associated with the regimes. Note that `len(shifts) + 1 = len(rates)`

.

In the example below (bottom left), there are 4 regimes: at time-steps [0, 2], [3-4], [5-14], [15-23] (cf. purple lines).

### 7.2.3.5. By Dt¶

If `fisheries.rate.method.fisX = bydt`

, the user provides a fishing rate for each simulation time-step (`fisheries.rate.bydt.rate.fisX`

).
However, if the number of provided rates is less than the total number of simulation time-steps, the
fishing rate is repeated cyclically.

In the example below (middle left), only 5 rates are provided. These rates will be applied for steps [0-4], [5-9], etc. (cf. blue lines)

Warning

**It is the only case where the fishing rate is assumed to be seasonal. In all other cases, it is assumed
that annual rates are provided**

## 7.2.4. Spatial variablity¶

Another feature that is implemented in the new fisheries implementation is the possibility to define spatial variability in the fishing effort (\(Z_k(x, y, t)\) factor in equation (7.1)).

The spatial variability is managed in the same way as map fishing movements.

A fishing map must be associated with a fisherie index. This is done by setting the
`fisheries.fishmap.find.fmapX`

parameter, which have values ranging from 0 to \(N_{fisheries}-1\).

The user can also provide the years at which the given map is applied (
`fisheries.fishmap.year.min.fmapX`

and
`fisheries.fishmap.year.max.fmapX`

parameters). By default, the start and end simualtion years are used.

The user must also provide the season at which the fishing map is used
(`fisheries.fishmap.season.fmapX`

parameters).

Note

If a map is missing (at a given year or during a given season), it is considered that the fisherie is deactivated.

Finally, the user must provide the CSV file containing the spatial factors (`fisheries.fishmap.file.fmapX`

).

Note

The model automatically normalize the fishing efforts so that their surface weighted means is \(1\).

Let’s call \(M\) the weighted mean of the provided factors:

with \(N_{cell}\) the number of cells within the fisherie area, \(S_k\) the cell surface and \(f_k\) the provided spatial fishing factor.

The new cell factors will be \(f_{k_{new}} = \frac{f_k}{M}\)

For instance, if a fishing area contains 6 cells, with spatial factors of `[1,1,1,2,2]`

, the
new factors will be `[0.71, 0.71, 0.71, 1.43]`

.

If the factors are `[1,1,1,0,0]`

(0 if a MPA overlaps with the fishing area for instance), the new
factors will become `[1.67, 1.67, 1.67, 0, 0]`

, which can be viewed as a uniform redistribution of the fishing effort.