Applies a given matrix of effort by patch and fleet to determine the
potential returns from fishing without modifying the underlying population.
This is an exploratory step used internally by simmar to
build the "buffet" that allocate_effort uses for spatial
effort reallocation.
Arguments
- e_p_fl
Numeric matrix of effort by patch (rows) and fleet (columns), with column names matching fleet names. Typically the current step's effort matrix from
simmar.- fauna
Named list of fauna objects from
create_critter.- n_p_a
Named list (one element per species in
fauna) of numbers-at-age matrices[patch, age], representing the current population state to fish against. Typically extracted fromsim[[step]][[critter]]$n_p_a.- fleets
Named list of fleet objects from
create_fleet.- groupers
Character vector. Grouping columns for tidy output format (default:
c("fleet", "patch")). Ignored whenoutput_format = "matrix".- output_format
Character. Output format:
"tidy"(default) Returns a list of tidy data frames with species summed across and effort joined.
"matrix"Returns a list of patches x fleets matrices (species summed). Designed for direct use with
allocate_effort. Substantially faster.
Value
A named list with six elements, each summed across species:
c_p_flCatch by patch and fleet
r_p_flRevenue by patch and fleet
prof_p_flProfit by patch and fleet
cpue_p_flCatch per unit effort (
NAwhere effort = 0)rpue_p_flRevenue per unit effort (
NAwhere effort = 0)ppue_p_flProfit per unit effort (
NAwhere effort = 0)
Format of each element depends on output_format.
Details
go_fish runs a single, movement-free time step (move_fish = 0)
for each critter in fauna using the supplied population state
n_p_a, then aggregates catch, revenue, and profit across species
via aggregate_yields.
The function is also useful for "what-if" analyses: you can probe the revenue surface under different effort distributions before committing to a simulation run.
Examples
if (FALSE) { # \dontrun{
# Probe the revenue surface under current effort
n_p_a_now <- lapply(fauna, function(cr) cr$n_p_a_0)
buffet <- go_fish(e_p_fl, fauna, n_p_a_now, fleets, output_format = "matrix")
# Use with allocate_effort to redistribute effort spatially
result <- allocate_effort(
effort_by_patch = e_p_fl,
buffet = buffet,
fleets = fleets,
open_patch = open_patches
)
} # }