New features
inp$nspinup in number
of time steps. It helps stabilise the fit in cases where only catches
are available in the beginning of the time series.Minor changes
spict checks if the currently available TMB version is the same
as the one that was used to install spict. Gives warning if there is a
mismatch.manage() function was
updated to be in line with the HCR recommended to be used by ICES in 2025.Bug fixes
intermediatePeriodCatchList is now used by the manage function, previously was
ignoredretro() function did not behave as
expected. In some cases (e.g., with mid-year index timing), the most recent
index observations were not removed as intended. This issue has been fixed and
tested across a range of catch and index timing configurations, using both
annual and quarterly catch observations. The updated implementation follows
the convention that each peel reproduces the data availability in the
assessment year; for example, if an index observation is available in the
assessment year but catch data are not, the same pattern is replicated in each
peel.New features
Added function calc.process.resid() that calculates the process residuals for
the biomass and fishing mortality processes. The residuals are added to the
fitted spict object in the data frame called rep$process.resid. The
residuals can be summarised with the function sumspict.diagnostics() and
visualised with the function plotspict.diagnostic.process(). Note, that the
process residuals have mainly been tested for scenarios without seasonal fishing patterns.
Added function plotspict.compare that shows estimates from multiple
fits, of B, F, catch, F/Fmsy, B/Bmsy and the production curve on the same plot. The
fits can be given separately, like plotspict.compare(fit1, fit2) or in a list, like
plotspict.compare(list(fit1, fit2)).
Bug fixes
make.man.inp now checks all fractiles to be between 0 and 0.5 (closes #167)add.manlines correctly reports shorter management periods than 1 year (closes #168)add.manlines checks for errflag for multiple management scenariosannual function was rewritten to accommodate cases where intime does not include full years. This happens when the first data point is not on a full year (closes #170, thanks to Paz Sampedro)man.select checks for NAs for multiple management scenariossummary now respects the CI argument. Added CI argument for sumspict.* functionsMinor changes
New features
hindcast() and plotspict.hindcast.Bug fixes:
Bug fixes:
sim.spict saves the dtc (and dte) (closes #159)New features:
use.tmb = TRUE in sim.spict() function to use TMB
SIMULATE{}.parallel::mclapply() have the argument mc.cores to
specify the number of cores to be used. By default mc.cores is equal to 1.Bug fixes
intermediatePeriodCatch in
manage() is used, the intermediate period was calculated incorrectly, using
the argument inp$indpred rather than inp$indCpred. This also led to an
error message in plotspict.catch() with these management scenarios.Minor changes:
sim.spict()check.inp):
sim.random.effects that allows to turn the simulation of random effects on
and off, and sim.fit that allows to define whether the estimated parameters from the
last fit or initial values should be used for simulation.mc.cores=1
to circumvent multithread MKL and parallel problems.New features:
Blim in the hockey-stick HCR to anything else than 0, by
specifying two values in breakpointB, e.g. breakpointB = c(0.3,0.5).evalBreakpointB.plotspict.hcr that visualises management scenariosnews(package = "spict")Bug fixes
Minor changes:
Minor changes:
sumspict.manage control what is returned (uncertainty, absolute states)sumspict.manage shows informative messages when scenarios are not comparable due to assumption differencescabs) or fishing mortality (fabs). Absolute catch scenarios are based on finding the fishing mortalirt (ffac) that leads to the target catch using a simple optimisation.Bug fixes:
include.Ebinf in sumspict.manageMinor changes:
TMB version 1.7.1 is requiredellipse is now importedplyr dependencyBug fixes:
test.spict to work with the management updatesNew features:
plotspict.retro.fixed. Plots parameter estimates (and confidence intervals) in each of the retrospective runsMinor changes:
plotspict.retro returns Mohn's rho if add.mohn is TRUEplotspict.retro was polished, added legend, better spacingmohns_rho now works for the predicted index IpredBug fixes:
New features:
inp$maninterval and inp$maneval. The first is comprised of two numeric
values which define the start and end of the management period, i.e. the period
to which fishing mortality or catch restrictions are applied to and for which
the catch (or TAC) is predicted for. inp$maneval defines the management
evaluation time, i.e. the time point at which model states should be predicted
for (corresponds to the 'p' quantities in the model, e.g. logBpBmsy). Thus, these
variables replace the deprecated variables 'timepredc', 'dtpredc', and
'manstart'. The new variables have a higher priority than the older ones, but
old variables can still be used.logBp.manage() functionadd.man.scenario() to add customised scenarios to rep$manget.TAC() to estimate TAC of a specified scenarioman.tac() to estimate TAC of all scenarios in rep$manman.timeline() to visualise management times in form of a timelinesumspict.manage() to print a summary of all management scenarioscheck.man.time() to check and correct model times in respect to management timesman.select() to select certain scenarios from rep$manplot2() allowing to plot a selection of 4 plots: biomass
relative to Bmsy, Fishing mortality relative to Fmsy, catches, and the Kobe
plot.fit.spict() and
check.inp() which allows to turn off console printing. This may be relevant
for automatic reports and parallel scripts. By default verbose = TRUE and
informative text messages and warnings are printed to the console.0) which reports all quantities, a
minimal selection of quantities relevant for management (1), and the option
to only report the predicted catch (logCp with inp$reportmode == 2) are
implemented.logFmFmsy, correspond to the start of the management period.mohns_rho that calculates Mohn's rho from the retrospective analysis
of user selected quantitiesMinor changes:
manage() function overwrites all scenarios in rep$man.Bug fixes:
inp$indlastobs which is used to estimate all 'l' quantities,
e.g. logFlFmsy, did not consider the length of the catch (or effort)
interval. Fixing this bug might lead to different values for some quantities
(e.g. 'States' in the summary output of a SPiCT assessment), because they
affect the 'l' states in the model, e.g. logBl.shorten.inp() did not account for the
length of the catch (or effort) interval. Thus, a catch observation for the
interval 1990-1991 was included although maxtime = 1990. After this bug fix,
this observation is not included anymore as it ranges beyond 'maxtime'.New features:
calc.bmsyk that returns the Bmsy / K ratio of a fitted
objectcalc.om that return a matrix with the order of
magnitude of the confidence interval range of F/Fmsy and B/Bmsyshorten.inp that cuts the input time series to the
specified rangen) curve on the log scaleBrel and Frel, respectivelyMinor changes:
manage that sets the standard deviation factor keep
current catch scenarionlminb optimiserBug fixes:
managetake.cNew features:
Minor changes: