MMSE objects could not handle multiHist objects from earlier versionscalc_weightedmean_c, used in SSMOM2OM, can return NaN in cpars$Wt_age_C = 0. Overwrite NaN with 0.
Occurs with un-exploited age classes, e.g., age zero.Simulate when control$Bfrac = FALSEspawn_time_frac argument in ASAP2OMProject for better precision and maxF constraintSS2MOM for SRR type 7 (survival-based model for elasmobranchs). OM uses custom OM@SRrel = 3ProjectupdateData and updateData_MS use the Baranov catch equation to simulate Data@CAA in the projection. Previously, the catch at age was simulated with only the retention curve.multiMSE solves for F from multi-fleet TAC simultaneously with function CalcMPDynamics_MFData@VInd in multiMSEData@AddInd statistics (AC, SD) when cpars$AddIerr is providedcpars.Simulate use fishery weight at age FleetPars$Wt_age_CmultiMSE(extended = TRUE) returns overall F by stock (and area) and MMSE@PPD includes StockPars, FleetPars, ReferencePoints in Data@MiscrunMSE(extended = TRUE) leaves StockPars, FleetPars, ReferencePoints in Data@Misc of MSE@PPD slotaddMMPs() functionExport_customMPs allows for MPs defined in more than one namespace, e.g., functions initially defined in a package and modified in the global environment.addMPsPM objects when nsim<15LinInterp_cpp when searching for values on boundsSplot and empirical MP Empnsim argument to Simulate as an override to OM@nsim. Useful for generating Hist object with 2 sims when all historical values are identical across simulationsBAM2OM to create OM from Beaufort Assessment Model (BAM) outputmultiMSE which can be a function of the state dynamics in either the current year or previous yearmultiMSEmultiMSEmultiMSEspawn_time_frac argument to iSCAM2OMmultiMSE can be time-varying if entries in the MOM@SexPars$Herm list is an array with dimensions nsim, maxage+1, nyears+proyearsMOM@cpars$control <- list(HermEq = FALSE) sidesteps the first-year equilibrium age and sex distribution calculation from the hermaphroditic age schedulecpars$control options in help("validcpars")dynGet then get to find the MPs in the R session (see function getMP). dynGet finds functions that are defined inside the function call stack but not available in the global environment.plot_SS2MOM for latest version of r4ssMMSE@SB_SBMSY for MMSE objectsOMdoccpars$qs to OM produce by SS2OMSS2OM does not return cpars$DataretL when retA passed in cparsspawn_time_frac used in multiMSECalc_Residuals when not estimating beta parameterpopdyn.R to include discard mortalitySubCpars for MOM objectsOM@h) to exceed 1 for Ricker stock-recruit relationship (the simulated steepness value in the Data object will be Data@steep = rlnorm(OM@nsim, log(StockPars$hs - 0.2), sdconv(1, Obs@hbiascv)) + 0.2 - 0.5 * sdconv(1, Obs@hbiascv)^2.Assess2OM utilizes spawn_time_fracSS2OM when empirical weight-at-age is not availableL95 calculation when all age classes are mature (defaults to 1.5)OM.Rmdcpars$spawn_time_frac (default is beginning of year spawn_time_frac=0). Need to check timing on order of operations if this is used together with MICE features!Data@Vuln_CAL in generating CAL samples. Data@Vuln_CAA is not currently implementedCAL_nsamp and other sample size data across stocks in MOMMSE@Hist now includes slots AtAge and TSdata when extended=FALSEMSE@N slot to include age and area dimensions.MMSE@N slot to include age and area dimensions.extended argument to multiMSE to report N-at-age in MMSE@Misc$extended$NMOM@SexPars$share_par = FALSE argument that turns off parameter mirroring of stock-recruit, depletion parameters; fleet parameters related to effort trends; and all observation/implementation parameters. This can be used to generalize a 2-sex MOM to a multi-stock model with shared spawning output (SexPars$SSBfrom) and/or movement-at-age between stocks (SexPars$Herm).SS2OM when empirical weight-at-age is not availableL95 calculation when all age classes are mature (defaults to 1.5)OM.Rmdplot.DataMisc information to PPD for MMSEdevtools from Suggests and replace with remotesSS2MOM_plots plotsSS2DataSSMOM2OMSS2OM in SSinternalSS2MOM_plotsL95array when Mat_age passed in through cparsSS2OM when report=TRUEparallel=TRUE in runMSE and multiMSE. To run MPs in parallel, specify a named list with the name of the MP(s) assigned as TRUE. For example,parallel=list(AvC=TRUE).summary.MMSE generic functionLag_Data function to be used internally in custom MPs to lag all time-series data by specified number of time-steps (or optionally only some data slots). See ?Lag_Data for more information.MOM) to (multiHist)Real.Data.Map to cpars. This allows mapping of simulated data across stocks in MOMs where the real data
is not stock-specific; e.g., cases where MOM includes male and female stocks but the real data in cpars$Data is not sex-specificrunMSE can use the split-apply-combine technique to run projections in parallel with argument parallel = "sac". Implementation details and notable issues are documented in the help doc ?runMSE. This is the fastest method for running simulations but may not be suitable for all operating models and it may be more difficult to troubleshoot errors.ASAP2DataAssess2OMmultiHist object (now only returns biological information for fleet=1)gettaxa function for species that are found in FishBase database but not in FishLife databasejoinData, joinHist, joinMSE, and addMPs functionsrunMSE calculates vulnerable biomass from fishery weight at age cpars$Wt_age_C if provided.0.5 * VBiomass (a legacy feature which is now removed). The constraint is updated to 0.999 * Biomass.OM completeness and default values for some parametersmultiMSEparallel in runMSE can takes a named list of MPsWHAM2OM and ASAP2OM to import assessments into operating modelsAssess2MOM to generate a multi-fleet operating model, either for a 2-sex population where recruitment is predicted from female spawning output, or a single-sex population.Assess2OM supports Ricker stock-recruit relationship.MMPsOM@cpars$Len_age is provided.MOM (introduced in 3.4.0)Data@Misc$StockPars (slot N_P, SSB_P, etc.) during closed-loopusethis for console messagesmakeRel and makeMOM with methods for developing MICE relationships, e.g., density-dependent M.multiMSE uses Wt_age_C for catch fraction calculations.parallel in runMSE can now be MP-specific by specifying a logical vector of length(MPs). This is useful to apply slow-running MPs in parallel, while avoiding the parallel overhead time for fast-running MPs.multiMSE when growth and natural mortality are time-varying. Internal code in HistMICE, qestMICE, popdynMICE and popdynOneMICE was updated for better readability, i.e., removing obsolete/redundant code and better references for array dimensions.rfishbaseAwatea2OM to import MCMC output from an Awatea assessment model to openMSESS2MOM and SS2OM is one. The issue was noticeable when the autocorrelation is high.plot_mov for plotting movement matrices.ProjectMOM and multiMSE now drop the multiHist object from the MMSE object unless argument dropHist=FALSESSMOM2OM where selectivity was NA when fishing mortality was 0silent option to SS2Datacpars$Fec_age)SSMOM2OM where it was generating redundant rec devsplot_SS2MOM to compare MOM dynamics with SS3 predictionscpars$Wt_age_CHist@Ref$ByYearcontrol$D <- 'SBMSY'OM@cpars$control$CAL="removals".
Default is to simulate only retained catch-at-length.OM@cpars$control$TAC="removals".
Default is to for TAC to refer to retained catch (i.e., removals will be greater than TAC if there are discards)multiMSEpopdynOneTScppAddInd in the projection yearsStock, Fleet, and Obs objects (many thanks to Sarah Valencia).XL2Data for importing data from CSVI_beta, SpI_beta, and VI_beta for the individual indices. Defaults to use OM@beta for all, unless a real
index is supplied, e.g., OM@cpars$Data@Ind, OM@cpars$Data@SpInd, or OM@cpars$Data@VInd, or if supplied in cpars,
e.g., OM@cpars$I_betaOM@Ksd was not implemented correctly (5e6e8c6).new('Data',..) (issue #33)cpars$beta and cpars$Esd issue (issue #34)This is a new major release of the MSEtool package. It is not backwards compatible with previous versions of MSEtool or DLMtool.
MSEtool package now contains all code related to generating operating models, simulating fisheries dynamics, conducting management strategy evaluation, and examining the results (previously in the DLMtool package). This change was primarily done to better align the actual contents of the packages with the respective package names.MSEtool now only has a set of reference management procedures (e.g., FMSYref)MSEtool V3+ as a dependency; i.e., installing and loading DLMtool will also install and load MSEtool and make all functions for generating OMs, conducting MSE, etc available.DLMtool had recruitment to age-1).Data object now includes age-0 (i.e., all age data must be length maxage+1)