- g3_tmb_relist() was double exp()ing fixed parameters #260
- Support multiple areas in g3a_age() #262
- Configurable scale for g3l_bounds_penalty() #263
- Re-work interim_value to be per-fleet, parameter by default #264
- g3a_predate_catchability_project now correctly scales when quotas are expressed in individuals #222
- gadget3 resistant to packages (re)defining head/tail S3 methods, e.g. reformulas #224
- g3_param_project projections tending to zero in some cases #226
- g3_quota_hockeyfleet not overreporting when handed multiple stocks #227
- Allow for zero mean weight in weightjones #228
- Add g3a_trace_var, based on g3experiments::g3a_trace_nan #231
- Add g3a_trace_timings, for investigating relative action speed #235
- Add g3_tmb_fn(), for projection runs & similar #237
- Parameters can be set as type="LOG", for optimisation in logspace #251
- optimise defaults to FALSE unless default bounds are provided #233
- Don't generate TMB ADGrad function if random effects not used #234
- Hide g3a_initialconditions / g3a_renewal (not g3a_initialconditions_normalparam/cv) #240
- g3_param_project_dlnorm() / _logar1() accept parameters in linear space, not log #251
- All-zero lengthgroups in initialconditions / > 1 maturity ratios no longer result in NaN #187 #182
- The
stockcolumn in likelihood data can now contain name parts as well as full stock names g3_to_r-produced model functions will accept both a list & data.frame parameter templateg3_to_rmodels can include arbitary R functions, see vignettes/writing_actions #194- Add
g3_array_agg,g3_array_combine#193 #213 - Add surplus production model action
g3a_spmodel#209 - Projection / MSE support #210 #220
- Add g3_param_project() for time-varying parameters that also support projection
- AR1/logAR1 distribution functions
- Add g3_quota() for quota-definitions during projection based on a custom fishing year
- Add
g3_array_plot
- run_projection is now TRUE by default for renewal. A rec.proj parameter covers projection.
- Rename
detail_x__numtodstart_x__num#200
g3a_spawn()splits offspring into multiple stocks correctly
- Split likelihood distribution by predator_length / predator_age / predator_tag #154
- Predation support, see
?g3a_predate/?g3a_predate_catchability_predator#29 g3a_otherfood,g3a_otherfood_normalparam,g3a_otherfood_normalcv#155- Support length transform_fs in
g3l_catchdistribution#95
- g3_to_r() output can be debugged in R-Studio
- Unknown stock names in likelihood data now an error
g3l_distribution_surveyindices_*()can now be broken down by age without error
- Add
g3_parameterized('x', by_year = 1998:2099)to override year range for parameters - Add
g3a_initialconditions_normalcvfor initialconditions driven by alencvparameter - Add
g3a_renewal_normalcvfor initialconditions driven by alencvparameter by_predatorparameter forg3_parameterized- Defaults for
g3_suitability_exponentiall50 - Support cut() formatted character columns as well as factor columns in likelihood observation data.
- Add
g3_init_val()helper, to replacegadgetutils::g3_init_guess() - Add
g3_areas()helper to create numbered area vectors - Add
g3_distribution_preview()helper to see how observatation data will be converted to array periodnow optional forg3l_random_walk(),g3l_random_dnorm()g3l_bounds_penalty()can now generate bounds from actions which update automatically
g3l_distribution_surveyindices_*now default tobeta = 1, setbeta = NULLto restore previous behaviour.stock_param() &stock_param_table() replaced withstock_prepend()- Remove unused
g3_to_tmb(adreport_re)option #60 - Naturalmortality
Mnow by-age by default #113 g3_suitability_andersenfleet()now usesby_predator = TRUEby default #133
- Add
g3_parameterized('x', by_step = TRUE)for seasonal parameters #115 - Support R factor levels as well as MFDB-style attributes for likelihood observation data.
This means dplyr
group_by(length = cut(...))can be used as well as MFDB for groupings #112 - Parameterised defaults for
g3l_understocking(),g3a_naturalmortality(),g3a_renewal_normalparam() - Add
g3a_renewal_vonb_t0() &g3a_renewal_vonb_recl(), withg3a_renewal_vonb() being an alias to the latter
- g3s_modeltime() (used for history) now works when final_year_steps set
- Stop assuming 1-dimensional R arrays should be TMB vectors.
- Remove
scale = 0.001from defaultKparameters in g3a_grow, g3a_renew_* g3a_renewal_vonb_t0() is now the default mean_f for*_normalparam()g3a_initialconditions_normalparam() now offsets anyageinmean_f(i.e. the VonB formula) bycur_step_size, in effect running at step -1.
g3_suitability_andersen()now produces sensible values - #108g3a_age()now supports stocks with a single age (i.e. minage == maxage)
- Add
recageparameter tog3a_renewal_vonb/g3a_renewal_initabund - Add
g3_suitability_andersenfleet(), a fleet-specialised andsersen suitability function. - Make
g3_is_stock()public g3_eval(), to evaluate snippets of a gadget3 model.
-
g3l_distribution_*(transform_fs = ...)now happens before aggregation, not after. Any matrix used now has to be expressed in terms of the stock, not aggregated age. -
g3_param_table()now returns NaN (and warns) on a missing value, instead of aborting. -
optim(g3_tmb_par(...))is now an error. When optimising, always useobj.fun$par.
- Support
as.vector(array)in TMB formulas, so arrays can be used with TMB vectorized functions, e.g.pnorm(as.vector(ar[,1])).
- Initial CRAN release