Get the total fishing mortality rate from all fishing gears by time, species and size.
Source:R/rate_functions.R
getFMort.Rd
Calculates the total fishing mortality (in units 1/year) from all gears by
species and size and possibly time. See setFishing()
for details of
how fishing gears are set up.
Arguments
- object
A
MizerParams
object or aMizerSim
object- effort
The effort of each fishing gear. Only used if the object argument is of class
MizerParams
. See notes below.- time_range
Subset the returned fishing mortalities by time. The time range is either a vector of values, a vector of min and max time, or a single value. Default is the whole time range. Only used if the
object
argument is of typeMizerSim
.- drop
Only used when object is of type
MizerSim
. Should dimensions of length 1 be dropped, e.g. if your community only has one species it might make presentation of results easier. Default is TRUE.
Value
An array. If the effort argument has a time dimension, or object is
of class MizerSim
, the output array has three dimensions (time x
species x size). If the effort argument does not have a time dimension, the
output array has two dimensions (species x size).
The effort
argument is only used if a MizerParams
object is
passed in. The effort
argument can be a two dimensional array (time x
gear), a vector of length equal to the number of gears (each gear has a
different effort that is constant in time), or a single numeric value (each
gear has the same effort that is constant in time). The order of gears in the
effort
argument must be the same as in the MizerParams
object.
If the object argument is of class MizerSim
then the effort slot of
the MizerSim
object is used and the effort
argument is not
used.
Details
The total fishing mortality is just the sum of the fishing mortalities imposed by each gear, \(\mu_{f.i}(w)=\sum_g F_{g,i,w}\). The fishing mortality for each gear is obtained as catchability x selectivity x effort.
Your own fishing mortality function
By default getFMort()
calls mizerFMort()
. However you can
replace this with your own alternative fishing mortality function. If
your function is called "myFMort"
then you register it in a MizerParams
object params
with
Your function will then be called instead of mizerFMort()
, with the
same arguments.
See also
Other rate functions:
getEGrowth()
,
getERepro()
,
getEReproAndGrowth()
,
getEncounter()
,
getFMortGear()
,
getFeedingLevel()
,
getMort()
,
getPredMort()
,
getPredRate()
,
getRDD()
,
getRDI()
,
getRates()
,
getResourceMort()
Examples
# \donttest{
params <- NS_params
# Get the total fishing mortality in the initial state
F <- getFMort(params, effort = 1)
str(F)
#> num [1:12, 1:100] 0 0 0 0 0 0 0 0 0 0 ...
#> - attr(*, "dimnames")=List of 2
#> ..$ sp: chr [1:12] "Sprat" "Sandeel" "N.pout" "Herring" ...
#> ..$ w : chr [1:100] "0.001" "0.00119" "0.00142" "0.0017" ...
# Get the initial total fishing mortality when effort is different
# between the four gears:
F <- getFMort(params, effort = c(0.5,1,1.5,0.75))
# Get the total fishing mortality when effort is different
# between the four gears and changes with time:
effort <- array(NA, dim = c(20,4))
effort[, 1] <- seq(from = 0, to = 1, length = 20)
effort[, 2] <- seq(from = 1, to = 0.5, length = 20)
effort[, 3] <- seq(from = 1, to = 2, length = 20)
effort[, 4] <- seq(from = 2, to = 1, length = 20)
F <- getFMort(params, effort = effort)
str(F)
#> num [1:20, 1:12, 1:100] 0 0 0 0 0 0 0 0 0 0 ...
#> - attr(*, "dimnames")=List of 3
#> ..$ time: NULL
#> ..$ sp : chr [1:12] "Sprat" "Sandeel" "N.pout" "Herring" ...
#> ..$ w : chr [1:100] "0.001" "0.00119" "0.00142" "0.0017" ...
# Get the total fishing mortality using the effort already held in a
# MizerSim object.
sim <- project(params, t_max = 20, effort = 0.5)
F <- getFMort(sim)
F <- getFMort(sim, time_range = c(10, 20))
# }