We load libraries, code and data
library(mizer)
library(tidyverse)
library(plotly)
source("tuneParamsCourse.R")
params <- readRDS("NCME_params.rds")
catch <- readRDS("catch.rds")
We set the maximum recruitment to 3 times the steady-state recruitment and set the plankton rate to very high
p <- setRmax(params, 3)
p <- changePlankton(p, 1000)
We create two other params object in which the plankton growth rate is reduced by various factors
p5 <- changePlankton(p, 10^-5)
p11 <- changePlankton(p, 10^-10)
Relative changes in SSB
This plot was suggested by Mariella: we show the evolution of the spawning stock biomass for each species in three scenarios: the base case, the case with anchovy effort reduced to 0.9 and the cases with the same reduced effort but also reduced plankton rates.
effort <- p@initial_effort
effort["Anchovy"] <- 0.9
t_max <- 100
sims0 <- project(p, t_max = t_max)
sims1 <- project(p, t_max = t_max, effort = effort)
sims2 <- project(p5, t_max = t_max, effort = effort)
sims3 <- project(p11, t_max = t_max, effort = effort)
ssb0 <- getSSB(sims0)
ssb1 <- getSSB(sims1)
ssb2 <- getSSB(sims2)
ssb3 <- getSSB(sims3)
df1 <- melt(ssb1/ssb0)
df1$Scenario <- "No competition"
df2 <- melt(ssb2/ssb0)
df2$Scenario <- "Low competition"
df3 <- melt(ssb3/ssb0)
df3$Scenario <- "High competition"
df <- rbind(df1, df2, df3)
pl <- ggplot(df) +
geom_line(aes(x = time, y = value, colour = Scenario)) +
facet_wrap(~sp)
ggplotly(pl)
Relative changes in Yield
ssb0 <- getYield(sims0)
ssb1 <- getYield(sims1)
ssb2 <- getYield(sims2)
ssb3 <- getYield(sims3)
df1 <- melt(ssb1/ssb0)
df1$Scenario <- "No competition"
df2 <- melt(ssb2/ssb0)
df2$Scenario <- "Low competition"
df3 <- melt(ssb3/ssb0)
df3$Scenario <- "High competition"
df <- rbind(df1, df2, df3)
pl <- ggplot(df) +
geom_line(aes(x = time, y = value, colour = Scenario)) +
facet_wrap(~sp)
ggplotly(pl)
Animation of relative changes in spectra
animateRelativeSpectra(sims3, sims0, time_range = 1:50, ylim = c(NA, 0.12))
Yield curve for Anchovy
We run the simulation for 25 years with different values for the effort for fishing on Anchovy and plot the resulting yield curve showing the yield in year 25 as a function of effort.
# Yield curve for Anchovy
species <- "Anchovy"
efforts <- seq(0.6, 1.6, 0.05)
yield <- getYieldVsEffort(p, p@initial_effort, species, efforts)
plot(efforts, yield, type = "l")
yield_anchovy <- yield
Now we do the same with the reduced plankton rate
yield <- getYieldVsEffort(p11, p@initial_effort, species, efforts)
plot(efforts, yield, type = "l")
yield_anchovy11 <- yield
Let us look at the maximum yield and the effort that produces it.
c(max(yield_anchovy), max(yield_anchovy11))
c(efforts[which.max(yield_anchovy)], efforts[which.max(yield_anchovy100)])
We see that with reduced plankton, we actually need to increase the effort to get the maximum yield.
LS0tCnRpdGxlOiAiRWZmZWN0cyBvZiBjaGFuZ2VkIHBsYW5rdG9uIGdyb3d0aCByYXRlIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpXZSBsb2FkIGxpYnJhcmllcywgY29kZSBhbmQgZGF0YQpgYGB7ciBtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KG1pemVyKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShwbG90bHkpCnNvdXJjZSgidHVuZVBhcmFtc0NvdXJzZS5SIikKcGFyYW1zIDwtIHJlYWRSRFMoIk5DTUVfcGFyYW1zLnJkcyIpCmNhdGNoIDwtIHJlYWRSRFMoImNhdGNoLnJkcyIpCmBgYAoKV2Ugc2V0IHRoZSBtYXhpbXVtIHJlY3J1aXRtZW50IHRvIDMgdGltZXMgdGhlIHN0ZWFkeS1zdGF0ZSByZWNydWl0bWVudCBhbmQKc2V0IHRoZSBwbGFua3RvbiByYXRlIHRvIHZlcnkgaGlnaApgYGB7ciBtZXNzYWdlPUZBTFNFfQpwIDwtIHNldFJtYXgocGFyYW1zLCAzKQpwIDwtIGNoYW5nZVBsYW5rdG9uKHAsIDEwMDApCmBgYAoKV2UgY3JlYXRlIHR3byBvdGhlciBwYXJhbXMgb2JqZWN0IGluIHdoaWNoIHRoZSBwbGFua3RvbiBncm93dGggcmF0ZSBpcyByZWR1Y2VkCmJ5IHZhcmlvdXMgZmFjdG9ycwpgYGB7ciBtZXNzYWdlPUZBTFNFfQpwNSA8LSBjaGFuZ2VQbGFua3RvbihwLCAxMF4tNSkKcDExIDwtIGNoYW5nZVBsYW5rdG9uKHAsIDEwXi0xMCkKYGBgCgojIFJlbGF0aXZlIGNoYW5nZXMgaW4gU1NCIApUaGlzIHBsb3Qgd2FzIHN1Z2dlc3RlZCBieSBNYXJpZWxsYTogd2Ugc2hvdyB0aGUgZXZvbHV0aW9uIG9mIHRoZSBzcGF3bmluZwpzdG9jayBiaW9tYXNzIGZvciBlYWNoIHNwZWNpZXMgaW4gdGhyZWUgc2NlbmFyaW9zOiB0aGUgYmFzZSBjYXNlLCB0aGUgY2FzZQp3aXRoIGFuY2hvdnkgZWZmb3J0IHJlZHVjZWQgdG8gMC45IGFuZCB0aGUgY2FzZXMgd2l0aCB0aGUgc2FtZSByZWR1Y2VkIGVmZm9ydCAKYnV0IGFsc28gcmVkdWNlZCBwbGFua3RvbiByYXRlcy4KYGBge3IgbWVzc2FnZT1GQUxTRX0KZWZmb3J0IDwtIHBAaW5pdGlhbF9lZmZvcnQKZWZmb3J0WyJBbmNob3Z5Il0gPC0gMC45CnRfbWF4IDwtIDEwMApzaW1zMCA8LSBwcm9qZWN0KHAsIHRfbWF4ID0gdF9tYXgpCnNpbXMxIDwtIHByb2plY3QocCwgdF9tYXggPSB0X21heCwgZWZmb3J0ID0gZWZmb3J0KQpzaW1zMiA8LSBwcm9qZWN0KHA1LCB0X21heCA9IHRfbWF4LCBlZmZvcnQgPSBlZmZvcnQpCnNpbXMzIDwtIHByb2plY3QocDExLCB0X21heCA9IHRfbWF4LCBlZmZvcnQgPSBlZmZvcnQpCnNzYjAgPC0gZ2V0U1NCKHNpbXMwKQpzc2IxIDwtIGdldFNTQihzaW1zMSkKc3NiMiA8LSBnZXRTU0Ioc2ltczIpCnNzYjMgPC0gZ2V0U1NCKHNpbXMzKQpkZjEgPC0gbWVsdChzc2IxL3NzYjApCmRmMSRTY2VuYXJpbyA8LSAiTm8gY29tcGV0aXRpb24iCmRmMiA8LSBtZWx0KHNzYjIvc3NiMCkKZGYyJFNjZW5hcmlvIDwtICJMb3cgY29tcGV0aXRpb24iCmRmMyA8LSBtZWx0KHNzYjMvc3NiMCkKZGYzJFNjZW5hcmlvIDwtICJIaWdoIGNvbXBldGl0aW9uIgpgYGAKCgpgYGB7ciBtZXNzYWdlPUZBTFNFfQpkZiA8LSByYmluZChkZjEsIGRmMiwgZGYzKQpwbCA8LSBnZ3Bsb3QoZGYpICsKICAgIGdlb21fbGluZShhZXMoeCA9IHRpbWUsIHkgPSB2YWx1ZSwgY29sb3VyID0gU2NlbmFyaW8pKSArCiAgICBmYWNldF93cmFwKH5zcCkKZ2dwbG90bHkocGwpCmBgYAoKIyMgUmVsYXRpdmUgY2hhbmdlcyBpbiBZaWVsZAoKYGBge3IgbWVzc2FnZT1GQUxTRX0Kc3NiMCA8LSBnZXRZaWVsZChzaW1zMCkKc3NiMSA8LSBnZXRZaWVsZChzaW1zMSkKc3NiMiA8LSBnZXRZaWVsZChzaW1zMikKc3NiMyA8LSBnZXRZaWVsZChzaW1zMykKZGYxIDwtIG1lbHQoc3NiMS9zc2IwKQpkZjEkU2NlbmFyaW8gPC0gIk5vIGNvbXBldGl0aW9uIgpkZjIgPC0gbWVsdChzc2IyL3NzYjApCmRmMiRTY2VuYXJpbyA8LSAiTG93IGNvbXBldGl0aW9uIgpkZjMgPC0gbWVsdChzc2IzL3NzYjApCmRmMyRTY2VuYXJpbyA8LSAiSGlnaCBjb21wZXRpdGlvbiIKYGBgCgoKYGBge3IgbWVzc2FnZT1GQUxTRX0KZGYgPC0gcmJpbmQoZGYxLCBkZjIsIGRmMykKcGwgPC0gZ2dwbG90KGRmKSArCiAgICBnZW9tX2xpbmUoYWVzKHggPSB0aW1lLCB5ID0gdmFsdWUsIGNvbG91ciA9IFNjZW5hcmlvKSkgKwogICAgZmFjZXRfd3JhcCh+c3ApCmdncGxvdGx5KHBsKQpgYGAKCiMjIEFuaW1hdGlvbiBvZiByZWxhdGl2ZSBjaGFuZ2VzIGluIHNwZWN0cmEKYGBge3J9CmFuaW1hdGVSZWxhdGl2ZVNwZWN0cmEoc2ltczMsIHNpbXMwLCB0aW1lX3JhbmdlID0gMTo1MCwgeWxpbSA9IGMoTkEsIDAuMTIpKQpgYGAKCgojIyBZaWVsZCBjdXJ2ZSBmb3IgQW5jaG92eQpXZSBydW4gdGhlIHNpbXVsYXRpb24gZm9yIDI1IHllYXJzIHdpdGggZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIGVmZm9ydCBmb3IKZmlzaGluZyBvbiBBbmNob3Z5IGFuZCBwbG90IHRoZSByZXN1bHRpbmcgeWllbGQgY3VydmUgc2hvd2luZyB0aGUgeWllbGQgaW4KeWVhciAyNSBhcyBhIGZ1bmN0aW9uIG9mIGVmZm9ydC4KYGBge3J9CiMgWWllbGQgY3VydmUgZm9yIEFuY2hvdnkKc3BlY2llcyA8LSAiQW5jaG92eSIKZWZmb3J0cyA8LSBzZXEoMC42LCAxLjYsIDAuMDUpCnlpZWxkIDwtIGdldFlpZWxkVnNFZmZvcnQocCwgcEBpbml0aWFsX2VmZm9ydCwgc3BlY2llcywgZWZmb3J0cykKcGxvdChlZmZvcnRzLCB5aWVsZCwgdHlwZSA9ICJsIikKeWllbGRfYW5jaG92eSA8LSB5aWVsZApgYGAKCgpOb3cgd2UgZG8gdGhlIHNhbWUgd2l0aCB0aGUgcmVkdWNlZCBwbGFua3RvbiByYXRlCmBgYHtyfQp5aWVsZCA8LSBnZXRZaWVsZFZzRWZmb3J0KHAxMSwgcEBpbml0aWFsX2VmZm9ydCwgc3BlY2llcywgZWZmb3J0cykKcGxvdChlZmZvcnRzLCB5aWVsZCwgdHlwZSA9ICJsIikKeWllbGRfYW5jaG92eTExIDwtIHlpZWxkCmBgYAoKTGV0IHVzIGxvb2sgYXQgdGhlIG1heGltdW0geWllbGQgYW5kIHRoZSBlZmZvcnQgdGhhdCBwcm9kdWNlcyBpdC4KYGBge3J9CmMobWF4KHlpZWxkX2FuY2hvdnkpLCBtYXgoeWllbGRfYW5jaG92eTExKSkKYyhlZmZvcnRzW3doaWNoLm1heCh5aWVsZF9hbmNob3Z5KV0sIGVmZm9ydHNbd2hpY2gubWF4KHlpZWxkX2FuY2hvdnkxMDApXSkKYGBgCgpXZSBzZWUgdGhhdCB3aXRoIHJlZHVjZWQgcGxhbmt0b24sIHdlIGFjdHVhbGx5IG5lZWQgdG8gaW5jcmVhc2UgdGhlIGVmZm9ydAp0byBnZXQgdGhlIG1heGltdW0geWllbGQu