gadget_project_time | R Documentation |
Setup model and parameter files for forward simulations and deterministic projections.
gadget_project_time( path = ".", num_years = 100, variant_dir = getwd() %>% stringr::str_count("/") %>% rep("../", .) %>% paste(collapse = "") %>% paste(tempdir(), sep = "") ) gadget_project_stocks( path, imm.file, mat.file, spawnfunction = "hockeystick", proportionfunction = "constant 1", mortalityfunction = "constant 0", weightlossfunction = "constant 0" ) gadget_project_fleet( path, pre_fleet = "comm", post_fix = "pre", fleet_type = "linearfleet", common_mult = NULL, pre_proportion = NULL, type = "standard", ... ) gadget_project_prognosis_likelihood( path, stocks, pre_fleets = "comm", post_fix = "pre", mainfile_overwrite = TRUE, firsttacyear = NULL, assessmentstep = 2, weightoflastyearstac = 0, ... ) gadget_project_recruitment( path, stock, recruitment = NULL, n_replicates = 100, params.file = "PRE/params.pre", method = "AR", ... ) gadget_project_advice( path, params.file = "PRE/params.pre", harvest_rate = 0.2, advice_cv = 0.2, advice_rho = 0.6, pre_fleet = "comm", post_fix = "pre", n_replicates = 100 ) gadget_project_ref_points(path, ref_points, params.file = "PRE/params.pre") gadget_project_output( path, imm.file, mat.file, pre_fleets = "comm", post_fix = "pre", f_age_range = NULL, rec_age = NULL, print_block = "1" )
path |
gadget variant director |
num_years |
number of years |
variant_dir |
location of the |
imm.file |
location of the immature stock file |
mat.file |
location of the mature stock file |
spawnfunction |
what spawn function to use (only hockeystick atm) |
proportionfunction |
proportion suitability |
mortalityfunction |
mortataliy suitability |
weightlossfunction |
weightloss suitability |
pre_fleet |
name of the fleet projections are based on (original fleet). Only a single fleet should be implemented here at a time. Multiple fleets require multiple gadget_project_advice calls. |
post_fix |
A single label (vector of length 1) used to distinguish the original fleet and the projection fleet (with same parameterisations). Should be the same for all projection fleets. |
fleet_type |
type of gadget fleet for the projections |
common_mult |
a string with a base name for a vector of harvest/catch rate multipliers (shared between fleets) |
pre_proportion |
proportion of the effort taken |
type |
type of projection, either "standard" or "prognosis" |
... |
additional arguments for the |
stocks |
names of of the stocks |
pre_fleets |
vector of fleets on which the projections are based |
mainfile_overwrite |
should the likelihood be overwritten, defaults to TRUE, but should be set as FALSE for multiple prognosis components (different groups of fleets) |
firsttacyear |
when does the TAC scheme start |
assessmentstep |
when is the assessment |
weightoflastyearstac |
running average TAC.. |
stock |
name of immature stock |
recruitment |
recruitment time series |
n_replicates |
number of simulations |
params.file |
name of the parameter files |
method |
prediction method, built in options are 'AR', 'bootstrap' or constant |
harvest_rate |
median harvest rate |
advice_cv |
assessment error cv |
advice_rho |
assessment error correlation |
ref_points |
tibble with reference points |
f_age_range |
F age range, specified in the format a1:a2 |
rec_age |
age of recruitment (as reported) |
print_block |
file suffix for the printfile |
gadget project recruitment: Sets up the process error for the stock recruitment relationship. The user has a choice of three types, constant, AR and block bootstrap based on a time-series of recruitment
gadget project stocks: Here the user can define the SSB - Rec relationship used in the projections. It defines link between two stocks, immature and mature stock and in the case of minage (immstock) > 0 an interim bookeeping stock from age 0 to minage.
Limitiations: At present theres is no way to define recruitment into multiple stocks (ie. via multiple interim stocks). This function also assumes that there is no SSB - Rec relationship, since if it is already present the simulation should use that. Multi-annual recruitment is currently not defined.
gadget variant directory
## Not run: fit <- gadget.fit() res <- gadget_project_time() %>% gadget_project_stocks(imm.file = 'Modelfiles/cod.imm',mat.file = 'Modelfiles/cod.mat') %>% gadget_project_fleet(pre_fleet = 'comm') %>% gadget_evaluate(params.out = paste(attr(.,'variant_dir'),'params.pre',sep='/'), params.in = 'WGTS/params.final') %>% gadget_project_recruitment(stock = 'codimm', recruitment = fit$stock.recruitment %>% filter(stock == 'codimm', year > 1980), params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% gadget_project_ref_points(ref_points = tibble(codmat.blim = 207727665), params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% gadget_project_advice(pre_fleet = 'comm', harvest_rate = 1:100/100, params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% gadget_project_output(imm.file = 'Modelfiles/cod.imm',mat.file = 'Modelfiles/cod.mat', pre_fleet = 'comm') %>% gadget_evaluate(params.in = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% {read.printfiles(paste(attr(.,'variant_dir'),'out',sep='/'))} %>% map(mutate, trial=cut(1:length(year),c(0,which(diff(year)<0),1e9),labels = FALSE)) %>% set_names(c("catch.F","catch.lw",'codimm.rec','codmat.ssb')) %>% map(left_join,tibble(trial=1:10000,harvest_rate = rep(1:100/100,100))) yield_curve <- res$catch.lw %>% filter(year>2050) %>% group_by(trial,harvest_rate,year) %>% summarise(c=sum(biomass_consumed)/1e6) %>% group_by(harvest_rate) %>% summarise(m=median(c),u=quantile(c,0.95),l=quantile(c,0.05)) ssb_curve <- res$codmat.ssb %>% filter(year>2050) %>% group_by(trial,harvest_rate,year) %>% summarise(c=sum(number*mean_weight)/1e6) %>% group_by(harvest_rate) %>% summarise(m=median(c),u=quantile(c,0.95),l=quantile(c,0.05)) f.curve <- res$catch.F %>% filter(year>2050) %>% group_by(trial,harvest_rate,year) %>% summarise(c=median(mortality)) %>% group_by(harvest_rate) %>% summarise(m=median(c),u=quantile(c,0.95),l=quantile(c,0.05)) blim <- fit$res.by.year %>% filter(grepl('mat',stock)) %>% summarise(b=min(total.biomass)/1e6) %>% .$b bpa <- 1.4*blim hr_msy <- yield_curve %>% filter(m==max(m)) %>% .$harvest_rate hr_lim <- ssb_curve %>% filter(m>blim) %>% filter(harvest_rate == max(harvest_rate)) %>% .$harvest_rate f.msy <- f.curve %>% filter(harvest_rate == hr_msy) %>% .$m f.lim <- f.curve %>% filter(harvest_rate == hr_lim) %>% .$m f.pa <- f.lim/1.4 hr_pa <- f.curve %>% filter(m < f.pa) %>% summarise(hr = max(harvest_rate)) %>% .$hr library(patchwork) yield_curve %>% left_join(f.curve %>% select(harvest_rate,F=m)) %>% ggplot(aes(F,m)) + geom_ribbon(aes(ymin=l,ymax=u),fill = 'gold') + geom_line() + geom_vline(xintercept = min(c(f.msy,f.pa))) + geom_vline(xintercept = f.pa,lty=2,col='red') + geom_vline(xintercept = f.lim,lwd=1.1,col='red') + ssb_curve %>% left_join(f.curve %>% select(harvest_rate,F=m)) %>% ggplot(aes(F,m)) + geom_ribbon(aes(ymin=l,ymax=u),fill = 'gold') + geom_line() + geom_vline(xintercept = min(c(f.msy,f.pa))) + geom_vline(xintercept = f.pa,lty=2,col='red') + geom_vline(xintercept = f.lim,lwd=1.1,col='red') + geom_hline(yintercept = blim, col = 'red', lwd = 1.1) + geom_hline(yintercept = bpa,col = 'red',lty = 2) ## run prognosis res <- gadget_project_time(num_years = 5, variant_dir = 'PRG') %>% gadget_project_stocks(imm.file = 'Modelfiles/cod.imm',mat.file = 'Modelfiles/cod.mat') %>% gadget_project_fleet(pre_fleet = 'comm') %>% gadget_evaluate(params.out = paste(attr(.,'variant_dir'),'params.pre',sep='/'), params.in = 'WGTS/params.final') %>% gadget_project_recruitment(stock = 'codimm', recruitment = fit$stock.recruitment %>% filter(stock == 'codimm', year > 1980), method = 'constant', n_replicates = 1, params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% gadget_project_ref_points(ref_points = tibble(codmat.blim = 207727665), params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% gadget_project_advice(pre_fleet = 'comm', harvest_rate = hr_msy, params.file = paste(attr(.,'variant_dir'),'params.pre',sep='/'), n_replicates = 1, advice_cv = 0) %>% gadget_project_output(imm.file = 'Modelfiles/cod.imm',mat.file = 'Modelfiles/cod.mat', pre_fleet = 'comm') %>% gadget_evaluate(params.in = paste(attr(.,'variant_dir'),'params.pre',sep='/')) %>% {read.printfiles(paste(attr(.,'variant_dir'),'out',sep='/'))} %>% set_names(c("catch.F","catch",'rec','ssb')) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.