LBSPR
when calendar years are provided in Data@Year
CV_Ind
in Iratio
LtargetE
MP where it was incorrectly averaging across simulations (thanks to Ernesto Carrella for spotting this)LBSPR
MP updated to handle missing CAL dataLBSPR
is now recursiveV6.0.0 is a major update to the DLMtool
package. It is not backwards compatible with previous versions of DLMtool
or MSEtool
.
DLMtool
package is now limited to the collection of the data-limited management procedures.MSEtool
(v3+).MSEtool
v3+ is a dependency for DLMtool
v6+, and all operating model simulation and projection functions are available after installing and loading DLMtool
.cpars$DR_y
- matrix nsim rows and nyears+proyears columnsRec@DR
)OM@cpars$qs
). Doesn't optimize for depletion and updates OM@D
.Data@AddInd
) can now be specified using Data@AddIunits
(numeric vector length n.ind 1=biomass (default) 0=numbers).Data@AddIndType
(numeric vector length n.ind 1=total stock (default), 2=spawning stock, 3=vulnerable stock).Misc$Removals
wasn't being returned in parallel mode.XL2OM
for latest version of R (behavior of base::data.matrix
changed)OM@cpars$control$Sample_Area
; e.g., OM@cpars$control$Sample_Area$Catch
The following names are accepted:
Catch
(includes average catch);BInd
total biomass indexSBInd
spawning biomass indexVInd
vulnerable biomass indexRecInd
recruitment indexCAA
- catch-at-ageCAL
- catch-at-length (also applies to mean length, length-at-first capture, etc)
Each must be an array with dimensions c(nsim, nyears+proyears, nareas)
.DT
package broke PMObj
and PMLimit
tablesOM@cpars
LBSPR_MLL
MPData
object has been updated, main new features are the addition of an Effort slot
(Data@Effort
and Data@CV_Effort
) and all CV by year for all time-series information.Data@RInd
slot has been removed and replaced with Data@AddInd
Cplot
(thanks Sarah Valencia for picking this up)runMSE(Hist=TRUE)
where under some conditions the Hist
object could not be stitched back together.AAVE
) performance objective methodPMObj
functionCurC
Dom
function (and removed old DOM
function)SS2OM
). To use a plus-group, use OM@cpars$plusgroup = 1
OM@cpars$binWidth
TradePlot
cpars$mov
when nareas>2runMSE
function is now more robust. MPs that fail (i.e. crash R) are now skipped without stopping the entire MSE. A warning message alerts users which MPs have been dropped from the analysis.runMSE(Hist=TRUE)
returns a new S4 object of class 'Hist'. This change means that information from historical simulations is now accessed using @
instead of $
. For example:
Hist <- runMSE(Hist=TRUE)
TS <- Hist@TSdata # time-series data
Data <- Hist@Data # Data object from end of historical period
runMSE(Hist=TRUE)
now works with parallel processingcheatsheets
OM@cpars$mov
.Uses
function has been added to return MPs that use a particular data slot. For example: Uses('AvC
)OM@cpars$initD
.PMLimit
and PMObj
have been added to generate interacive HTML tables showing the performance of MPs (using objects of class PM
)Labels
has been added to the TradePlot
function and related functions (Tplot
etc). This allows users to replace the default MP name with something more user-friendly. For example: TradePlot(MSE, Labels=list(AvC="Average Catch"))
. An argument cols
has also been added so users have full control on the colors of the points and labels. The MP labels can be removed completely by setting the lab.size
argument to NULL
Stock@Mgrad
, Stock@Linfgrad
)
have been removed. Time-varying parameters should now be specified with OM@cpars
.AnnualMSY
argument is now deprecated. MSY reference points are now always calculated in every time-step.runMSErobust
function has been now removed from package (it was broken in the previous version).Data
objects with larger number of length binscurE75
which was ratcheting down effortTuring
functionTuring
functionsummary(Data)
cheatsheets()
Growth2OM
)LW2OM
).plotMPA
to include relative size of areasMSE@OM
has been updated to only include historical conditions.Converge
in 5.2.1XL2Data
to read files from other than working directorysummary(Data)
PM
functions when MSE@nMPs == 1
runMSE
. OM@interval
can now be a vector of length nMPs
, to specify different
management intervals for different MPs. For example, with OM@interval=c(1,5)
and runMSE(OM, MPs=c('AvC', 'BK')),
AvCis applied every year and
BKis applied every 5 years.
OM@interval` is recycled if not the same length as number of MPs.makeMeanMP
has been added to generate a MP that averages output from a list of other MPs.Turing
has been added to compare simulated data from an OM to the real data in the fishery Data object.LH2OM
and predictLH
have been added to predict correlated life-history parameters from FishBase using FishLife model.Converge
functionReplace
function has been updated to replace directly from individual Stock, Fleet, Obs, and Imp objects instead of from only OM objectssummary(Data)
function have been improvedmakePerf
has been replaced with tinyErr
function with options to remove process error, observation error, and gradientsPM
(Performance Metric) methods have been updated and described in the user guideTrade_Plot
, Tplot
, Tplot2
, and Tplot3
Fease
has been simplified and updated. Fease object has now been removedplot
and examples in the online documentationOM@cpars
) have been updated and now have better documentationuserguide()
has been updated and additional chapters added on new featuresData
object: Common_Name
, Species
, Region
, and for data-rich MPs in MSEtool: sigmaR
(recruitment error)setup()
if runsMSE(parallel=TRUE)
and cluster hasn't been initializedrunsMSE(parallel=TRUE)
SPmod
Mixed MPs: it is now possible to design MPs that combine Output and Input controls. Previously, MPs in DLMtool where either class 'Input' or class 'Output'. This has changed, and all MPs are now class 'MP' and return a standard recommendation object ('Rec') that allows specification of any combination of catch limit, effort limit, spatial closure, and size-at-selection and/or size-at-retention regulations.
MP types: For convenience, MPs can be categorised into 4 types: 'Output' (only catch limits), 'Input' (only spatial, effort, and/or size regulations), 'Mixed' (some combination of Output and Input regulations), and 'Reference' (MPs such as FMSYref or NFref which are designed to be used a references and not for actual applications). The function MPtype
can be used to determine an MP's type, e.g MPtype('AvC')
.
Increased flexibility of selectivity, retention, and discard mortality controls: MPs can now modify both selectivity and retention curves, and also modify the level of discard mortality.
Historical MPAs: A new slot MPA
has been added to the Fleet
object. This allows users to specify the historical year and the fraction of an area that was closed. See ?plotMPA
for an example.
Improvements to MSY reference point calculations: MSY reference points are now calculate for every year. This accounts for changes in productivity (e.g., increases in growth) that affect reference points such as BMSY and FMSY.
Increased number of areas: By default DLMtool is a 2-area model. The code has now been updated to include more areas if required.
Movement by age: It is now possible to specify movement by age, such as ontogenetic migration offshore
Parallel processing: runMSE
has been optimized for parallel processing. By default, parallel processing is not used if nsim
<=48. We suggest testing your OM with a low number of simulations (e.g nsim
=48) and then increasing the number of simulations and using parallel processing: runMSE(OM, MPs, parallel=TRUE)
. Update messages are not displayed in parallel mode.
Taxonomic information: New slots have been added to the Stock
object to record common name and taxonomic details.
The Converge
function has been updated with a improved of convergence diagnostics.
A new performance metric (PM
) class has been added. This allows users to develop a custom set of performance metrics for their management system. A series of example PM
objects have been created (see avail('PM')
). Over time the summary and plotting functions will be updated to take a set of PM
objects. See Tplot3
for an example.
Many improvements to functions (e.g MPs) to improve robustness and avoid model crashes due to stochastic sampling of parameters.
All code in DLMtool is now tested using the testthat
package to ensure that the functions work as expected. Please continue to file bug reports at: https://github.com/DLMtool/DLMtool/issues
The User Manual has been completely revised and updated. Use userguide()
to access. Please submit any typo corrections or suggestions for improvement at https://github.com/DLMtool/DLMtool_UserGuide/issues. Pull requests are welcome.
We are developing an online library of DLMtool OMs (http://www.datalimitedtoolkit.org/fishery_library) which has the OM Report, OM Excel file, and OM R data object for each DLMtool OM. A standardized MSE report is in development. The OM library will be expanded as new OMs are developed. Please contact us if you have developed OMs and are able to make them publicly available.
A DLMtool user forum is in development and will be launched soon. The idea of the forum is to provide a platform for DLMtool users to ask questions and share experience with each other and the DLMtool team.