catchCurveSim {FSATeach}R Documentation

Dynamics plots to explore catch-curve models.


Constucts hypothetical catch-at-age data given choices for a hypothetical population (governed by the initial population size (No) and instantaneous mortality rate (Z)) and fishery (through age at recruitment to the gear and proportional vulnerabilities to the gear). The natual log of catch versus age is plotted (i.e., a catch curve) and slider bars can be used to change population or fisheries parameter values. This function an corresponding dynamics graphic can be used to explore the effects of a parameter on the catch curve and, thus, elucidate the effects of assumption violations.


  catchCurveSim(max.age = 15, v = rep(1, max.age),
    Zycl = FALSE, ZdeltaAge = round(max.age/2, 0),
    NodeltaAge = ZdeltaAge, ZSteady = TRUE,
    NoSteady = ZSteady, recruit.age = 3)



An single numeric integer indicating the oldest age to use in the simulations.


A single vector of length max.age of the proportional vulnerabilities to the gear. See details.


A single logical indicating whether changes in mortality rates are applied to and followed for each year-class or not. See details.


A single numeric that indicates the age at which the mortality rate should change. See details.


A single numeric that indicates the age at which the initial population size should change. See details.


A single logical that indicates whether the change in mortality rate will be steady (=TRUE; default) or not. See details.


A single logical that indicates whether the change in initial population size will be steady (=TRUE; default) or not. See details.


A single numeric indicating what the age at full recruitment should be. See detials.


A catch curve plot that is dynamically linked to a set of slider controls. The user can then alter the population or fishery parameters to see the effect of those changes on the catch curve. Each parameter that can be set or can be altered with the slider bars is described below.

The ‘Z mean’ controls the mean instantaneous mortality rate to use in the simulations. If ‘Z cv’ (see below) is set to 0 then this is the exact mortality rate used in the simulations.

The ‘Z cv’ controls the coefficient of variation (as a proportion, not a percentage) to use when modeling the instantaneous mortality rate. If ‘Z cv’ is set to 0 then no randomization is used. If ‘Z cv’ is greater than 0 then a random normal deviate centered on ‘Z mean’ with a standard deviation of ‘Z cv’*‘Z mean’ is used to model the instantaneous mortality rate.

A simulated change in instantaneous mortality rate is controlled with the ‘Z delta’ slider bar and the ZdeltaAge, and ZSteady arguments. The ‘’ slider controls a proportional adjustment in the mortality rate that begins at ZdeltaAge. The adjustment is a constant proportion through time/ages if ZSteady=TRUE, but grows geometrically if ZSteady=FALSE. For example, if ‘Z mean’ is set to 0.40, ‘Z cv’ is set to 0 (i.e., no variability), ‘Z delta’ is set to 1.2, ZdeltaAge=5, and ZSteady=TRUE then the vector of mortalities used for ages 1 to 10 would be


Alternatively, if all values were the same except that ZSteady=FALSE, then the vector of mortalities used for ages 1 to 10 would be


The simulation code can consider two different tacks when modeling variability in the instantaneous mortality rate. The first tack considers that the mortality rate experienced throughout the existence of each year-class corresponding to ages in the cross-sectional sample older than some defined age was different than all previous year-classes. Simulations using this tack can be used to assess the assumption of a constant mortality rate for all year-classes. The second tack considers that the mortality rate for all ages prior to some defined age was the same for all year-classes but that a different mortality rate for all ages after some defined age for all year-classes should be used. Simulations using this tack can be used to assess the assumption of a constant mortality rate for all ages. Which track is used in a set of simulations is set by the Zycl= argument to the function (and not by a slide bar). If Zcyl=TRUE then the first tack is used.

A set of slider bars are used to control similar aspects of the initial population size (No). ‘No mean’ and ‘No CV’ are the mean and coefficient of variation to be used in the simulations. Changes in the initial population size are simulated with the ‘No delta’ slider and the NodeltaAge and NoSteady arguments. These adjustments are applied in the same manner as described for the instantaneous mortality rate.

The vulnerabilties of each age of fish to the fishing gear can be simulated in one of two ways. If a vector of “1”s is sent in the v argument (this is the default) then the fish in all ages after the recruitment age (which is selected with a slider bar) are fully and equally vulnerable to the gear. Fish in age-classes prior to the age of recruitment are modeled by a linear increase in proportional vulnerability from a value of 0.1 to 1 (for the age at recruitment). A wider variety of changes in vulnerabilities can be modeled by sending various vectors of proportional vulnerabilities for each age in the simulation. For example, if 10 ages are modeled, then the vector c(0.1,0.3,0.6,1,1,1,0.8,0.6,0.4,0.2) could be used to model incomplete vulnerabilities prior to age 4, complete vulnerablities from age 4 to age 6, and then incomplete vulnerabilities for age 7 and older. If the vector of vulnerabilities sent does not contain all “1”s then a recruitment age slider will not be available.


None. A slide controlled dynamic graphic with the following description is produced. The catch curve graphic is shown for as many as three lines. The gray line is the catch-at-age data for the default values (the initial values when the simulation was begun). This line is used simply as a basis for examining parameter changes. The blue line is the catch-ag-age data for current choices of ‘Z.mean’, ‘’, ‘No.mean’, and ‘’, but not for any of the other choices (i.e., no change in the ‘delta’ values). In other words, the blue line reflects the model for other than default parameter choices but WITHOUT any assumption violations. This line serves as a basis for different parameter choices without assumption violations. The red line is the catch-at-age data for all current choices of parameters in the slider box. The lines are plotted in the order of “gray”, “red”, “blue” so, if any two are equal then the color first plotted will not be seen.


The range of values allowed for each of the parameters was chosen to allow a wide variety of modeling opportunities. However, it is highly likely that these ranges do not encompass every possible set of values that a user may wish to view. Thus, this function is more useful as a learning tool rather than a research simulation tool.

See Also



if (interactive()) {
## default modeling

## modeling with custom vulnerabilities

} # end if interactive

[Package FSATeach version 0.0.1 Index]