title: "Snow crab stock assessment" author: - name: given: Snow Crab Unit family: DFO Science # orcid: 0000-0003-3632-5723 # email: jae.choi@dfo-mpo.gc.ca # email: choi.jae.seok@gmail.com # corresponding: true affiliation: - name: Bedford Institute of Oceanography, Fisheries and Oceans Canada city: Dartmouth state: NS # url: www.bio.gc.ca keywords: - snow crab stock status assessment abstract: | Snow crab stock status assessment. fontsize: 12pt metadata-files: - _metadata.yml params: year_assessment: 2024 year_start: 1999 data_loc: "~/bio.data/bio.snowcrab" sens: 1 debugging: FALSE model_variation: logistic_discrete_historical
#| eval: true
#| output: false
#| echo: false
#| label: setup
require(knitr)
knitr::opts_chunk$set(
root.dir = data_root,
echo = FALSE,
out.width="6.2in",
fig.retina = 2,
dpi=192
)
# things to load into memory (in next step) via _load_results.qmd
toget = c( "fishery_results", "fishery_model" )
{{< include _load_results.qmd >}}
Survey timing changed from Spring to Autumn in 2004.
No survey in 2020 (Covid-19) and incomplete 2022 (mechanical issues).
Inshore areas of S-ENS were most affected.
Factors: early maturation, size-selective predation, fishing of largest individuals, start or end of a recruitment pulse, timing of survey.
Distributions are heterogeneous and often in shallower areas.
#| label: fig-logisticPredictions
#| eval: true
#| echo: false
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig.show: hold
#| fig-cap: "Fishable, posterior mean modelled biomass (pre-fishery; kt) are shown in dark orange. Light orange are posterior samples of modelled biomass (pre-fishery; kt) to illustrate the variability of the predictions. The biomass index (post-fishery, except prior to 2004) after model adjustment by the model catchability coefficient is in gray."
#| fig-subcap:
#| - "N-ENS"
#| - "S-ENS"
#| - "4X"
loc = file.path( data_loc, "fishery_model", year_assessment, "logistic_discrete_historical" )
fns = file.path( loc, c(
"plot_predictions_cfanorth.png",
"plot_predictions_cfasouth.png",
"plot_predictions_cfa4x.png"
) )
include_graphics( fns )
N-ENS: {r} round(B_north[t0], 2)
t in {r} year_assessment
{r} round(B_north[t1], 2)
t in {r} year_previous
.S-ENS: {r} round(B_south[t0], 2)
t in {r} year_assessment
{r} round(B_south[t1], 2)
t in {r} year_previous
.4X: {r} round(B_4x[t0], 2)
t in {r} year_assessment
-{r} year_assessment+1
{r} round(B_4x[t1], 2)
t for the {r} year_previous
-{r} year_assessment
season.#| label: fig-logisticFishingMortality
#| eval: true
#| echo: false
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig.show: hold
#| fig-cap: "Time-series of modelled instantaneous fishing mortality from Model 1, for N-ENS (left), S-ENS (middle), and 4X (right). Samples of the posterior densities are presented, with the darkest line being the mean."
#| fig-subcap:
#| - "N-ENS"
#| - "S-ENS"
#| - "4X"
odir = file.path( fishery_model_results, year_assessment, "logistic_discrete_historical" )
fns = file.path( odir, c(
"plot_fishing_mortality_cfanorth.png",
"plot_fishing_mortality_cfasouth.png",
"plot_fishing_mortality_cfa4x.png"
))
include_graphics( fns )
N-ENS: {r} round(FM_north[t0],3)
(annual exploitation rate of {r} round(100*(exp(FM_north[t0])-1),2)
%) in {r} year_assessment
{r} year_previous
rate of {r} round(FM_north[t1],3)
(annual exploitation rate of {r} round(100*(exp(FM_north[t1])-1),1)
%)S-ENS: {r} round(FM_south[t0],3)
(annual exploitation rate of {r} round(100*(exp(FM_south[t0])-1),1)
%) in {r} year_assessment
{r} year_previous
rate of {r} round(FM_south[t1],3)
(annual exploitation rate of {r} round(100*(exp(FM_south[t1])-1),1)
%)4X: {r} round(FM_4x[t0],3)
(annual exploitation rate of {r} round(100*(exp(FM_4x[t0])-1),1)
%) in {r} year_assessment
-{r} year_assessment+1
season
{r} year_assessment-1
-{r} year_assessment
season rate of {r} round(FM_4x[t1],3)
(annual exploitation rate of {r} round(100*(exp(FM_4x[t1])-1),1)
%)Localized exploitation rates are likely higher, as not all areas for which biomass is estimated are fished.
#| label: fig-ReferencePoints
#| eval: true
#| echo: false
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig.show: hold
#| fig-cap: "Harvest control rules for the Scotian Shelf Snow Crab fisheries."
fn = file.path( media_loc, "harvest_control_rules.png")
include_graphics( fn )
#| label: fig-logistic-hcr
#| eval: true
#| echo: false
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig.show: hold
#| fig-cap: "Reference Points (fishing mortality and modelled biomass) from the Fishery Model, for N-ENS (left), S-ENS (middle), and 4X (right). The large yellow dot indicates most recent year and the 95\\% CI. Not: the model does not account for illegal and unreported landings, and interspecific interactions."
#| fig-subcap:
#| - "N-ENS"
#| - "S-ENS"
#| - "4X"
odir = file.path( fishery_model_results, year_assessment, "logistic_discrete_historical" )
fns = file.path( odir, c(
"plot_hcr_cfanorth.png" ,
"plot_hcr_cfasouth.png",
"plot_hcr_cfa4x.png"
) )
include_graphics( fns )
| | N-ENS | S-ENS | 4X |
|----- | ----- | ----- | ----- |
| | | | |
|q | r round(q_north, 3)
(r round(q_north_sd, 3)
) | r round(q_south, 3)
(r round(q_south_sd, 3)
) | r round(q_4x, 3)
(r round(q_4x_sd, 3)
) |
|r | r round(r_north, 3)
(r round(r_north_sd, 3)
) | r round(r_south, 3)
(r round(r_south_sd, 3)
) | r round(r_4x, 3)
(r round(r_4x_sd, 3)
) |
|K | r round(K_north, 2)
(r round(K_north_sd, 2)
) | r round(K_south, 2)
(r round(K_south_sd, 2)
) | r round(K_4x, 2)
(r round(K_4x_sd, 2)
) |
|Prefishery Biomass | r round(B_north[t0], 2)
(r round(B_north_sd[t0], 2)
) | r round(B_south[t0], 2)
(r round(B_south_sd[t0], 2)
) | r round(B_4x[t0], 2)
(r round(B_4x_sd[t0], 2)
) |
|Fishing Mortality | r round(FM_north[t0], 3)
(r round(FM_north_sd[t0], 3)
) | r round(FM_south[t0], 3)
(r round(FM_south_sd[t0], 3)
) | r round(FM_4x[t0], 3)
(r round(FM_4x_sd[t0], 3)
) |
Note: Values in parentheses are Posterior standard deviations.
----------- The text needs to be updated ------------------
The ESS ecosystem is still experiencing a lot of volatility and prudence is wise:
Modelled solutions:
In N-ENS, though recruitment continues at low levels, a gap in future recruitment to the fishery is expected for the next 1-3 years
bridging this coming recruitment gap. A reduced TAC is prudent.
PA template suggest "healthy zone".
Flexiblity in harvest strategy exists due to strong recuitment.
recruitment to the fishery is likely to continue at a moderate rate for the upcoming season
low to moderate levels of recruitment are expected for 2 years. 4X exists in the "cautious zone".
habitat has been depressed for many years. A reduced TAC is prudent.
#| label: fig-logistic-surplus-production
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Surplus production. Each year is represented by a different colour."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_surplus_production_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-prior-posterior-K
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Prior-posterior comparisons of carrying capacity (K; kt)."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_prior_K_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-prior-posterior-r
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Prior-posterior comparisons of th iIntrinsic rate of biomass increase (r)."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_prior_r_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-prior-posterior-q
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Prior-posterior comparisons of the catchability coefficient (q)."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_prior_q1_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-prior-posterior-obserror
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Prior-posterior comparisons of Observation error (kt)."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_prior_bosd_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-prior-posterior-processerror
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "Prior-posterior comparisons of Model process error (kt)."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_prior_bpsd_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
#| label: fig-logistic-state-space
#| results: asis
#| echo: false
#| eval: true
#| output: true
#| fig-dpi: 144
#| fig-height: 4
#| fig-cap: "State space (kt): year vs year+1."
for (r in 1:nregions){
reg = regions[r]
REG = reg_labels[r]
cat("#### ", REG, "\n")
fn = file.path( fm_loc, paste("plot_state_space_", reg, ".png", sep="" ) )
show_image(check_file_exists(fn))
cat("\n\n")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.