-
Notifications
You must be signed in to change notification settings - Fork 0
/
dev.R
169 lines (125 loc) · 4.42 KB
/
dev.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# install.packages('pak')
# pak::pkg_install('nikolaifish/bamExtras')
# pak::pkg_install('blue-matter/MSEtool')
library(bamExtras)
library(MSEtool)
library(SAMSE)
# 1. Set OM Specifications
#
# 2. Import SEDAR assessments from bamExras package and convert into openMSE
# operating models (OMs)
#
# ---- OM Specifications ----
# MSE Parameters
nsim <- 50 # number of simulations
proyears <- 20 # number of projection years
# CAL bins (mm) - need to be the same for all stocks
bin_width <- 50
CAL_bins <- seq(from=0, to=1500, by=bin_width)
CAL_mids <- seq(0.5*bin_width, by=bin_width, length.out=length((CAL_bins)-1))
# Observation Model
# currently perfect obs as data aren't being used in the MPs
# can be changed later
Obs_Model <- Perfect_Info
# ----- Import SEDAR Assessments and Create OMs ----
RS_rdat <- bamExtras::rdat_RedSnapper |>
bamExtras::standardize_rdat()
GG_rdat <- bamExtras::rdat_GagGrouper |>
bamExtras::standardize_rdat()
BSB_rdat <- bamExtras::rdat_BlackSeaBass |>
bamExtras::standardize_rdat()
RS_OM <- BAM2MOM(RS_rdat, stock_name='Red Snapper')
GG_OM <- BAM2MOM(GG_rdat, stock_name='Gag Grouper')
BSB_OM <- BAM2MOM(BSB_rdat, stock_name='Black Sea Bass')
# ---- Define Fleet Structure ----
# Assumption: fleets with same name are identical across stocks
fleet_names <- c(names(RS_OM@Fleets[[1]]),
names(GG_OM@Fleets[[1]]),
names(BSB_OM@Fleets[[1]]))
fleet_df <- data.frame(Code=unique(fleet_names))
fleet_df$Name <- c('Commercial Line',
'Recreational Headboat',
'General Recreational',
'Commercial Line - Discard',
'Recreational Headboat - Discard',
'General Recreational - Discard',
'Commercial Dive',
'Commercial Pot',
'Commercial General - Discard')
fleet_df$Mapping <- c(1,2,3,1,2,3,4,1,1)
fleet_df$Type <- 'Landing'
fleet_df$Type[grepl('\\.D', fleet_df$Code)] <- 'Discard'
# ---- Define Discard Mortality -----
# need to define discard mortality by fleet and year
# need to inflate effort to account for fish that were caught and discarded alive
# SEDAR 73 Table 6
discard_mortality_RS <- dplyr::bind_rows(
data.frame(Stock='Red Snapper',
Code='cHL',
Year=c(1900, 2008, 2017),
DiscM=c(0.48, 0.38, 0.36)),
data.frame(Stock='Red Snapper',
Code='rHB',
Year=c(1900, 2012, 2018),
DiscM=c(0.37, 0.26, 0.25)),
data.frame(Stock='Red Snapper',
Code='rGN',
Year=c(1900, 2012, 2018),
DiscM=c(0.37, 0.28, 0.26))
)
# SEDAR 71
# Commercial = 0.4
# Rec & Headboats = 0.25
discard_mortality_GG <- dplyr::bind_rows(
data.frame(Stock='Gag Grouper',
Code='cHL',
Year=1900,
DiscM=0.4),
data.frame(Stock='Gag Grouper',
Code='rHB',
Year=1900,
DiscM=0.25),
data.frame(Stock='Gag Grouper',
Code='rGN',
Year=1900,
DiscM=0.25)
)
# SEDAR 76 - Section 2.2.1
# data.frame(Stock='Black Sea Bass',
# Code='cPT',
# Year=c(1900,2007),
# DiscM=c(0.14, 0.068)),
discard_mortality_BSB <- dplyr::bind_rows(
data.frame(Stock='Black Sea Bass',
Code='cHL',
Year=c(1900, 2007),
DiscM=c(mean(0.14,0.19), mean(0.14, 0.068))
),
data.frame(Stock='Black Sea Bass',
Code='rHB',
Year=1900,
DiscM=0.152),
data.frame(Stock='Black Sea Bass',
Code='rGN',
Year=1900,
DiscM=0.137)
)
discard_mortality <- dplyr::bind_rows(discard_mortality_RS,
discard_mortality_GG,
discard_mortality_BSB)
# ---- Aggregate Fleets ----
RS_OM <- Aggregate_Fleets(RS_OM, fleet_df, discard_mortality)
RS_Hist <- SAMSE:::run_simulations(RS_OM)
Compare_Biomass(RS_Hist, RS_rdat)
Compare_Catch(RS_Hist, RS_rdat)
Compare_F(RS_Hist, RS_rdat)
GG_OM <- Aggregate_Fleets(GG_OM, fleet_df, discard_mortality)
GG_Hist <- SAMSE:::run_simulations(GG_OM)
Compare_Biomass(GG_Hist, GG_rdat)
Compare_F(GG_Hist, GG_rdat)
Compare_Catch(GG_Hist, GG_rdat)
BSB_OM <- Aggregate_Fleets(BSB_OM, fleet_df, discard_mortality)
BSB_Hist <- SAMSE:::run_simulations(BSB_OM)
Compare_Biomass(BSB_Hist, BSB_rdat)
Compare_F(BSB_Hist, BSB_rdat)
Compare_Catch(BSB_Hist, BSB_rdat, TRUE)