Data inputs for single species CEATTLE of the Bering Sea from 1979 to 2017
Source:R/data.R
BS2017SS.RdA data list of inputs for the single-species Eastern Bering Sea CEATTLE model (walleye pollock, Pacific cod, and arrowtooth flounder), covering 1979-2017.
Format
Control
- nspp
Number of species included in CEATTLE
- styr
Start year of the hindcast
- endyr
End year of the hindcast
- projyr
End year of the forecast
- nsex
Number of sexes to model in the population (1 = sexes combined, 2 = females and males modeled separately)
- spawn_month
Spawning month of the population to adjust the numbers spawning
- R_sexr
Percent of recruitment that is female (ignored if nsex = 1)
- nages
Number of ages of each species included in the hindcast
- minage
Minimum age for each population (i.e. does recruitment correspond to age 0, 1, 2?)
- nlengths
Number of lengths of each species included in the hindcast
- pop_wt_index
Weight-at-age (weight) index to use for calculation of each species population derived quantities (SSB, Consumption/Ration, Suitability, etc)
- ssb_wt_index
Weight-at-age index used to compute each species' female spawning-stock biomass (SSB)
- pop_age_transition_index
Age transition matrix (e.g. growth trajectory) index to use for derived quantities of the population to convert age to length (also used in length-based predation estimation)
- sigma_rec
Standard deviation of the log-scale recruitment deviations (fixed, or an initial value if estimated)
- other_food
Other food in the ecosystem for each species, in metric tons: it is summed into the available-food denominator beside numbers-at-age (thousands) times weight-at-age (kg)
- estDynamics
Estimate or fix numbers-at-age. Accepts integer codes or the equivalent readable strings: 0 / "Estimated" = estimate dynamics; 1 / "Fixed" = use input numbers-at-age in NByageFixed; 2 / "FixedScaled" = multiply input numbers-at-age (NByageFixed) by a single scaling coefficient, estimated under predation (msmMode > 0) and fixed at 1 otherwise.
- M1_model
Estimate residual (multi-species mode) or total natural mortality (single-species mode). 0 = use fixed natural mortality from M1_base, 1 = estimate sex- and age-invariant M1, 2 = sex-specific (two-sex model), age-invariant M1, 3 = estimate sex- and age-specific M1.
- fleet_control
Survey and fishery data specifications
- index_data
Survey index in weight (mt) or numbers (thousands of fish) data. The
Observationcolumn is on the NATURAL scale in the unitsfleet_control$Observation_unitsnames, never a log: the likelihood takes the log itself, and a fitted observation must be positive. A negativeYearpredicts the row without fitting it.- index_cov
Optional named list of survey-index variance-covariance matrices, keyed by Fleet_name (or Fleet_code), used only by fleets whose fleet_control
Index_distribution == "MVN". Each matrix must be square and symmetric with dimension equal to the number of fitted survey observations for that fleet (Year instyr:endyr, Observation > 0), ordered as in index_data. Inverted once internally to the precision matrix used in 0.5 * r' Sigma^-1 r. Leave unset for the default lognormal likelihood.- catch_data
Total catch in weight (mt) or numbers (thousands of fish) data
- comp_data
Survey/fishery age or length composition data. Note if sex is 3, put female composition data then male composition data (similar to SS).
- emp_sel
Empirical/fixed selectivity for surveys and fisheries (leave empty if not used)
- age_trans_matrix
Age transition matrix (e.g. growth trajectory) used to convert age to length for length comp data. Can have multiple matrices for a species specified by Age_transition_index.
- age_error
Ageing error matrices, one row per true age. One per species by default; give several and select them per fleet with the 'Ageing_error_index' column of both this table and
fleet_control.- weight
Weight-at-age (weight) to use for calculation of derived quantities (SSB, Consumption/Ration, Suitability, Total Catch, Survey Biomass, etc). Can have multiple weight-at-age data-sets for each species, but must be full for all years of the hindcast.
- maturity
Maturity-at-age for each species
- sex_ratio
Percent female at age for each species
- M1_base
Residual natural mortality for each species
- aLW
Parameters for weight-at-length power function for each species. Used when estimating time-variant length-based gamma suitability (suitMode = 2) or time-variant length-based lognormal suitability (suitMode = 5)
- Ceq
Which bioenergetics equation to use for each species for ft to scale max consumption: 1 = Exponential (Stewart et al 1983), 2 = Temperature-dependence for warm-water species (Kitchell et al 1977; sensu Holsman et al 2015), 3 = temperature dependence for cool and cold-water species (Thornton and Lessem 1979)
- Cindex
Which environmental index in env_data to use to drive bioenergetics
- Pvalue
This scales the maximum consumption used for ration for each species; Pvalue is in CmaxfTPvalue*ration_data
- fday
Number of foraging days per year for each species
- CA
Intercept of allometric mass function for calculating maximum consumption: CA * Weight ^ CB
- CB
Slope of allometric mass function for calculating maximum consumption: CA * Weight ^ CB
- Qc
Parameter for temperature scaling function of maximum consumption specified by Ceq
- Tco
Parameter for temperature scaling function of maximum consumption specified by Ceq
- Tcm
Parameter for temperature scaling function of maximum consumption specified by Ceq
- Tcl
Parameter for temperature scaling function of maximum consumption specified by Ceq
- CK1
Parameter for temperature scaling function of maximum consumption specified by Ceq
- CK4
Parameter for temperature scaling function of maximum consumption specified by Ceq
- env_data
Environmental indices such as bottom temperature data to incorporate into ration equation specified by Ceq and Cindex. Also used to drive catchability if Catchability = 5. Will use the mean for missing years. Temperature should be in Celsius.
- ration_data
Annual relative foraging rate by age or input consumption at age. Multiplied by pvalue and fday to scale maximum consumption to the number of days in a year that foraging occurs.
- UobsWtAge
Stomach proportion by weight for each predator, prey, predator age, prey age combination. Can also be year specific by including the column, "Year"
fleet_control: controls for survey and fisheries data
- Fleet_name
Name of survey or fishery
- Fleet_code
Index of survey/fishery ACROSS species
- Fleet_type
0 or 'Off' = Do not estimate; 1 = 'Fishery'; 2 = 'Survey'
- Species
Species number
- Selectivity_index
Index used to give fleets the same selectivity (otherwise, same as Fleet_code). Fleets sharing a value share one selectivity parameter block, with its penalties and priors accumulated once on the group's first non-Off fleet. Sharing the parameters is not enough on its own: the columns that shape the curve are read per fleet and must agree across the group, or the fleets end up with different selectivities.
data_check()reports any that differ. To mirror a fleet, copy its fleet_control row and change only the identity and catchability columns. Seevignette("model-options-and-functionality").- Selectivity
Selectivity form: 0 = "Fixed"; 1 = "Logistic"; 2 = "NonParametric" (Ianelli et al. 2018); 3 = "DoubleLogistic"; 4 = "DescendingLogistic"; 5 = "Hake" non-parametric (Taylor et al. 2014); 6 = "2DAR1"; 7 = "3DAR1" (Cheng et al. 2024); 8 = "DoubleNormal"; 9 = "NonParametricPM" (non-parametric random walk with penalized increments, AMAK "pm"; not integrable under random_sel); 11 = "LogisticPM" (logistic with a free age-1 selectivity, AMAK "pm"); 13 = "NonParametricIntegrable" (the Ianelli base curve whose deviations have a proper density, so random_sel integrates them; Time_varying_sel picks the structure: "Off", "IID" or "RandomWalk"); 15 = "DoubleNormalSS3" (Stock Synthesis size pattern 24, six parameters on SS3's scales, varied through selectivity linkages). Whether a form is age- or length-based is set by Selectivity_dimension.
- Selectivity_dimension
"Age" or "Length".
- N_sel_bins
Number of bins (ages or length bins) to estimate for non-parametric selectivity.
- Time_varying_sel
Whether a time-varying selectivity should be estimated. 0 = "Off"; 1 = "IID" penalized deviates given
Time_varying_sel_sd, or random effects with that sd estimated underrandom_sel; 2 = "AR1" REMOVED in 5.16.0, it was scored as "IID", sodata_check()errors on it; use "IID" for the same fit, orlinkage_spec(~ ar1(1 | Year))for a real one; 3 = "Block" time blocks with no penalty; 4 = "RandomWalk" following Dorn; 5 = "RandomWalkAscending" on the ascending limb of double logistic only.- Time_varying_sel_sd
The fixed or initial sd to use for time varying selectivity; always required by the 2DAR1 and 3DAR1 forms.
- Sel_start_year
First year the fleet's time-varying selectivity deviations are estimated and penalized. Deviations before this year are fixed at 0: they have no data and no penalty (the selectivity penalties are anchored at this year), so estimating them would leave unidentified flat directions. Defaults to the earliest year of data across all fleets sharing the fleet's
Selectivity_index(fleets sharing an index share one selectivity curve), bounded below bystyr. Only used for time-varying selectivity; set explicitly to override.- Bin_first_selected
Age/length bin at which selectivity is non-zero
- Sel_shape_sd, Sel_curvature_sd, Sel_devmag_sd
Selectivity penalties expressed as standard deviations (an intuitive alternative to the raw penalty weights in Sel_curve_pen1/2/3). Each penalty is a Gaussian SSQ, so the weight is
1 / (2 * sd^2): Sel_shape_sd is the shape/smoothness penalty (Sel_curve_pen1), Sel_curvature_sd the 2nd-difference curvature penalty (Sel_curve_pen2), Sel_devmag_sd the deviation-magnitude penalty (Sel_curve_pen3). Supplying an SD sets the corresponding Sel_curve_pen column; a legacy Sel_curve_pen value is never overwritten. Sel_shape_sd applies to NonParametric (2/9/13) and LogisticPM (11), Sel_devmag_sd to "NonParametricPM" (9) and "LogisticPM" (11) only, the slot being unread by "NonParametric" (2) and "NonParametricIntegrable" (13); Sel_curvature_sd is NonParametric-only (2/9/13; LogisticPM does not use Sel_curve_pen2). The 2DAR1/3DAR1 forms reuse Sel_curve_pen for logit-scale correlations and keep those columns.- Sel_shape_dir
Direction of the shape penalty when Sel_shape_sd is used: "Decreasing" (default, penalize decreasing selectivity) or "Increasing" (sets the sign of Sel_curve_pen1). Only "NonParametricPM" (9) with Sel_shape_mode = "Directional" branches on the sign; every other form, that one under "Smooth" included, applies Sel_curve_pen1 as written, so "Increasing" is refused there rather than negating it.
- Sel_curve_pen1
Raw shape/smoothness penalty weight for non-parametric (type 2/9/13) and LogisticPM (11) selectivity. The intuitive alternative is Sel_shape_sd, which sets this to
1 / (2 * sd^2). The 2DAR1/3DAR1 forms reuse this column as a logit-scale correlation.- Sel_curve_pen2
Raw 2nd-difference curvature penalty weight for non-parametric selectivity (the intuitive alternative is Sel_curvature_sd). Reused as a logit-scale correlation by the 2DAR1/3DAR1 forms.
- Sel_curve_pen3
Raw deviation-magnitude penalty weight, read only by "NonParametricPM" (9) and "LogisticPM" (11) (the intuitive alternative is Sel_devmag_sd).
- Sel_pen_first_bin
First bin (age or length, on the fleet's Selectivity_dimension) for the non-parametric shape penalty. NA defaults to Bin_first_selected.
- Sel_pen_last_bin
Last (left) bin of the shape-penalty pairs. NA defaults to nbins - 2.
- Sel_shape_mode
Shape-penalty mode: "Directional" (default) or "Smooth" (two-sided second-difference penalty, RTMB).
- Sel_avgsel_pen
Weight on the AMAK average-selectivity base-level penalty (type 9 only): 0 = off (default), 10 matches AMAK.
- Sel_cap_bin
NonParametricPM selectivity bin cap. NA (default) applies no cap.
- Sel_norm_bin
Where selectivity is normalized to 1.
"Max"normalizes by the largest value,"Off"(or blank, the default) not at all, and"All"on a LogisticPM fleet covers its whole penalty range. A number is an absolute age for an age-based fleet (6 means age 6, not the 6th bin) or a 1-based length-bin ordinal for a length-based one, and must lie in the range the fleet is selected over; below it the curve is zeroed, so a value there is read as"Max". In a two-sex model this says only where the reference is taken, whether it is pooled across the sexes isSel_norm_scope. See the sex-structure section ofvignette("model-options-and-functionality").- Sel_norm_bin_upper
Optional upper age/length bin.
"Off"(or blank, the default) normalizes at a single bin; a number normalizes by mean selectivity between Sel_norm_bin and this bin, on the same scale and within the same range.- Sel_norm_scope
Whether selectivity normalization pools its reference across sexes, orthogonal to
Sel_norm_bin(which says where the reference is taken)."WithinSex"divides each sex by its own reference, so both reach 1 and only the shape differs by sex;"AcrossSexes"(default) pools one reference over both sexes, so the less-selected sex stays below 1 and relative sex-specific selectivity is retained. No effect on a one-sex species or whereSel_norm_binis NA.- Observation_units
Units of the observation: 1 = weight (mt), 2 = numbers caught (thousands of fish). Drives both catch and index prediction.
- Weight_index
Weight-at-age (weight) index to use for calculation of derived quantities
- Age_transition_index
Age transition matrix (e.g. growth trajectory) index to use for derived quantities to convert age to length
- Ageing_error_index
Ageing error matrix index, matching
Ageing_error_indexinage_error. Fleets sharing a value read the same matrix. Omit the column, or leave it NA, to use the fleet's own species, which is what a model with one matrix per species has always done.- Catchability_index
Index used to give fleets the same catchability (otherwise, same as Fleet_code). Fleets sharing a value share one q parameter, so the group holds only one answer to whether q is estimated: the group's first non-Off fleet decides for all of them, regardless of fleet type. Give a fleet its own value when it should be estimated independently. "Analytical" and "AnalyticalArith" are the exception, they solve q from each fleet's own index observations, so a group containing one does not share a catchability.
data_check()reports that case, a Fixed lead that leaves fleets on different inits, and aCatchabilityorTime_varying_qthat differs within a group. Seevignette("model-options-and-functionality").- Catchability
Estimate catchability? 0 or "Fixed" = fixed at prior; 1 or "Estimated" = estimate a single parameter; 2 or "Estimated-with-prior" = estimate a single parameter with a prior; 3 or "Analytical" = geometric-mean analytical q (Walters and Ludwig 1994); 4 = power equation (not yet implemented); 5 or "Environmental" = linear equation log(q_y) = q_mu + beta * index_y; 6 or "AR1" = removed, and
data_check()errors on it, the deviates were never estimated, so q came back constant; express the Rogers et al. (2024) form as a q linkage with ar1(1 | Year) andobserve, passed tofit_mod(qFun = ); 7 or "AnalyticalArith" = arithmetic-mean analytical q = mean(obs)/mean(pred), the AMAK/ebswp form used with the MVN survey likelihood.- Catchability_init
Starting value (or fixed value) for catchability. When Catchability = "Estimated-with-prior" this also centers the q prior.
- Catchability_prior_sd
Log-scale standard deviation of the q prior: dnorm(log_q, log(Catchability_init) - bias_adjust_proc * sd^2/2, sd). Used only when Catchability = "Estimated-with-prior".
- Time_varying_q
Whether a time-varying q should be estimated. 0 = "Off"; 1 = "IID" penalized deviate or random effect; 2 = "AR1" REMOVED in 5.16.0, it was scored as "IID", so
data_check()errors on it; use "IID" for the same fit, orlinkage_spec(~ ar1(1 | Year))for a real one; 3 = "Block" time blocks with no penalty; 4 = "RandomWalk" from the mean following Dorn 2018. UnderCatchability = "Environmental"this column instead holds theenv_datacolumn index, not a mode.- Time_varying_q_sd
The sd to use for the random walk of time varying q if set to 1
- Estimate_index_sd
Estimate survey/index observation SD. Accepts integer codes or readable strings: 0 / "Fixed" = use the fixed SD from the data CV; 1 / "Estimated" = estimate; 2 / "Analytical" = analytically estimate following Walters and Ludwig 1994.
- Index_sd
Starting/fixed value for the index observation SD, used when Estimate_index_sd = "Estimated".
- Estimate_catch_sd
Estimate fishery/catch observation SD. Accepts integer codes or readable strings: 0 / "Fixed" = use the fixed SD from the data CV; 1 / "Estimated" = estimate; 2 / "Analytical" = analytically estimate following Walters and Ludwig 1994.
- Catch_sd
Starting/fixed value for the catch observation SD, used when Estimate_catch_sd = "Estimated".
- Index_distribution
Survey/index biomass observation likelihood family. 0 or "Lognormal" (default) = independent lognormal on the log observation. 1 or "MVN" and 2 or "MVNORM" = multivariate normal on the natural-scale residual (obs - q*pred), with a user-supplied covariance in
index_cov(e.g. a VAST-derived Sigma); "MVN" reports the bare quadratic form matching AMAK/ebswp and ADMB, "MVNORM" the properly normalized density, and the two give an identical fit. Pair either with Catchability = "AnalyticalArith". 3 or "Normal" = independent normal on the same residual, with an ABSOLUTE sd from Log_sd, not a log-scale CV; reproduces AMAK avo_like/cpue_like term for term. 4 or "TruncatedNormal" = that normal left-truncated at zero. Prefer it to "Normal" unless an exact ADMB comparison is needed: an index cannot be negative, so it is the only natural-scale family whose likelihood and simulator are the same distribution. Seevignette("model-options-and-functionality").- Comp_distribution
Age/length composition data distribution. Accepts integer codes or readable strings: -1 or "MultinomialAFSC" (default) = AFSC multinomial; 0 or "Multinomial" = full multinomial; 1 or "DirichletMultinomial".
- Comp_weights
Composition weight. Its scale follows
Comp_distribution: under a multinomial it is the natural-scale multiplier on the input sample size, while under a Dirichlet-multinomial the model usesexp(Comp_weights), so the column holds the log of the starting weight, a value of 1 is a starting weight of \(e\); use 0 for a weight of 1. It is read when a model is built from scratch, so a refit keeps whatever weight it is given. A fit reports the weight its residuals imply, a harmonic mean of the ratio of effective to input sample size (McAllister & Ianelli 1997), inComp_weights_mcallister;reweight_compstunes towards it.- CAAL_distribution
Conditional age-at-length composition distribution. Accepts integer codes or readable strings: -1 or "MultinomialAFSC" = AFSC multinomial; 0 or "Multinomial" (default) = full multinomial; 1 or "DirichletMultinomial".
- CAAL_weights
Conditional age-at-length (CAAL) composition weight. Its scale follows
CAAL_distributionexactly asComp_weightsfollowsComp_distribution: a natural-scale sample-size multiplier under a multinomial, the log of the starting weight under a Dirichlet-multinomial.- Comp_accum_young
Young-tail composition accumulation bin (AFSC ac_yng): a 1-based ordinal on the fleet's composition dimension; age/length bins below it are folded into it before the likelihood. NA (default) or 1 = no young accumulation.
- Comp_accum_old
Old-tail composition accumulation bin (AFSC ac_old): a 1-based ordinal on the fleet's composition dimension; age/length bins above it are folded into it before the likelihood. NA (default), 0, or a value at/above the number of bins = no old accumulation.
- Month
Observation month for the fleet (0 = not specified).
- Proj_F_proportion
The proportion of future fishing mortality assigned to this fleet.