TropFishR (version 1.6.2)

VPA: Virtual Population Analysis (VPA)

Description

This function applies the Virtual Population Analysis (VPA) or Cohort analysis (CA). Methods used to estimate stock biomass and fishing mortality per age/length group.

Usage

VPA(
  param,
  catch_columns = NA,
  catch_unit = NA,
  catch_corFac = NA,
  terminalF = NA,
  terminalE = NA,
  analysis_type = "VPA",
  algorithm = "new",
  plus_group = TRUE,
  plot = FALSE
)

Arguments

param

a list consisting of following parameters:

  • midLengths or age: midpoints of the length class (length-frequency data) or ages (age composition data),

  • Linf: infinite length for investigated species in cm [cm],

  • K: growth coefficent for investigated species per year [1/year],

  • t0: theoretical time zero, at which individuals of this species hatch,

  • M: natural mortality [1/year] (numeric value or vector of identical length than midLengths),

  • a: length-weight relationship coefficent (W = a * L^b; for kg/cm3),

  • b: length-weight relationship coefficent (W = a * L^b),

  • catch: catch as vector for pseudo cohort analysis, or a matrix with catches of subsequent years to follow a real cohort. For age-based VPA/CA catch has to be provided in numbers, e.g. '000 individuals for length-based VPA/CA catch can also be provided in weight, e.g. kg (use argument catch_unit).

catch_columns

numerical; indicating the column of the catch matrix which should be used for the analysis.

catch_unit

optional; a character indicating if the catch is provided in weight ("tons" or "kg") or in thousand individuals ("'000")

catch_corFac

optional; correction factor for catch, in case provided catch does spatially or temporarily not reflect catch for fishing ground of a whole year.

terminalF

the fishing mortality rate of the last age/length group.

terminalE

the exploitation rate of the last age/length group.

analysis_type

determines which type of assessment should be done, options: "VPA" for age or length-based Virtual Population Analysis, "CA" for age- or length-based Cohort Analysis. Default is "VPA".

algorithm

an Algorithm to use to solve for fishing mortality. The default setting "new" uses optimise, while "old" uses the algorithm described by Sparre and Venema (1998).

plus_group

logical; indicating if the last length group is a plus group (default: TRUE).

plot

logical; indicating whether a plot should be printed

Value

A list with the input parameters and following list objects:

  • classes.num: numeric age classes or length groups (without plus sign),

  • catch.cohort: a vector with the catch values which were used for the analysis (exists only if catch was a matrix),

  • FM_calc: a vector with the ifshing mortality (M),

  • Z: a vector with the total mortality (Z),

  • survivors: a vector with the number of fish surviving to the next age class or length group (same unit than input catch vector),

  • annualMeanNr: ta vector with the mean number of fish per year (same unit than input catch vector),

  • meanBodyWeight: a vector with the mean body weight in kg,

  • meanBiomassTon: a vector with the mean biomass in tons,

  • YieldTon: a vector with the yield in tons,

  • natLoss: a vector with the number of fish died due to natural mortality,

  • plot_mat: matrix with rearranged survivors, nat losses and catches for plotting;

Details

The main difference between virtual population analysis (VPA) and cohort analysis (CA) is the step of calculating the fishing mortality per age class or length group. While CA works with an approximation by assuming that all fish are caught during a single day, which makes the calcualtion easier, VPA assumes that the fish are caught continuously, which has to be solved by the trial and error method (Sparre and Venema, 1998). For the age-based VPA/CA the catch has to be provided in numbers (or '000 numbers), while for the length-based VPA/CA the catch can also be provided in weight (tons or kg) by using the argument catch_unit. The catch has to be representative for fished species, that means there should not be other fisheries fishing the same stock. If this is the case catch_corFac can be used as a raising factor to account for the proportion of fish caught by other fisheries. When the model should follow a real cohort instead of a pseudo cohort, catch has to be provided as matrix. The model then starts to follow the first age class in the first column. If catch matrix is shorter than the number of age classes, the age or length classes without catch information are omitted. It is recommended to only follow a real cohort if there is enough information for all age classes (test with: dim(catch)[1] <= dim(catch)[2]). If plus_group is TRUE a different calculation for the survivors of the last length group is used (for more details please refer to Sparre & Venema (1998)).

References

Jones, R., 1984. Assessing the effects of changes in exploitation pattern using length composition data (with notes on VPA and cohort analysis). FAO Fish.Tech.Pap., (256): 118p.

Jones, R., 1990. Length-cohort analysis: the importance of choosing the correct growth parameters. Journal du Conseil: ICES Journal of Marine Science, 46(2), 133-139

Pope, J.G., 1972. An investigation of the accuracy of virtual population analysis using cohort analysis. Res.Bull.ICNAF, (9):65-74

Pope, J.G., 1979. A modified cohort analysis in which constant natural mortality is replaced by estimates of predation levels. ICES C.M. 1979/H:16:7p. (mimeo)

Sparre, P., Venema, S.C., 1998. Introduction to tropical fish stock assessment. Part 1. Manual. FAO Fisheries Technical Paper, (306.1, Rev. 2). 407 p.

References for weight-length relationship parameters (a & b): Dorel, D., 1986. Poissons del'Atlantique nord-est relations taille-poids. Institut Francais de Recherche pour l'Exploitation de la Mer. Nantes, France. 165 p.

Examples

Run this code
# NOT RUN {
#_______________________________________________
# Virtual Popuation Analysis with age-composition data
data(whiting)
output <- VPA(param = whiting, catch_columns = 1, terminalE = 0.5, analysis_type = "VPA")
plot(output)
#_______________________________________________
# Pope's Cohort Analysis with age-composition data
data(whiting)
VPA(whiting, terminalE = 0.5, catch_columns = 3, analysis_type = "CA",
   plot= TRUE, plus_group = TRUE)

#_______________________________________________
# Virtual population analysis with length-composition data
data(hake)
VPA(hake, terminalE = 0.5, analysis_type = "VPA", plot = TRUE,
    catch_unit = "'000", plus_group = TRUE)
#_______________________________________________
# Jones's Cohort Analysis with length-composition data
data(hake)
VPA(hake, terminalE = 0.5, analysis_type = "CA", plot = TRUE,
   catch_unit = "'000", plus_group = TRUE)

# }

Run the code above in your browser using DataLab