Calculate selectivity at age and length from a matrix of parameters.
conv_selpar()
converts parameters from log or logit space to real units.calc_sel_len()
calculates selectivity at length.calc_fsel_age()
calculates selectivity at age for fisheries, and coordinates dummy fleets.calc_isel_age()
calculates selectivity at age for indices, and can map selectivity from fisheries or population parameters (e.g, mature or total biomass).
Arguments
- x
Estimated parameters. Matrix
[3, f]
- type
Character string to indicate the functional form of selectivity. Options include:
"logistic_length", "dome_length", "logistic_age", "dome_age"
, an integer (f
) to map index selectivity to the corresponding fleetf
(will be coerced to integer),"SB"
to fix to maturity at age schedule, or"B"
to fix to 1 for all ages.- maxage
Maximum value of the age of full selectivity
- maxL
Maximum value of the length of full selectivity
- sel_par
Matrix of parameters returned by
conv_selpar()
- lmid
Midpoints of length bins for calculating selectivity at length
- sel_len
Selectivity at length matrix returned by
calc_sel_len()
- LAK
Length-at-age probability matrix. Matrix
[a, length(lmid)]
- sel_block
Integer vector. Length
length(type)
. See details below.- mat
Maturity at age vector
- a
Integer vector of ages corresponding to the rows of
LAK
(as well asmat
)- fsel_age
Matrix returned by
calc_fsel_age()
Value
conv_selpar()
returns a matrix of the same dimensions as x
.
calc_sel_len()
returns a matrix [l, f]
, i.e., [length(lmid), length(type)]
.
calc_fsel_age()
returns a matrix [a, f]
, i.e., [a, length(sel_block)]
calc_isel_age()
returns a matrix [a, i]
, i.e., [a, length(type)]
Converting selectivity parameters (conv_selpar)
The first row of x
corresponds to the length or age of full selectivity: \(\mu_f = L_{max}/(1 + \exp(-x_{1,f}))\)
The second row of x
corresponds to the width of the ascending limb for selectivity:
\(\sigma_f^{asc} = \exp(x_{2,f})\)
The third row of x
corresponds to the width of the descending limb for selectivity (if dome-shaped):
\(\sigma_f^{des} = \exp(x_{3,f})\)
Length selectivity (calc_sel_len)
The selectivity at length is $$ s_{\ell} = \begin{cases} \exp(\alpha) & L_{\ell} < \mu_f\\ \exp(\beta) & L_{\ell} \ge \mu_f\\ \end{cases} $$ where \( \alpha = -0.5(L_\ell - \mu_f)^2/(\sigma_f^{asc})^2 \) and \( \beta = -0.5(L_\ell - \mu_f)^2/(\sigma_f^{des})^2 \)
Age selectivity (calc_fsel_age)
The equivalent selectivity at age is converted from the length values (sel_len
) as
$$
s_a = \sum_\ell s_\ell \times \textrm{Prob}(L_{\ell}|a)
$$
If selectivity is explicitly in age units, then the values are directly calculated
from parameters in sel_par
.
Vector sel_block
assigns the output selectivity from a different column of the input matrix
and facilitates time-varying selectivity in time blocks. For example, sel_block[1] <- 2
means
that selectivity values in the first column of the output is based on the second column of the
input matrices (sel_len[, 2]
or sel_par[, 2]
).