| 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.