Skip to contents

Returns the feeding level. By default this function uses mizerFeedingLevel() to calculate the feeding level, but this can be overruled via setRateFunction().

Usage

getFeedingLevel(object, n, n_pp, n_other, time_range, drop = FALSE, ...)

Arguments

object

A MizerParams object or a MizerSim object

n

A matrix of species abundances (species x size).

n_pp

A vector of the resource abundance by size

n_other

A list of abundances for other dynamical components of the ecosystem

time_range

A numeric or character vector of times. Only the range of values matters, so all saved times between min(time_range) and max(time_range) are selected.

drop

If TRUE then any dimension of length 1 will be removed from the returned array.

...

Unused

Value

If a MizerParams object is passed in, returns an ArraySpeciesBySize object (predator species x predator size) with the feeding level. If a MizerSim object is passed in, returns a three-dimensional array (time step x predator species x predator size) with the feeding level at every time step. If drop = TRUE then dimensions of length 1 will be removed from the returned array.

Feeding level

The feeding level \(f_i(w)\) is the proportion of its maximum intake rate at which the predator is actually taking in fish. It is calculated from the encounter rate \(E_i\) and the maximum intake rate \(h_i(w)\) as $$f_i(w) = \frac{E_i(w)}{E_i(w)+h_i(w)}.$$ The encounter rate \(E_i\) is passed as an argument or calculated with getEncounter(). The maximum intake rate \(h_i(w)\) is taken from the params object, and is set with setMaxIntakeRate(). As a consequence of the above expression for the feeding level, \(1-f_i(w)\) is the proportion of the food available to it that the predator actually consumes.

Your own feeding level function

By default getFeedingLevel() calls mizerFeedingLevel(). However you can replace this with your own alternative feeding level function. If your function is called "myFeedingLevel" then you register it in a MizerParams object params with

params <- setRateFunction(params, "FeedingLevel", "myFeedingLevel")

Your function will then be called instead of mizerFeedingLevel(), with the same arguments.

Examples

# \donttest{
params <- NS_params
# Get initial feeding level
fl <- getFeedingLevel(params)
# Project with constant fishing effort for all gears for 20 time steps
sim <- project(params, t_max = 20, effort = 0.5)
# Get the feeding level at all saved time steps
fl <- getFeedingLevel(sim)
# Get the feeding level for years 15 - 20
fl <- getFeedingLevel(sim, time_range = c(15, 20))
# }