# Plot the climate MSE climate results
library(TMB)
library(r4ss)
library(devtools)
library(PacifichakeMSE)
library(purrr)
library(dplyr)
library(reshape2)
library(patchwork)
mod <- SS_output('inst/extdata/SS32018', printstats=FALSE, verbose = FALSE) # Read the true selectivity
# Set the seed
seedz <- 12345
set.seed(seedz)
df <- load_data_seasons(nseason = 4, nspace = 2, bfuture = 0.5, myear = 2018) # Prepare data for operating model
parms.true <- getParameters_OM(TRUE,mod, df) # Load parameters from assessment
time <- 1
yrinit <- df$nyear
nruns <- 500
seeds <- floor(runif(n = nruns, min = 1, max = 1e6))
### Run the OM and the EM for x number of years in the MSE
### Set targets for harvesting etc
#
simyears <- 30 # Project 30 years into the future (2048 that year)
year.future <- c(df$years,(df$years[length(df$years)]+1):(df$years[length(df$years)]+simyears))
N0 <- NA
sim.data <- run.agebased.true.catch(df) # Run the operating model until 2018
simdata0 <- sim.data # The other one is gonna get overwritten.
#
# Insert results folder here (files are big )
#
# folder <- 'C:/Users/nsja/Dropbox/NOAA/Hake MSE/MSE results/final results/'
# #
files <- dir(folder)[grep(dir(folder),pattern = '.Rdata')]
# Recreate the violin pltos
yrs <- 1966:2047
perc <- c(0.2,0.8) # Percentiles for plotting
for(i in 1:length(files)){
load(paste(folder,files[i], sep = '')) # Prints as 'ls.save'
df.MSE <- flatten(ls.save) # Change the list a little bit
nruns <- length(ls.save)
# ProcessMSE is in the df_MSE function
catchcdf <- processMSE(df.MSE, 'Catch', idx = c(2,3), spacenames = c('CAN', 'USA'), runs = nruns,nspace = 2) # df_MSE.R calc
catchdf <- processMSE(df.MSE, 'Catch', idx = 2, spacenames = c('value'), runs = nruns, nspace = 2)
SSB_mid <- processMSE(df.MSE, id = 'SSB.mid', idx = c(1,2), spacenames = c('CAN', 'USA'), runs = nruns,nspace = 2)
SSB_tot <- processMSE(df.MSE, id = 'SSB', idx = 1, spacenames = c('value'), runs = nruns,nspace = 2)
SSB.EM <- processMSE(df.MSE, id = 'SSB.hes', idx = 1, spacenames = c('value'), runs = nruns,nspace = 2,
fn = 'rows')
# Calculate AAV
AAVdf <- AAV(catchcdf, idx = 4)
AAVtottmp <- AAV(catchdf, idx = 2)
catch.tot.tmp <- catchdf %>%
group_by(year) %>%
summarise(catchmean = median(value),
quants95 = quantile(value, probs =perc[2]),
quants5 = quantile(value, probs= perc[1]))
SSB.tot.tmp <- SSB_tot %>%
group_by(year) %>%
summarise(SSBmean = median(value),
quants95 = quantile(value, probs = perc[2]),
quants5 = quantile(value, probs= perc[1]))
AAV.tot.tmp <- AAVtottmp[AAVtottmp$year > 1966,] %>%
group_by(year) %>%
summarise(AAVmean = median(AAV, na.rm = TRUE),
quants95 = quantile(AAV, probs = perc[2]),
quants5 = quantile(AAV, probs= perc[1]))
strs <- strsplit(files[i], split = '_')[[1]]
runname <- paste(strs[4],strs[6],strsplit(strs[8], split = '.Rdata')[[1]], sep = '_')
catchdf$MP <- runname
catchcdf$MP <- runname
catch.tot.tmp$MP <- runname
SSB_mid$MP <- runname
SSB_tot$MP <- runname
SSB.tot.tmp$MP <- runname
SSB.EM$MP <- runname
AAVdf$MP <- runname
AAVtottmp$MP <- runname
AAV.tot.tmp$MP <- runname
HCRname <- strsplit(strs[8], split = '.Rdata')[[1]]
if(HCRname == 'TAC1'){
HCRname <- as.factor('HCR0')
}
if(HCRname == 'TAC2'){
HCRname <- as.factor('MD')
}
if(HCRname == 'TAC3'){
HCRname <- as.factor('AC')
}
catchdf$HCR <- HCRname
catchcdf$HCR <- HCRname
catch.tot.tmp$HCR <- HCRname
SSB_mid$HCR <- HCRname
SSB.tot.tmp$HCR <- HCRname
SSB_tot$HCR <- HCRname
SSB.EM$HCR <- HCRname
AAVdf$HCR <- HCRname
AAV.tot.tmp$HCR <- HCRname
AAVtottmp$HCR <- HCRname
catchdf$climate <- strs[6]
catchcdf$climate <- strs[6]
catch.tot.tmp$climate <- strs[6]
SSB_mid$climate <- strs[6]
SSB.tot.tmp$climate <- strs[6]
SSB_tot$climate <- strs[6]
SSB.EM$climate <- strs[6]
AAV.tot.tmp$climate <- strs[6]
AAVdf$climate <- strs[6]
AAVtottmp$climate <- strs[6]
if(i == 1){
catchdfexp <- catchdf
catchcdfexp <- catchcdf
catch.tot <- catch.tot.tmp
SSBdf <- SSB_mid
SSB.tot <- SSB.tot.tmp
SSB_cdf <- SSB_tot
ssb.EM <- SSB.EM
AAVdfexp <- AAVdf
AAV.tot <- AAV.tot.tmp
AAVcdf <- AAVtottmp
}else{
catchdfexp <- rbind(catchdfexp,catchdf)
catchcdfexp <- rbind(catchcdfexp,catchcdf)
catch.tot <- rbind(catch.tot,catch.tot.tmp)
SSBdf <- rbind(SSBdf, SSB_mid)
SSB.tot <- rbind(SSB.tot, SSB.tot.tmp)
SSB_cdf <- rbind(SSB_cdf, SSB_tot)
ssb.EM <- rbind(ssb.EM,SSB.EM)
AAVdfexp <- rbind(AAVdfexp, AAVdf)
AAV.tot <- rbind(AAV.tot, AAV.tot.tmp)
AAVcdf <- rbind(AAVcdf, AAVtottmp)
}
}
# Calculate risk
risk <- SSB_cdf %>% mutate(rel = value/sum(sim.data$SSB_0))
risk.year <- risk %>% group_by(year, MP, HCR, climate) %>%
summarise(riskmed = median(rel),
quants95 = quantile(rel, probs =0.99),
quants5 = quantile(rel, probs= 0.01)
)
risk.sum <- risk[risk$year>2018,]
risk.sum$closed <- 1
risk.sum$closed[which(risk.sum$rel < 0.1)] <- 0
risk.sum$decline <- 1
risk.sum$decline[which(risk.sum$rel < 0.4)] <- 0
# Risk per metric long term
risk.time <- risk.sum %>%
group_by(MP, HCR, climate, year) %>%
summarise(risk = length(which(rel< 0.1))/length(which(rel > 0.1)))
# ymin = quantile(length(closed[closed ==1])/n(), probs = perc[1]),
# ymax = quantile(length(closed[closed ==1])/n(), probs = perc[2]))
cols <- PNWColors::pnw_palette('Starfish',n = length(unique(risk.time$HCR)), type = 'discrete')
cols <- RColorBrewer::brewer.pal(n = length(unique(risk.time$HCR)), name = 'Accent')
lsize <- 0.5
usize <- 0.3
pyear <- 2018
cplot <- ggplot(catch.tot[catch.tot$year>pyear,], aes(x = year, y = catchmean*1e-6, color = climate))+
geom_line(size = lsize)+theme_bw()+facet_wrap(~HCR, ncol = 3)+
theme(legend.position = 'top',
text = element_text(size = 8),
legend.title = element_blank(),
strip.text = element_text(size=5),
axis.text.x = element_text(size = 5, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'),
legend.margin = margin(c(0,0,0,0)))+
scale_color_nejm(labels = c('baseline', 'moderate', 'high'))+
geom_line(aes(y = quants5*1e-6), linetype = 2, size = usize)+
geom_line(aes(y = quants95*1e-6), linetype = 2, size = usize)+
scale_y_continuous('Catch/\n(million tonnes)')+
scale_x_continuous('')+
geom_line(data = catch.tot[catch.tot$year< 2019 & catch.tot$year> pyear,] ,aes(x = year, y= catchmean*1e-6), color = 'black', size = lsize)
cplot
ssbplot <- ggplot(SSB.tot[SSB.tot$year>pyear,], aes(x = year, y = SSBmean*1e-6, color = climate))+geom_line(size = lsize)+theme_bw()+
theme(legend.position = 'none',
text = element_text(size = 8),
strip.text = element_text(size=5),
axis.text.x = element_text(size = 5, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'))+
geom_line(aes(y = quants5*1e-6), linetype = 2, size = usize)+
geom_line(aes(y = quants95*1e-6), linetype = 2, size = usize)+
scale_color_manual(values = cols)+
scale_x_continuous('')+facet_wrap(~HCR, ncol = 3)+scale_y_continuous('SSB')+
geom_line(data = SSB.tot[SSB.tot$year< 2019 & SSB.tot$year>pyear,] ,aes(x = year, y= SSBmean*1e-6), color = 'black', size = lsize)
riskplot <- ggplot(risk.year[risk.year$year>pyear,], aes(x = year, y = riskmed, color = climate))+geom_line(size = lsize)+theme_bw()+
theme(legend.position = 'none',
text = element_text(size = 8),
strip.text = element_text(size=5),
axis.text.x = element_text(size = 5, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'))+
geom_line(aes(y = quants5), linetype = 2, size = usize)+
geom_line(aes(y = quants95), linetype = 2, size = usize)+
scale_color_manual(values = cols)+coord_cartesian(ylim = c(0,0.7))+
geom_hline(aes(yintercept = .1), linetype = 2, color = 'black')+
scale_x_continuous('')+facet_wrap(~HCR, ncol = 3)+scale_y_continuous('SSB/\nSSB0')+
geom_line(data = risk.year[risk.year$year< 2019 & risk.year$year>pyear,] ,aes(x = year, y= riskmed), color = 'black', size = lsize)
riskplot
AAVplot <- ggplot(AAV.tot[AAV.tot$year>pyear,], aes(x = year, y = AAVmean, color = climate))+
geom_line(size = lsize)+theme_bw()+
theme(legend.position = 'none',
strip.text = element_text(size=5),
text = element_text(size = 8),
axis.text.x = element_text(size = 6, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'))+
scale_x_continuous('')+coord_cartesian(ylim = c(0,1.5))+
geom_line(aes(y = quants5), linetype = 2, size = usize)+
geom_line(aes(y = quants95), linetype = 2, size = usize)+
scale_color_manual(values = cols)+
facet_wrap(~HCR, ncol = 3)+scale_y_continuous('AAV')+
geom_line(data = AAV.tot[AAV.tot$year< 2019 & AAV.tot$year> pyear,] ,
aes(x = year, y= AAVmean), color = 'black', size = lsize)
AAVplot
# Risk plots
riskrun <- risk[risk$year>2020,] %>%
group_by(run, MP, HCR, climate) %>%
summarise(nyears = n(),
nover = sum(rel>0.1),
frac = nover/nyears)
#
# riskmean <- riskrun %>%
# group_by(MP, HCR, climate, year) %>%
# summarise(riskmed = median(frac),
# quants95 = quantile(frac, probs =0.95),
# quants5 = quantile(frac, probs= 0.05)
# )
riskviolin <- ggplot(riskrun,aes(x = HCR, y= 1-frac, color = HCR,fill = HCR))+
geom_violin(fill = NA)+
facet_wrap(~climate)+
theme_bw()+geom_hline(aes(yintercept = 0.05), linetype = 2)+coord_cartesian(ylim = c(0,0.2))+
scale_color_manual(values = cols)+scale_fill_manual(values = cols)+scale_x_discrete("")#+
riskviolin
# riskplot <- ggplot(riskmean,aes(x = year, y= 1-riskmed, color = climate,fill = climate))+
# geom_line()+geom_ribbon(aes(ymin = quants5, ymax = quants95))+
# theme_bw()+geom_hline(aes(yintercept = 0.05), linetype = 2)+coord_cartesian(ylim = c(0,0.2))+
# scale_color_manual(values = cols)+scale_fill_manual(values = cols)+scale_x_discrete("")
#
# riskplot
#risk.time$climate <- levels()
risklines <- ggplot(risk.time, aes(x = year, y = risk, color = climate, linetype = climate))+
geom_line(size = 1.2)+
facet_wrap(~HCR)+
theme_classic()+geom_hline(aes(yintercept = 0.05), linetype = 2)+
scale_color_npg(labels = c("baseline", "moderate", "high"))+
scale_linetype_manual(values = c(1,2,3), labels = c("baseline", "moderate", "high"))+
coord_cartesian(ylim = c(0,0.2)) + scale_y_continuous('risk \n of fisheries closure')+
theme(strip.background =element_rect(fill="white"))+theme(legend.position = 'top',
legend.title = element_blank(),
legend.background = element_blank())
risklines
png('results/Climate/Publication/Resubmission/Figure6.png', width = 16, height =8, res = 400, unit = 'cm')
risklines
dev.off()
# Pdf for publication
pdf('results/Climate/Publication/Resubmission/Figure6.pdf', width = 16/cm(1), height =8/cm(1))
risklines
dev.off()
png('results/Climate/objectives_publication.png', width = 16, height =14, res = 400, unit = 'cm')
cplot/riskplot/AAVplot
dev.off()
dodge <- position_dodge(width = 0.5)
perc <- c(0.1,0.90)
tag.x <- .04
rmout <- quantile(catchcdfexp$value[catchdfexp$year>2019]*1e-6, probs = perc)
vplot1 <- ggplot(catchcdfexp[catchcdfexp$year>2030,], aes(x = HCR,y = value*1e-6, group = MP, fill = climate))+
geom_violin(position = dodge)+scale_y_continuous(name = 'C \n(million tonnes)')+geom_line()+
scale_x_discrete('')+
geom_boxplot(width=0.2, col = 'black', outlier.shape = NA, position = dodge,
show.legend = FALSE)+
scale_fill_npg(labels = c('baseline', 'moderate', 'high'))+
guides(shape = guide_legend(override.aes = list(shape = 2)))+
facet_wrap(~variable)+coord_cartesian(ylim = c(0,0.5))+
theme_classic()+theme(legend.position = 'top',
strip.background =element_rect(fill="white"),
text = element_text(size = 10),
legend.title = element_blank(),
strip.text = element_text(size=5),
legend.key.size = unit(0.5, 'lines'),
axis.text.x = element_blank(),
plot.margin = unit(c(1,1,0,1), 'pt'),
legend.margin = margin(c(0,0,0,0)),
plot.tag.position = c(tag.x, 0.90),
plot.tag = element_text(size = 8)
)+
labs(tag = "(A)")
rmout <- quantile(SSBdf$value[SSBdf$year>2019]*1e-6, probs = perc)
vplot2 <- ggplot(SSBdf[SSBdf$year>2030,], aes(x = HCR,y = value*1e-6, group = MP, fill = climate))+
geom_violin(position = dodge)+scale_y_continuous(name = 'S\n(million tonnes)')+geom_line()+
theme_classic()+scale_x_discrete('')+
geom_boxplot(width=0.2, col = 'black', outlier.shape = NA, position = dodge)+
scale_fill_npg()+facet_wrap(~variable)+coord_cartesian(ylim = c(0,2))+
theme(legend.position = 'none',
text = element_text(size = 10),
strip.background =element_rect(fill="white"),
strip.text.x = element_blank(),
axis.text.x = element_blank(),
plot.margin = unit(c(1,1,0,1), 'pt'),
plot.tag.position = c(tag.x, 1.03),
plot.tag = element_text(size = 8)
)+
labs(tag = "(B)")
# Remove stupid outliers
rmout <- quantile(AAVdfexp$AAV[AAVdfexp$year>2019], probs = perc)
rmout <- c(0,4)
vplot3 <- ggplot(AAVdfexp[AAVdfexp$year>2030,], aes(x = HCR,y = AAV, group = MP, fill = climate))+
geom_violin(position = dodge)+scale_y_continuous(name = 'AAV')+geom_line()+theme_classic()+
geom_boxplot(width=0.2, col = 'black', outlier.shape = NA, position = dodge)+
scale_fill_npg()+
facet_wrap(~variable, nrow =1)+coord_cartesian(ylim = c(0,3))+
theme(legend.position = 'none',
text = element_text(size = 10),
axis.text.x = element_text(size =8),
plot.margin = unit(c(1,1,0,1), 'pt'),
strip.background = element_blank(),
strip.text.x = element_blank(),
plot.tag.position = c(tag.x, 1.03),
plot.tag = element_text(size = 8)
)+
labs(tag = "(C)")
# Test differe
AAVtest <- AAVdfexp[AAVdfexp$year > 2030,] %>%
group_by(MP,HCR,climate, variable) %>%
summarise(mAAv = median(AAV))
# Pdf for publication
pdf('results/Climate/Publication/Resubmission/Figure7.pdf', width = 16/cm(1), height =12/cm(1))
vplot1/vplot2/vplot3
dev.off()
# Minor calculations for manuscript
cmean <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate ==0,]$catchmean)
print(cmean)
csd <- sd(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate ==0,]$catchmean)
cc <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate =='04',]$catchmean)
cc2 <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate =='0',]$catchmean)
cc/cc2
ccc <- median(SSB.tot$SSBmean[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate =='0'])
ccc
pp <- median(SSB.tot$SSBmean[SSB.tot$year>2040 & SSB.tot$HCR == 'HCR0' & catch.tot$climate =='04'])
ccc-pp
median(AAVdfexp$AAV[AAVdfexp$year>2019 & AAVdfexp$HCR == 'HCR0' & AAVdfexp$climate =='0'])
# Relative
# Relative SSB
median(SSB_cdf$value[SSB_cdf$year>2040 & SSB_cdf$HCR == 'HCR0' & SSB.tot$climate == '0']/sum(sim.data$SSB0))# Country catch
sd(SSB_cdf$value[SSB_cdf$year>2040 & SSB_cdf$HCR == 'HCR0' & SSB.tot$climate == '0']/sum(sim.data$SSB0))# Country catch
median(SSB_cdf$value[SSB_cdf$year>2040 & SSB_cdf$HCR == 'HCR0' & SSB.tot$climate == '0'])# Country catch
HCRtest <- 'HCR0'
p <- median(catchcdfexp[catchcdfexp$year>2040 & catchcdfexp$variable == 'CAN' &
catchcdfexp$climate == '0' & catchcdfexp$HCR == HCRtest,]$value)/
median(catchcdfexp[catchcdfexp$year>2040 & catchcdfexp$variable == 'CAN' &
catchcdfexp$climate == '04' & catchcdfexp$HCR == HCRtest,]$value)
p
p <- median(catchcdfexp[catchcdfexp$year>2040 & catchcdfexp$variable == 'USA' & catchcdfexp$climate == '0'& catchcdfexp$HCR == HCRtest,]$value)/
median(catchcdfexp[catchcdfexp$year>2040 & catchcdfexp$variable == 'USA' & catchcdfexp$climate == '04' & catchcdfexp$HCR == HCRtest,]$value)
p
x <- median(SSB_cdf$value[SSB_cdf$year>2040 & SSB_cdf$climate == '0' & SSB_cdf$HCR == HCRtest])/
median(SSB_cdf$value[SSB_cdf$year>2040 & SSB_cdf$climate == '04' & SSB_cdf$HCR == HCRtest])
x
HCRtest <- 'HCR0'
p <- median(SSBdf[SSBdf$year>2040 & SSBdf$variable == 'CAN' &
SSBdf$climate == '0' & SSBdf$HCR == HCRtest,]$value)/
median(SSBdf[SSBdf$year>2040 & SSBdf$variable == 'CAN' &
SSBdf$climate == '04' & SSBdf$HCR == HCRtest,]$value)
p <- median(SSBdf[SSBdf$year>2040 & SSBdf$variable == 'USA' & SSBdf$climate == '0'& SSBdf$HCR == HCRtest,]$value)/
median(SSBdf[SSBdf$year>2040 & SSBdf$variable == 'USA' & SSBdf$climate == '04' & SSBdf$HCR == HCRtest,]$value)
p
p <- median(catchcdf[catchcdfexp$year>2040 & catchcdfexp$variable == 'USA' & catchcdfexp$climate == '0'& catchcdfexp$HCR == HCRtest,]$value)/
median(catchcdfexp[catchcdfexp$year>2040 & catchcdfexp$variable == 'USA' & catchcdfexp$climate == '04' & catchcdfexp$HCR == HCRtest,]$value)
p
HCRtest <- 'HCR0'
ytest <- 2040
p <- (1-(median(AAVdfexp[AAVdfexp$year>ytest &AAVdfexp$variable == 'CAN' &
AAVdfexp$climate == '0' &AAVdfexp$HCR == HCRtest,]$AAV)/
median(AAVdfexp[AAVdfexp$year>ytest & AAVdfexp$variable == 'CAN' &
AAVdfexp$climate == '04' & AAVdfexp$HCR == HCRtest,]$AAV)))*100
print(p)
p <- (1-median(AAVdfexp[AAVdfexp$year>ytest & AAVdfexp$variable == 'USA' &AAVdfexp$climate == '0'& AAVdfexp$HCR == HCRtest,]$AAV)/
median(AAVdfexp[AAVdfexp$year>ytest & AAVdfexp$variable == 'USA' & AAVdfexp$climate == '04' & AAVdfexp$HCR == HCRtest,]$AAV))*100
p
# Biggest differerence
ccc <- median(SSB.tot$SSBmean[catch.tot$year>2040 & catch.tot$HCR == 'AC' & catch.tot$climate =='02'])
cc1 <- median(SSB.tot$SSBmean[catch.tot$year>2040 & catch.tot$HCR == 'MD' & catch.tot$climate =='02'])
pp <- median(SSB.tot$SSBmean[SSB.tot$year>2040 & SSB.tot$HCR == 'HCR0' & catch.tot$climate =='02'])
(cc1/pp-1)*100
cc <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'AC' & catch.tot$climate =='0',]$catchmean)
cc <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'MD' & catch.tot$climate =='0',]$catchmean)
cc2 <- median(catch.tot[catch.tot$year>2040 & catch.tot$HCR == 'HCR0' & catch.tot$climate =='04',]$catchmean)
(cc/cc2-1)*100
# Presentation plots
cplot <- ggplot(catch.tot[catch.tot$year>pyear,], aes(x = year, y = catchmean*1e-6, color = climate))+
geom_line(size = lsize)+theme_bw()+facet_wrap(~HCR, ncol = 3)+
theme(legend.position = 'top',
text = element_text(size = 12),
legend.title = element_blank(),
strip.text = element_text(size=10),
axis.text.x = element_text(size = 10, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'),
legend.margin = margin(c(0,0,0,0)))+
scale_color_manual(values = cols, labels = c('baseline', 'moderate', 'high'))+
geom_line(aes(y = quants5*1e-6), linetype = 2, size = usize)+
geom_line(aes(y = quants95*1e-6), linetype = 2, size = usize)+scale_y_continuous( 'Catch')+
scale_x_continuous('')+
geom_line(data = catch.tot[catch.tot$year< 2019 & catch.tot$year> pyear,] ,aes(x = year, y= catchmean*1e-6), color = 'black', size = lsize)
ssbplot <- ggplot(SSB.tot[SSB.tot$year>pyear,], aes(x = year, y = SSBmean*1e-6, color = climate))+geom_line(size = lsize)+theme_bw()+
theme(legend.position = 'none',
text = element_text(size = 12),
strip.text = element_text(size=10),
axis.text.x = element_text(size = 10, angle = 90),
plot.margin = unit(c(1,1,0,1), 'pt'))+
geom_line(aes(y = quants5*1e-6), linetype = 2, size = usize)+scale_color_manual(values = cols)+
scale_x_continuous('')+
geom_line(aes(y = quants95*1e-6), linetype = 2, size = usize)+facet_wrap(~HCR, ncol = 3)+scale_y_continuous('SSB')+
geom_line(data = SSB.tot[SSB.tot$year< 2019 & SSB.tot$year>pyear,] ,aes(x = year, y= SSBmean*1e-6), color = 'black', size = lsize)
png(paste('results/Climate/','objectives_presentation.png', sep = ''), width = 16, height =20, res = 400, unit = 'cm')
cplot/ssbplot
dev.off()
vplot2 <- ggplot(SSBdf[SSBdf$year>2019,], aes(x = HCR,y = value*1e-6, group = MP, fill = climate))+
geom_violin(position = dodge)+scale_y_continuous(name = 'SSB \n(million tonnes)', limit = rmout)+
geom_line()+theme_bw()+
theme(legend.position = 'none',
text = element_text(size = 12),
plot.margin = unit(c(1,1,0,1), 'pt'))+scale_x_discrete('')+
geom_boxplot(width=0.2, col = 'black', outlier.shape = NA, position = dodge)+scale_fill_manual(values= cols)+
facet_wrap(~variable)
png(paste('results/Climate/','SSB_presentation.png', sep = ''), width = 16, height =10, res = 400, unit = 'cm')
vplot2
dev.off()
# Group catches by decade
catchdfexp$decade <- 0
catchdfexp$decade[catchdfexp$year >2019 & catchdfexp$year<2030] <- 2020
catchdfexp$decade[catchdfexp$year >2029 & catchdfexp$year<2040] <- 2030
catchdfexp$decade[catchdfexp$year >2039 & catchdfexp$year<2050] <- 2040
# Remove outliers
ctmp <- catchdfexp
# ctmp <- ctmp %>%
# group_by(run,year,HCR,climate,decade) %>%
# summarise(value = median(value))
# quants <- quantile(ctmp$value, probs = c(0.01,0.99))
# ctmp$value[ctmp$value < quants[1]] <- NA
# ctmp$value[ctmp$value > quants[2]] <- NA
pdec.c <- ggplot(ctmp[ctmp$decade != 0,], aes(x = as.factor(decade), y= value*1e-6, color = climate, fill = climate))+
facet_wrap(~HCR)+coord_cartesian(ylim = c(0,.6))+
theme_classic()+geom_line()+
geom_violin(position = dodge, show.legend = FALSE)+
geom_boxplot(color = 'black', position = dodge, width = 0.2, show.legend = FALSE, outlier.alpha = 0)+
scale_fill_npg()+
scale_color_npg(labels = c('baseline', 'moderate', 'high'))+
scale_x_discrete(name = '',breaks = c(2020,2030,2040), labels = c("","",""))+
scale_y_continuous('C\n(million tonnes)') +
theme(legend.position = 'top',
strip.background =element_rect(fill="white"),
text = element_text(size = 8),
legend.title = element_blank(),
legend.text = element_text(size =10),
strip.text = element_text(size=5),
legend.key.size = unit(0.5, 'lines'),
axis.text.x = element_blank(),
plot.margin = unit(c(1,1,0,1), 'pt'),
legend.margin = margin(c(0,0,0,0))
)#+
pdec.c
ssbtmp <- SSB_cdf
ssbtmp$decade <- 0
ssbtmp$decade[ssbtmp$year >2019 & ssbtmp$year<2030] <- 2020
ssbtmp$decade[ssbtmp$year >2029 & ssbtmp$year<2040] <- 2030
ssbtmp$decade[ssbtmp$year >2039 & ssbtmp$year<2050] <- 2040
# ssbtmp <- ssbtmp %>%
# group_by(run,year,HCR,climate,decade) %>%
# summarise(value = median(value))
pdec.ssb <- ggplot(ssbtmp[ssbtmp$decade != 0,],
aes(x = as.factor(decade), y= value/sum(sim.data$SSB_0), color = climate, fill = climate))+
facet_wrap(~HCR)+coord_cartesian(ylim = c(0,1))+
theme_classic()+
geom_violin(position = dodge)+
geom_boxplot(color = 'black', position = dodge, width = 0.2, show.legend = FALSE, outlier.alpha = 0)+
scale_fill_npg()+
scale_color_npg()+
scale_x_discrete(name = '',breaks = c(2020,2030,2040), labels = c("","",""))+
scale_y_continuous(expression(paste('S/','S'['0'])))+
theme(legend.position = 'none') +
theme(text = element_text(size = 8),
axis.text.x = element_text(size =6),
plot.margin = unit(c(1,1,0,1), 'pt'),
strip.background = element_blank(),
strip.text.x = element_blank()
)
pdec.ssb
aavtmp <- AAVcdf
aavtmp$decade <- 0
aavtmp$decade[aavtmp$year >2019 & aavtmp$year<2030] <- 2020
aavtmp$decade[aavtmp$year >2029 & aavtmp$year<2040] <- 2030
aavtmp$decade[aavtmp$year >2039 & aavtmp$year<2050] <- 2040
#
# aavtmp <- aavtmp %>%
# group_by(run,year,HCR,climate,decade) %>%
# summarise(AAV = median(AAV))
pdec.aav <- ggplot(aavtmp[aavtmp$decade != 0,],
aes(x = as.factor(decade), y= AAV, color = climate, fill = climate))+
facet_wrap(~HCR)+coord_cartesian(ylim = c(0,2))+
theme_classic()+
geom_violin(position = dodge)+
geom_boxplot(color = 'black', position = dodge, width = 0.2, show.legend = FALSE, outlier.alpha = 0)+
scale_fill_npg()+
scale_color_npg()+
scale_x_discrete(name = '',breaks = c(2020,2030,2040), labels = c("2020s","2030s","2040s"))+
scale_y_continuous('AAV')+
theme(legend.position = 'none',
text = element_text(size = 8),
axis.text.x = element_text(size =6),
plot.margin = unit(c(1,1,0,1), 'pt'),
strip.background = element_blank(),
strip.text.x = element_blank())
pdec.aav
png(paste('results/Climate/Publication/Resubmission/Supplementary/','objectives_decade.png', sep = ''), width = 16, height =12, res = 400, unit = 'cm')
pdec.c/pdec.ssb/pdec.aav+plot_annotation(tag_levels = 'a')
dev.off()
pdf(paste('results/Climate/Publication/Resubmission/Supplementary/','Figure9.pdf', sep = ''), width = 16/cm(1), height =12/cm(1))
pdec.c/pdec.ssb/pdec.aav+plot_annotation(tag_levels = 'a')
dev.off()
# Plot the performance of the operating model
EE <- data.frame(EE.ssb = (ssb.EM$value - SSB_cdf$value)/SSB_cdf$value, year = as.numeric(rownames(ls.save[[1]]$SSB)),
run = ssb.EM$run, MP = ssb.EM$MP, HCR = ssb.EM$HCR,
climate = ssb.EM$climate)
ggplot(EE[EE$HCR == 'HCR0' & EE$year > 2010,], aes(x = as.factor(year), y = EE.ssb))+
geom_boxplot(outlier.alpha = 0.1)+facet_wrap(~climate)+coord_cartesian(ylim = c(-2,2))+theme_classic()+
scale_x_discrete(breaks = seq(1970,2050,by = 10), labels= seq(1970,2050,by = 10))+scale_y_continuous('relative\nerror')
# summarize data
EE.tot <- EE %>%
group_by(year, MP, HCR, climate) %>%
summarise(Emedian = mean(EE.ssb),
Emin = quantile(EE.ssb, probs = 0.05),
Emax = quantile(EE.ssb, probs = 0.95))
p.ee <- ggplot(EE.tot[EE.tot$year > 2018 & EE.tot$HCR == 'HCR0',], aes(x = year, y = Emedian, color = climate, fill = climate, linetype = climate))+
geom_line(size = 1.2)+theme_classic()+
scale_y_continuous('relative\nerror')+
geom_ribbon(aes(ymin = Emin, ymax = Emax), alpha = 0.2,
linetype = 0,show.legend = FALSE)+
coord_cartesian(ylim = c(-0.8,0.8))+
scale_color_npg(labels = c('baseline', 'moderate', 'high'))+
scale_fill_npg()+
scale_linetype_manual(values = c(1,2,3), labels = c('baseline', 'moderate', 'high'))+
geom_hline(aes(yintercept = 0), linetype = 2, color = 'black')+
theme(legend.position = c(0.45,0.94), legend.direction = 'horizontal', legend.title = element_blank(),
legend.text = element_text(size = 8))
p.ee
windows(width = 8/cm(1), height = 8/cm(1))
p.ee
dev.off()
png('results/Climate/Publication/Resubmission/Figure5.png', width = 8, height = 6, res = 400, units = 'cm')
p.ee
dev.off()
pdf('results/Climate/Publication/Resubmission/Figure5.pdf', width = 8/cm(1), height = 8/cm(1))
p.ee
dev.off()
# print uncertainty
median(EE.tot[EE.tot$HCR == 'HCR0' & EE.tot$climate == '0',]$Emin)
median(EE.tot[EE.tot$HCR == 'HCR0' & EE.tot$climate == '0',]$Emax)
p.ee2 <- ggplot(EE.tot[EE.tot$year > 2018 & EE.tot$HCR == 'HCR0' ,], aes(x = year, y = Emedian))+
geom_line(size = 1.2)+theme_classic()+
scale_y_continuous('relative\nerror')+
geom_ribbon(aes(ymin = Emin, ymax = Emax), alpha = 0.2, linetype = 0,show.legend = FALSE)+coord_cartesian(ylim = c(-0.8,0.8))+
scale_color_manual(values = cols, labels = c('baseline', 'moderate', 'high'))+
scale_fill_manual(values = cols)+theme(legend.position = c(0.12,0.85))+guides(linetype = FALSE)+
geom_hline(aes(yintercept = 0), linetype = 2, color = 'black')+
facet_wrap(~climate)+
geom_line(data = EE[EE$HCR == 'HCR0' & EE$year > 2018,], aes(x= year, y = EE.ssb, group = run),alpha = 0.05, color ='black')
p.ee2
png('results/climate_alternative.png', width = 8, height = 6, res = 400, units = 'cm')
p.ee2
dev.off()
ggplot(EE[EE$MP == 'climate_0_TAC1',], aes(x= year, y = EE.ssb, group = run))+geom_line(size = 0.2, alpha = 0.1)+coord_cartesian(ylim = c(-2,2))+
theme_classic()
median(EE$EE.ssb[EE$year>2018 & EE$climate == '0' & EE$HCR == 'HCR0'])*100
median(EE$EE.ssb[EE$year>2018 & EE$climate == '02' & EE$HCR == 'HCR0'])*100
median(EE$EE.ssb[EE$year>2018 & EE$climate == '04' & EE$HCR == 'HCR0'])*100
# For the mins and maxes
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '0' & EE$HCR == 'HCR0'], probs = 0.05)*100
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '0' & EE$HCR == 'HCR0'], probs = 0.95)*100
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '02' & EE$HCR == 'HCR0'], probs = 0.05)*100
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '02' & EE$HCR == 'HCR0'], probs = 0.95)*100
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '04' & EE$HCR == 'HCR0'], probs = 0.05)*100
quantile(EE$EE.ssb[EE$year>2018 & EE$climate == '04' & EE$HCR == 'HCR0'], probs = 0.95)*100
p.ee.all <- ggplot(EE.tot[EE.tot$year > 2018,], aes(x = year, y = Emedian, color = climate, fill = climate, linetype = climate))+
geom_line(size = 1.2)+theme_classic()+
scale_y_continuous('relative\nerror')+
geom_ribbon(aes(ymin = Emin, ymax = Emax), alpha = 0.2, linetype = 0,show.legend = FALSE)+coord_cartesian(ylim = c(-0.8,0.8))+
scale_color_npg(labels = c('baseline', 'moderate', 'high'))+
scale_fill_npg()+
scale_linetype_manual(values = c(1,2,3), labels = c('baseline', 'moderate', 'high'))+
theme(legend.position = 'top', legend.direction = 'horizontal', legend.title = element_blank(),
legend.text = element_text(size = 6))+
facet_wrap(~HCR)+
geom_hline(aes(yintercept = 0), linetype = 2, color = 'black')
png('results/Climate/publication/climate_alternative_all.png', width = 16, height = 12, res = 400, units = 'cm')
p.ee.all
dev.off()
# Plot the total catch as violin
ptest <- ggplot(catch.tot[catch.tot$year>2018 & catch.tot$climate == "04",],
aes(x = HCR, y= catchmean, group = HCR, fill = HCR))+geom_violin()+
geom_boxplot(width = .10)+theme_bw()+scale_y_continuous('median catch')
ptest2 <- ggplot(SSB.tot[SSB.tot$year>2018 & SSB.tot$climate == "04",],
aes(x = HCR, y= SSBmean, group = HCR, fill = HCR))+geom_violin()+
geom_boxplot(width = .10)+theme_bw()+scale_y_continuous('median SSB')+
theme(legend.position = 'none')
ptest3 <- ggplot(AAV.tot[AAV.tot$year>2018 & AAV.tot$climate == "04",],
aes(x = HCR, y= AAVmean, group = HCR, fill = HCR))+geom_violin()+
geom_boxplot(width = .10)+theme_bw()+scale_y_continuous('median AAV')+
theme(legend.position = 'none')
png('results/Climate/summed_results_test.png', width = 16, height = 12, res = 400, units = 'cm')
ptest/ptest2/ptest3
dev.off()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.