inst/markdown/snowcrab_presentation_advisory.md

title: "Snow Crab Assessment Advisory" subtitle: "Maritimes Region" 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 >}}

Ecosystem considerations

Connectivity: Oceanic currents {.c}

Bathymetry {.c}

Substrate {.c}

Bottom Temperature {.c}

Species composition

Species composition PC1

Species composition PC2

Disease

Prey

Predators {.c}

Fishery performance

Entanglements of large megafauna

Bycatch 4X {.c}

At sea observed data: Carapace condition from observed data < 95mm CW

#| label: setup-observer-data
#| eval: true
#| output: false
  odb = odb0[ cw < 95 & prodcd_id==0 & shell %in% c(1:5) & region %in% regions & sex==0, ]  # male

4X:

#| eval: true
#| output: true
#| label: table-fishery-4x-sublegal
#| tbl-cap: "Fishery performance statistics in 4X. Distribution of at sea observations of males less than 95 mm CW by year and shell condition."
resX = dcast( odb0[ region=="cfa4x", .(N=.N), by=.(fishyr, shell) ], fishyr  ~ shell, value.var="N", fill=0, drop=FALSE, na.rm=TRUE )
if ("NA" %in% names(resX)) resX$"NA" = NULL
names(resX) = c("Year", "CC1", "CC2", "CC3", "CC4", "CC5" )
resX$Total = rowSums( resX[, 2:6 ], na.rm=TRUE)
resX[, 2:6 ] = round(resX[, 2:6 ] / resX$Total * 100, digits=2)
gt::gt(resX) |> gt::tab_options(table.font.size = 10, data_row.padding = gt::px(1), 
    summary_row.padding = gt::px(1), grand_summary_row.padding = gt::px(1), 
    footnotes.padding = gt::px(1), source_notes.padding = gt::px(1), 
    row_group.padding = gt::px(1))

At sea observed data: Carapace condition from observed data >= 95mm CW

#| eval: true
#| output: false
odb = odb0[ cw >= 95 & cw < 170  & prodcd_id==0 & shell %in% c(1:5) & region %in% regions & sex==0, ]  # male

4X:

#| eval: true
#| output: true
#| label: table-fishery-4x-comm
#| tbl-cap: "Fishery performance statistics in 4X. Distribution of at sea observations of males greater than 95 mm CW by year and shell condition."
resX = dcast( odb[ region=="cfa4x", .(N=.N), by=.(fishyr, shell) ], fishyr  ~ shell, value.var="N", fill=0, drop=FALSE, na.rm=TRUE )
names(resX) = c("Year", "CC1", "CC2", "CC3", "CC4", "CC5" )
resX$Total = rowSums( resX[, 2:6 ], na.rm=TRUE)
resX[, 2:6 ] = round(resX[, 2:6 ] / resX$Total * 100, digits=2)
gt::gt(resX) |> gt::tab_options(table.font.size = 10, data_row.padding = gt::px(1), 
    summary_row.padding = gt::px(1), grand_summary_row.padding = gt::px(1), 
    footnotes.padding = gt::px(1), source_notes.padding = gt::px(1), 
    row_group.padding = gt::px(1))

Percent soft from observed data

There are two possible definitions:

#| eval: true
#| output: true
odb = odb0[ cw >= 95 & cw < 170  & prodcd_id==0 & shell %in% c(1:5) & region %in% regions & sex==0, ]  # male
shell_condition = odb[ !is.na(odb$region), .N, by=.(region, fishyr, shell) ]
shell_condition[, total:=sum(N, na.rm=TRUE), by=.(region, fishyr)]
shell_condition$percent = round(shell_condition$N / shell_condition$total, 3) * 100
shell_condition$Year = shell_condition$fishyr

4X:

#| eval: true
#| output: true
#| label: table-fishery-4x-soft-durometer
#| tbl-cap: "Fishery performance statistics in 4X. Distribution of at sea observations of males soft-shelled  based on durometer (<68) and shell condition (1 and 2, SC)."
softX  = odb[ region=="cfa4x" & durometer <  68, .(Soft=.N), by=.(fishyr ) ] 
totalX = odb[ region=="cfa4x" & is.finite(durometer) , .(Total=.N), by=.(fishyr) ] 
resX = softX[totalX, on="fishyr"]
resX = resX[, .(Year=fishyr, Soft=round(Soft/Total*100,2), Total=Total) ]  
ssX = shell_condition[ region=="cfa4x" & shell %in% c(1,2), .(SoftSC=sum(percent), TotalSC=unique(total)[1]), by=.(Year)]
resX = resX[ssX, on="Year"]
gt::gt(resX) |> gt::tab_options(table.font.size = 8, data_row.padding = gt::px(1), 
    summary_row.padding = gt::px(1), grand_summary_row.padding = gt::px(1), 
    footnotes.padding = gt::px(1), source_notes.padding = gt::px(1), 
    row_group.padding = gt::px(1))

Survey results and stock status {.c}

Carapace condition from trawl data >= 95mm CW

#| eval: true
#| output: false
det = snowcrab.db( p=p, DS="det.georeferenced" )
setDT(det)
det$fishyr = det$yr  ## the counting routine expectes this variable
det = det[ cw >= 95 ,]  # commerical sized crab only
years = sort( unique( det$yr ) )
det$region = NA
for ( reg in regions) {
  r = polygon_inside(x = det, region = aegis.polygons::polygon_internal_code(reg), planar=FALSE)
  det$region[r] = reg
}

4X:

#| eval: true
#| output: true
#| label: table-survey-4X-comm
#| tbl-cap: "Distribution of 4X survey: males less than 95 mm CW by year and shell condition."
resX = dcast( det[ region=="cfa4x" & !is.na(shell), .(N=.N), by=.(fishyr, shell) ], fishyr  ~ shell, value.var="N", fill=0, drop=FALSE, na.rm=TRUE )
names(resX) = c("Year", "CC1", "CC2", "CC3", "CC4", "CC5" )
resX$Total = rowSums( resX[, 2:6 ], na.rm=TRUE)
resX[, 2:6 ] = round(resX[, 2:6 ] / resX$Total * 100, digits=2)
gt::gt(resX) |> gt::tab_options(table.font.size = 8, data_row.padding = gt::px(1), 
  summary_row.padding = gt::px(1), grand_summary_row.padding = gt::px(1), 
  footnotes.padding = gt::px(1), source_notes.padding = gt::px(1), 
  row_group.padding = gt::px(1))

Counts of stations in each area

#| eval: true
#| output: true
#| label: table-survey-station-count
#| tbl-cap: "Survey station counts"
set = snowcrab.db(p=p, DS="set.clean")
setDT(set)
# check towquality .. this should always == 1
if (length( unique( set$towquality) ) != 1 ) print("error -- not good tows")
set$region = NA
for (reg in c( "cfanorth", "cfasouth", "cfa4x"  ) ) {
  d = polygon_inside(set[,c("lon","lat")], reg)
  set$region[d] = reg 
}
out = dcast( set[, .(N=.N), by=.(region, yr)], yr~region, value.var="N", fill=0, drop=FALSE, na.rm=TRUE )
out[,Total:=sum(cfanorth,cfasouth,cfa4x, na.rm=TRUE)]
out = out[, .(yr, cfanorth, cfasouth, cfa4x)]
names(out) = c("Year", "NENS", "SENS", "4X")
gt::gt(out) |> gt::tab_options(table.font.size = 10, data_row.padding = gt::px(1), 
  summary_row.padding = gt::px(1), grand_summary_row.padding = gt::px(1), 
  footnotes.padding = gt::px(1), source_notes.padding = gt::px(1), 
  row_group.padding = gt::px(1))

Connectivity: Movement {.c}

``

Female Geometric mean density by size and maturity

Mature female maps

`

Mature female timeseries

Male Geometric mean density by size and maturity

Biomass Density {.c}

Biomass Density ... {.c}

Viable Habitat ... {.c}

Biomass Index (aggregate)

Biomass Index (aggregate) ... {.c}

Fishery Model Biomass (pre-fishery){.c}

Fishing Mortality {.c}

Fishery Model Summary {.c}

Reference Points {.c}

Reference Points ... {.c}

Conclusions: general

End

Stock status

Size structure

Factors: early maturation, size-selective predation, fishing of largest individuals, start or end of a recruitment pulse, timing of survey.

Recruitment

Reproduction

Reproduction (mature females)

Distributions are heterogeneous and often in shallower areas.

Sex ratios (proportion female, mature)

Modelled Biomass (pre-fishery)

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

S-ENS: {r} round(B_south[t0], 2) t in {r} year_assessment

4X: {r} round(B_4x[t0], 2) t in {r} year_assessment-{r} year_assessment+1

Fishing Mortality

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

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

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

Localized exploitation rates are likely higher, as not all areas for which biomass is estimated are fished.

Reference Points

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

Conclusions

The ESS ecosystem is still experiencing a lot of volatility and prudence is wise:

Modelled solutions:

Conclusions: N-ENS

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.

Conclusions: S-ENS

recruitment to the fishery is likely to continue at a moderate rate for the upcoming season

Conclusions: 4X

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.

Components of Snow Crab status in Maritimes Region {.c}

Life history {.c}

Life history {.c}

```{r photos, echo=FALSE, out.width='30%', fig.align='center', fig.show='hold', fig.cap = 'Snow Crab pelagic Zoea, benthic male and mating pair. Note sexual dimorphism.' } fn1=file.path( media_loc, "snowcrab_zoea.png" ) fn2=file.path( media_loc, "snowcrab_male.png" ) fn3=file.path( media_loc, "snowcrab_male_and_female.png" ) knitr::include_graphics( c(fn1, fn2, fn3) )

\@ref(fig:photos)


## Life history: stages{.c}

```{r lifehistory, echo=FALSE, out.width='90%', fig.align='center', fig.cap = 'Life history patterns of snow crab and approximate timing of the main life history stages of snow crab and size (carapace width; CW mm) and instar (Roman numerals). Size and timings are specific to the area of study and vary with environmental conditions, food availability and genetic variability.' }
fn1=file.path( media_loc, "life_history.png" )
knitr::include_graphics( fn1 ) 
# \@ref(fig:lifehistory)  

Life history: male growth stanzas {.c}

```{r lifehistory_male, echo=FALSE, out.width='50%', fig.align='center', fig.cap = 'The growth stanzas of the male component and decision paths to maturity and terminal moult. Black ellipses indicate terminally molted animals.' } fn1=file.path( media_loc, "life_history_male.png" ) knitr::include_graphics( fn1 )

\@ref(fig:lifehistory_male)


## Life history: growth modes{.c}

```{r growth_modes, echo=FALSE, out.width='40%', fig.align='center', fig.cap = 'Modal analysis.' }
fn1=file.path( media_loc, "growth_summary.png" )
knitr::include_graphics( c(fn1) ) 
# \@ref(fig:lifehistory_male)  

Life history: notable traits

Life history: movement (mark-recapture) {.c}

\begin{small} \begin{columns} \begin{column}{.48\textwidth} ```{r movementtracks, echo=FALSE, out.width='60%', fig.align='center', fig.show='hold', fig.cap = 'Snow Crab movement tracks from mark and recapture.' } fn1=file.path( media_loc, "movement0.png" ) fn2=file.path( media_loc, "movement.png" ) knitr::include_graphics( c(fn1, fn2) )

\@ref(fig:movementtracks)

\end{column}

\begin{column}{.48\textwidth}
```{r movement, echo=FALSE, out.width='55%', fig.align='center', fig.show='hold',  fig.cap = 'Snow Crab movement distances and rates.' }
fn1=file.path( media_loc, "snowcrab_movement_distances.png" )
fn2=file.path( media_loc, "snowcrab_movement_rates.png" )
knitr::include_graphics( c(fn1, fn2) ) 
# \@ref(fig:movement)  

\end{column} \end{columns} \end{small}

Life history: clustering {.c}

\begin{small} \begin{columns} \begin{column}{.48\textwidth} ```{r aggregation, echo=FALSE, out.width='60%', fig.align='center', fig.show='hold', fig.cap = 'Australian spider crab \emph{Leptomithrax gaimardii} aggregation for moulting and migration and Alaska red king crab \emph{Paralithodes camtschaticus} aggregation in Alaska for egg release, migrations.' } fn1=file.path( media_loc, "australian_leptomithrax_gaimardii.png" ) fn2=file.path( media_loc, "kingcrab_aggregation.png" ) knitr::include_graphics( c(fn1, fn2 ) )

\@ref(fig:aggregation)


- *Other* crab species show "Mounding" for protection from predation (larval, moulting and females)

- Narrow habitat preferences force them to move and cluster when environment is poor
\end{column}

\begin{column}{.48\textwidth}
```{r clustering, echo=FALSE, out.width='90%', fig.align='center', fig.show='hold',  fig.cap = 'High density locations of Snow Crab, approximately 1 per square meter.'}
fn = file.path(p$project.outputdir, "maps", "map_highdensity_locations.png" )
knitr::include_graphics( fn ) 
# \@ref(fig:aggregation)  
if (0) {
    # high density locations directly from databases
    M = snowcrab.db( DS="set.complete", p=p ) 
    setDT(M)
    i = which(M$totno.all > 2.5*10^5)
    H = M[i, .( plon, plat, towquality, dist, distance, surfacearea, vessel, yr, z, julian, no.male.all, no.female.all, cw.mean, totno.all, totno.male.imm, totno.male.mat, totno.female.imm, totno.female.mat, totno.female.primiparous, totno.female.multiparous, totno.female.berried)]
    H$log10density = log10(H$totno.all)
    library(ggplot2)
    cst = coastline_db( p=p, project_to=st_crs(pg) ) 
    isodepths = c(100, 200, 300)
    isob = isobath_db( DS="isobath", depths=isodepths, project_to=st_crs(pg))
    isob$level = as.factor( isob$level)
    plt = ggplot() +
      geom_sf( data=cst, show.legend=FALSE ) +
      geom_sf( data=isob, aes( alpha=0.1, fill=level), lwd=0.1, show.legend=FALSE) +
    geom_point(data=H, aes(x=plon, y=plat, colour=log10density), size=5) +
      coord_sf(xlim = c(270, 940 ), ylim = c(4780, 5200 )) +
    theme(legend.position="inside", legend.position.inside=c(0.08, 0.8)) 
    png(filename=fn, width=1000,height=600, res=144)
      (plt)
    dev.off()
}

\begin{block}{Uncertainty} Historical snow crab high density locations \end{block} \end{column} \end{columns} \end{small}

Ecosystem change

Ecosystem change: Predators {.c}

Ecosystem change: Predators - Atlantic Halibut {.c}

```{r halibut-timeseries, out.width='50%', echo=FALSE, fig.align='center', fig.cap = 'Atlantic Halibut crude, unadjusted geometric mean numerical density (no/km$^2$) from annual Snow Crab survey. Error bars are 95\% Confidence Intervals.' } include_graphics( file.path( data_loc, 'assessments', year_assessment, 'timeseries', 'survey', 'ms.no.30.png') )

\@ref(fig:halibut-timeseries)


##  Ecosystem change: Predators - Atlantic Halibut ... {.c}

```{r halibut-map, out.width='32%', fig.show='hold', fig.align='center', fig.cap= 'Halibut density log10(no/km$^2$) from the Snow Crab survey.' }
loc = file.path( data_loc, 'output', 'maps', 'survey', 'snowcrab', 'annual', 'bycatch', 'ms.no.30' )
yrsplot = setdiff( year_assessment + c(0:-9), 2020)
fn4 = file.path( loc, paste( 'ms.no.30', yrsplot[4], 'png', sep='.') )
fn3 = file.path( loc, paste( 'ms.no.30', yrsplot[3], 'png', sep='.') )
fn2 = file.path( loc, paste( 'ms.no.30', yrsplot[2], 'png', sep='.') )
fn1 = file.path( loc, paste( 'ms.no.30', yrsplot[1], 'png', sep='.') )
include_graphics( c(  fn3, fn2, fn1) )
# \@ref(fig:halibut-map)  

\begin{block}{Uncertainty} Higher predation mortality seems likely (more encounters with warmer-water species) \end{block}

Ecosystem change: Predators - Thorny skate {.c}

```{r thornyskate-timeseries, out.width='60%', echo=FALSE, fig.align='center', fig.cap = 'Thorny Skate crude, unadjusted geometric mean numerical density (no/km$^2$) from annual Snow Crab survey. Error bars are 95\% Confidence Intervals.'} include_graphics( file.path( data_loc, 'assessments', year_assessment, 'timeseries', 'survey', 'ms.no.201.png') )

\@ref(fig:thornyskate-timeseries)


## Ecosystem change: Predators - Thorny skate ... {.c}

```{r thornyskate-map, out.width='32%', fig.show='hold', fig.align='center', fig.cap= 'Thorny skate density log10(no/km$^2$) from the Snow Crab survey.' }
loc = file.path( data_loc, 'output', 'maps', 'survey', 'snowcrab', 'annual', 'bycatch', 'ms.no.201' )
yrsplot = setdiff( year_assessment + c(0:-9), 2020)
fn4 = file.path( loc, paste( 'ms.no.201', yrsplot[4], 'png', sep='.') )
fn3 = file.path( loc, paste( 'ms.no.201', yrsplot[3], 'png', sep='.') )
fn2 = file.path( loc, paste( 'ms.no.201', yrsplot[2], 'png', sep='.') )
fn1 = file.path( loc, paste( 'ms.no.201', yrsplot[1], 'png', sep='.') )
include_graphics( c(  fn3, fn2, fn1) )
# \@ref(fig:thornyskate-map)  

\begin{block}{Uncertainty} Higher predation mortality seems likely (more encounters with warmer-water species) \end{block}

Ecosystem change: Co-occurring - Northern shrimp {.c}

```{r Shrimp-timeseries, out.width='60%', echo=FALSE, fig.align='center', fig.cap = 'Northern Shrimp crude, unadjusted geometric mean numerical density (n/$km^2$) from annual Snow Crab survey. Error bars are 95\% Confidence Intervals.' } include_graphics( file.path( data_loc, 'assessments', year_assessment, 'timeseries', 'survey', 'ms.no.2211.png') )

\@ref(fig:Shrimp-timeseries)


## Ecosystem change: Co-occurring - Northern shrimp ... {.c}

```{r Shrimp-map, out.width='32%', fig.show='hold', fig.align='center', fig.cap= 'Northern Shrimp density log10(no/km$^2$) from the Snow Crab survey.' }
loc = file.path( data_loc, 'output', 'maps', 'survey', 'snowcrab', 'annual', 'bycatch', 'ms.no.2211' )
yrsplot = setdiff( year_assessment + c(0:-9), 2020)
fn4 = file.path( loc, paste( 'ms.no.2211', yrsplot[4], 'png', sep='.') )
fn3 = file.path( loc, paste( 'ms.no.2211', yrsplot[3], 'png', sep='.') )
fn2 = file.path( loc, paste( 'ms.no.2211', yrsplot[2], 'png', sep='.') )
fn1 = file.path( loc, paste( 'ms.no.2211', yrsplot[1], 'png', sep='.') )
include_graphics( c( fn3, fn2, fn1) )
# \@ref(fig:Shrimp-map)  

Shrimp with similar habitat preferences have declined, possibly due to large-scaled habitat variations and predation.

\begin{block}{Uncertainty} Sampling was incomplete in 2020 and 2022 in S-ENS. \end{block}

Ecosystem change: species composition

```{r speciesomposition, echo=FALSE, out.width='48%', fig.align='center', fig.show='hold', fig.cap = 'Species composition in space and time. Primary gradient is related to bottom temperatures.' } spc_loc = file.path( data_root, 'aegis', 'speciescomposition', 'modelled', 'default', 'maps' ) fn1 = file.path( spc_loc, 'pca1.space_re_total.png') fn2 = file.path( spc_loc, 'pca2.space_re_total.png') ts_loc = file.path( data_root, 'aegis', 'speciescomposition', 'modelled', 'default', 'figures' ) fn3 = file.path( ts_loc, 'pca1_time.png') fn4 = file.path( ts_loc, 'pca2_time.png') knitr::include_graphics( c(fn1, fn3 ) )

\@ref(fig:habitat3)



\begin{block}{Uncertainty}
Sampling was incomplete in 2020 and 2022 in S-ENS.
\end{block}


## Ecosystem change: Bottom Temperature {.c}

```{r bottom-temperatures-survey, out.width='50%', echo=FALSE, fig.align='center', fig.cap = 'Annual variations in bottom temperature observed during the Snow Crab survey. The horizontal (black) line indicates the long-term, median temperature within each subarea. Error bars represent standard errors.' }
knitr::include_graphics( file.path( data_loc, 'assessments', year_assessment, 'timeseries', 'survey', 't.png') )
# \@ref(fig:bottom-temperatures-survey)

\begin{block}{Uncertainty} Sampling was incomplete in 2020 and 2022 in S-ENS. \end{block}

Ecosystem change: Bottom Temperature ... {.c}

Ecosystem considerations: Bottom Temperature ... {.c}

```{r bottom-temperatures-map, out.width='30%', echo=FALSE, fig.show='hold', fig.align='center', fig.cap = 'Spatial variations in bottom temperature estimated from a historical analysis of temperature data for 1 September.' }

loc = file.path( data_root, 'aegis', 'temperature', 'modelled', 'default', 'maps' ) yrsplot = year_assessment + c(0:-10) fn10 = file.path( loc, paste( 'predictions.', yrsplot[10], '.0.75', '.png', sep='') ) fn9 = file.path( loc, paste( 'predictions.', yrsplot[9], '.0.75', '.png', sep='') ) fn8 = file.path( loc, paste( 'predictions.', yrsplot[8], '.0.75', '.png', sep='') ) fn7 = file.path( loc, paste( 'predictions.', yrsplot[7], '.0.75', '.png', sep='') ) fn6 = file.path( loc, paste( 'predictions.', yrsplot[6], '.0.75', '.png', sep='') ) fn5 = file.path( loc, paste( 'predictions.', yrsplot[5], '.0.75', '.png', sep='') ) fn4 = file.path( loc, paste( 'predictions.', yrsplot[4], '.0.75', '.png', sep='') ) fn3 = file.path( loc, paste( 'predictions.', yrsplot[3], '.0.75', '.png', sep='') ) fn2 = file.path( loc, paste( 'predictions.', yrsplot[2], '.0.75', '.png', sep='') ) fn1 = file.path( loc, paste( 'predictions.', yrsplot[1], '.0.75', '.png', sep='') ) knitr::include_graphics( c( fn3, fn2, fn1) )

\@ref(fig:bottom-temperatures-map)

Spatial variations in bottom temperature estimated from a historical analysis of temperature data for 1 September.



\begin{block}{Uncertainty}
* Groundfish surveys were not conducted in 2020 and 2022 in the snow crab domain.

* Snow crab surveys were not conducted in 2020, and incomplete in 2022 for S-ENS.
\end{block}



## Ecosystem considerations: Bottom Temperature ... {.c}

Persistent spatial gradient of almost $15^\circ$C in bottom temperatures in the Maritimes Region. 

Variable due to confluence of the warm, high salinity Gulf Stream from the S-SE along the shelf edge; cold, low salinity Labrador Current; and cold low salinity St. Lawrence outflow from the N-NE, as well as a nearshore Nova Scotia current, running from the NE. 

```{r bottom-temperatures-spatialeffect, out.width='35%', echo=FALSE, fig.align='center', fig.cap = 'Persistent spatial effect of bottom temperature, relative to the overall mean, after adjustment for spatiotemporal variability and autocorrelations. Time period from 1999 to present.' }
loc = file.path( data_root, 'aegis', 'temperature', 'modelled', 'default', 'maps' )
knitr::include_graphics( file.path( loc, 'space_re_total.png') )
# \@ref(fig:bottom-temperatures-spatialeffect)

Ecosystem considerations: Bottom Temperature ... {.c}

\begin{columns} \begin{column}{.6\textwidth} ```{r bottom-temperatures, out.width='65%', echo=FALSE, fig.align='center', fig.cap = '' } knitr::include_graphics( file.path( data_loc, 'assessments', year_assessment, 'timeseries', 'temperature_bottom.png') )

\@ref(fig:bottom-temperatures)

\end{column}
\begin{column}{.4\textwidth}

\vspace{12mm}

\begin{footnotesize}
\textbf{Figure}: Temporal variations in bottom temperature estimated from a historical analysis of temperature data. Red horizontal line is at $7^\circ$C. Presented are 95\% Credible Intervals of spatial variability in temperature at each time slice, after adjustment for spatiotemporal autocorrelation.
\end{footnotesize}
\end{column}
\end{columns}


# Human interactions

## Human interactions: Every known population is exploited worldwide {.c}

- Human consumption (males; > 95mm CW) due to higher meat yield and sexual dimorphism
- Bait in other fisheries (illegal in Canada, but still present)
- Fertilizer in agriculture
- Chitosan: glucosamine polysaccharide derived from chitin
    - agent to slow bleeding from wounds (Zhang et al. 2015, Moghadas et al. 2016)
    - agriculturally as natural fungicides and bactericides (Linden & Stoner 2007)
    - plastic replacement (Tampieri et al. 2003) 
    - battery electrolyte (Poosapati et al. 2021).



## Human interactions: Management Approach

\begin{columns}
\begin{column}{.46\textwidth}
\begin{tiny}
```{r area_map, echo=FALSE, out.width='80%', fig.align='center', fig.cap = 'The Scotian Shelf (NW Atlantic Ocean; NAFO Div. 4VWX). Shown are isobaths and major bathymetric features. Managed Crab Fishing Areas (CFAs; divided by dashed lines) include: NENS, SENS, 4X. SENS is further subdivided (dotted line) into 23 (NW) and 24 (SE).' }
fn1=file.path( media_loc, "area_map.png" )
knitr::include_graphics( fn1 ) 
# \@ref(fig:area_map)  

\end{tiny} \end{column} \begin{column}{.52\textwidth} \begin{footnotesize} \begin{itemize} \item Precautionary Approach, Fish Stock Provisions, 2022 \item Spatial refugia (slope edge, MPAs) \item Temporal refugia (fishing seasons) \item Biological refugia: most life stages protected \begin{itemize} \begin{scriptsize} \item Conservative exploitation since mid-2000s \item Spawning stock legally and completely protected \item Market-driven protection for 10+ yrs \end{scriptsize} \end{itemize} \item Evidence-based decision making: trawl survey, assessment \item Distributed knowledge network: traditional, historical, scientific \item Satellite VMS; biodegradeable mesh (ghost-fishing); weighted lines (entanglement), etc ... \end{itemize} \end{footnotesize} \end{column} \end{columns}

Human interactions: Fishing effort {.c}

Similar between r year_assessment and r year_previous in terms of spatial distribution. In S-ENS, there was, however, a minor spatial contraction to inshore areas and away from the area 23-24 boundary.

\begin{tiny} ```{r effort-map, echo=FALSE, out.width='45%', fig.show='hold', fig.align='center', fig.cap = 'Snow Crab fishing effort from fisheries logbook data for previous and current years. Units are No. $\times 10^3$ per (10 km X 10 km) grid.' } loc0= file.path( data_loc, "output", "maps", "logbook", "snowcrab", "annual", "effort" ) fn1 = file.path( loc0, paste( "effort", year_previous, "png", sep=".") ) fn2 = file.path( loc0, paste( "effort", year_assessment, "png", sep=".") ) include_graphics( c(fn1, fn2) )

\@ref(fig:landings-map)

\end{tiny}


## Human interactions: Fishing effort ...  {.c}

\begin{tiny}
```{r effort-timeseries, echo=FALSE, out.width='60%', fig.align='center', fig.cap = 'Temporal variations in fishing effort $\\times 10^3$ trap hauls.' }
fn1=file.path( data_loc, "assessments", year_assessment, "timeseries", "fishery",   "effort.ts.png" )
knitr::include_graphics( fn1 ) 
# \@ref(fig:effort-timeseries)  

\end{tiny}

Human interactions: Fishery landings and TACs {.c}

\begin{tiny} ```{r landings-map, echo=FALSE, out.width='45%', fig.show='hold', fig.align='center', fig.cap = 'Snow Crab landings from fisheries logbook data for previous and current years. Units are tons per 10 km x 10 km grid.' } loc0= file.path( data_loc, "output", "maps", "logbook", "snowcrab", "annual", "landings" ) fn1 = file.path( loc0, paste( "landings", year_previous, "png", sep=".") ) fn2 = file.path( loc0, paste( "landings", year_assessment, "png", sep=".") ) knitr::include_graphics( c(fn1, fn2 ) )

\@ref(fig:landings-map)

\end{tiny}


## Human interactions: Fishery landings and TACs ... {.c}

In 2022, landings in all areas were below respective TACs.

\begin{tiny}
```{r landings-timeseries, echo=FALSE, out.width='60%',  fig.align='center', fig.cap = 'Landings (t) of Snow Crab on the SSE. For 4X, the year refers to the starting year of the season.  Inset is a closeup view of the timeseries for N-ENS and 4X.'}
include_graphics( file.path( data_loc, "assessments", year_assessment, "timeseries", "fishery",   "landings.ts.png" ) )
# \@ref(fig:landings-timeseries)

\end{tiny}

Human interactions: Fishery catch rates

```{r cpue-map, echo=FALSE, out.width='45%', fig.show='hold', fig.align='center', fig.cap = 'Snow Crab crude catch rates on the Scotian Shelf for previous and current years. Units are kg/trap haul per 10 km x 10 km grid.' } loc0= file.path( data_loc, "output", "maps", "logbook", "snowcrab", "annual", "cpue" ) fn1 = file.path( loc0, paste( "cpue", year_previous, "png", sep=".") ) fn2 = file.path( loc0, paste( "cpue", year_assessment, "png", sep=".") ) knitr::include_graphics( c(fn1, fn2 ) )

\@ref(fig:cpue-map)



## Human interactions: Fishery catch rates ...

\begin{tiny}
```{r cpue-timeseries, echo=FALSE, out.width='60%', fig.align='center', fig.cap = 'Temporal variations in crude catch rates of Snow Crab (kg per trap haul).'}
include_graphics( file.path( data_loc, "assessments", year_assessment, "timeseries", "fishery",   "cpue.ts.png" ) ) 
# \@ref(fig:cpue-timeseries)  

\end{tiny}

Human interactions: At-Sea-Observed information

\begin{tiny} ```{r observer-locations-map, out.width='22%', fig.show='hold', fig.align='center', fig.cap= 'Snow Crab At-sea-observer locations.' } loc = file.path( data_loc, "output", "maps", "observer.locations" ) yrsplot = year_assessment + c(0:-4) fn4 = file.path( loc, paste( "observer.locations", yrsplot[4], "png", sep=".") ) fn3 = file.path( loc, paste( "observer.locations", yrsplot[3], "png", sep=".") ) fn2 = file.path( loc, paste( "observer.locations", yrsplot[2], "png", sep=".") ) fn1 = file.path( loc, paste( "observer.locations", yrsplot[1], "png", sep=".") ) include_graphics( c( fn4, fn3, fn2, fn1) )

\@ref(fig:observer-locations-map)

\end{tiny}

\vspace{5mm}

Bycatch: last assessment was in 2017 and levels were << 1% by weight.

<!-- 

\begin{tiny}
```{r observer-CC, echo=FALSE, eval = FALSE, out.width='27%', fig.show='hold', fig.align='center', fig.cap = 'Size frequency distribution of Snow Crab sampled by At-sea-observers, broken down by Carapace Condition (CC). For 4X, the year refers to the starting year of the season. Vertical lines indicate 95 mm Carapace Width, the minimum legal commercial size.' }
  loc = file.path( data_loc, "assessments", year_assessment, "figures", "size.freq", "observer")
  fn1 = file.path( loc, paste( "size.freqcfanorth", (year_previous), ".png", sep="" ) )
  fn2 = file.path( loc, paste( "size.freqcfanorth", (year_assessment  ), ".png", sep="" ) )
  fn3 = file.path( loc, paste( "size.freqcfasouth", (year_previous), ".png", sep="" ) )
  fn4 = file.path( loc, paste( "size.freqcfasouth", (year_assessment  ), ".png", sep="" ) )
  fn5 = file.path( loc, paste( "size.freqcfa4x", (year_previous), ".png", sep="" ) )
  fn6 = file.path( loc, paste( "size.freqcfa4x", (year_assessment  ), ".png", sep="" ) )
  include_graphics(  c(fn1, fn2, fn3, fn4, fn5, fn6) )
# \@ref(fig:observer-CC)  

\end{tiny}

-->

Stock status {.c}

Stock status: survey {.c}

\begin{tiny} ```{r survey-locations-map, out.width='26%', fig.show='hold', fig.align='center', fig.cap= 'Snow Crab survey locations.' } loc = file.path( data_loc, "output", "maps", "survey.locations" ) yrsplot = setdiff( year_assessment + c(0:-9), 2020) fn6 = file.path( loc, paste( "survey.locations", yrsplot[6], "png", sep=".") ) fn5 = file.path( loc, paste( "survey.locations", yrsplot[5], "png", sep=".") ) fn4 = file.path( loc, paste( "survey.locations", yrsplot[4], "png", sep=".") ) fn3 = file.path( loc, paste( "survey.locations", yrsplot[3], "png", sep=".") ) fn2 = file.path( loc, paste( "survey.locations", yrsplot[2], "png", sep=".") ) fn1 = file.path( loc, paste( "survey.locations", yrsplot[1], "png", sep=".") ) include_graphics( c(fn3, fn2, fn1) )

\@ref(fig:survey-locations-map)

\end{tiny}


<!-- 
## Stock status: Size structure 

Factors: early maturation, size-selective predation, fishing of largest individuals, start or end of a recruitment pulse, timing of survey. 
\begin{scriptsize}
```{r meansize-male-mat, out.width='50%', echo=FALSE, eval = FALSE, fig.align='center', fig.cap = 'Mean size of mature male Snow Crab (CW; mm) from surveys with 95\\% Confidence Intervals'}
include_graphics(  file.path( data_loc, "assessments", year_assessment, "timeseries", "survey", "cw.mat.png" )  )
# \@ref(fig:meansize-male-mat)
###
\end{scriptsize}

-->


## Stock status: Carapace condition of mature male crab 

\begin{small}
\begin{columns}
\begin{column}{.48\textwidth}

\vspace{4mm}

- CC5 crab of mature crab.

\vspace{12mm}

\begin{scriptsize}
\textbf{Figure}: Size-frequency of mature male Snow Crab by carapace width (mm) and carapace condition from surveys. Columns are years and rows are N-ENS (top), S-ENS(middle) and 4X(bottom).
\end{scriptsize}

\end{column}
\begin{column}{.48\textwidth}
\begin{tiny}
```{r sizefeq-male-survey-cc, out.width='45%', fig.show='hold', echo=FALSE, fig.align='center', fig.cap = ''}
  odir = file.path( data_loc, "assessments", year_assessment, "figures", "size.freq", "carapacecondition" )
  fn1 = file.path( odir, "sizefreq.cfanorth.2019.png" ) 
  fn2 = file.path( odir, "sizefreq.cfasouth.2019.png" ) 
  fn3 = file.path( odir, "sizefreq.cfa4x.2019.png" ) 
  fn4 = file.path( odir, "sizefreq.cfanorth.2021.png" ) 
  fn5 = file.path( odir, "sizefreq.cfasouth.2021.png" ) 
  fn6 = file.path( odir, "sizefreq.cfa4x.2021.png" ) 
  fn7 = file.path( odir, "sizefreq.cfanorth.2022.png" ) 
  fn8 = file.path( odir, "sizefreq.cfasouth.2022.png" ) 
  fn9 = file.path( odir, "sizefreq.cfa4x.2022.png" ) 
  include_graphics(c( fn4, fn7, fn5, fn8, fn6, fn9) )
# \@ref(fig:sizefeq-male-survey-cc)

\end{tiny} \end{column} \end{columns} \end{small}

Stock status: Recruitment

\begin{small} \begin{columns} \begin{column}{.48\textwidth}

\vspace{4mm} \begin{itemize} \item Little to no recruitment is expected for the next 1-3 years in N-ENS. \item Moderate levels of recruitment are expected in S-ENS. \item Low to moderate levels of recruitment are expected for 2 years in 4X. \end{itemize}

\vspace{4mm} \begin{scriptsize} \textbf{Figure}: Size-frequency (areal density; no/km$^2$) histograms by carapace width of male Snow Crab. The vertical line represents the legal size (95 mm). Immature animals are shown with light coloured bars, mature with dark. \end{scriptsize}

\end{column} \begin{column}{.48\textwidth} ```{r sizefeq-male, out.width='90%', echo=FALSE, fig.align='center', fig.cap = ''} include_graphics( file.path( data_loc, "assessments", year_assessment, "figures", "size.freq", "survey", "male.denl.png" ) )

\@ref(fig:sizefeq-male)

\end{column}
\end{columns}
\end{small}




## Stock status: Reproduction

\begin{small}
\begin{columns}
\begin{column}{.48\textwidth}


\begin{itemize}
  \item All areas had recruitment of female crab into the mature (egg-bearing) segment of the population from 2016-2022.
  \item In N-ENS for 2022, a decline in numerical densities, and low densities of adolescent females. 
  \item Egg and larval production is expected to be moderate to high in the next year in all areas except N-ENS. 
\end{itemize}

\vspace{2mm}
\begin{scriptsize}
\textbf{Figure}: Size-frequency (areal density; no/km$^2$) histograms by carapace width of female Snow Crab. Immature animals are shown with light coloured bars, mature with dark.
\end{scriptsize}

\end{column}
\begin{column}{.48\textwidth}
```{r sizefeq-female, out.width='90%', echo=FALSE, fig.align='center', fig.cap = ''}
include_graphics(  file.path( data_loc, "assessments", year_assessment, "figures", "size.freq", "survey",  "female.denl.png" )  )
# \@ref(fig:sizefeq-female)

\end{column} \end{columns} \end{small}

Stock status: Reproduction ...

```{r fmat-timeseries, out.width='50%', echo=FALSE, fig.align='center', fig.cap = 'Mature female density log$_{10}$(no/km$^2$) from the Snow Crab survey.' } include_graphics( file.path( data_loc, "assessments", year_assessment, "timeseries", "survey", "totno.female.mat.png") )

\@ref(fig:fmat-timeseries)



## Stock status: Mature female 

Distributions are heterogeneous and often in shallower areas.  

```{r fmat-map, echo=FALSE, out.width='32%', fig.show='hold', fig.align='center', fig.cap= 'Mature female density log$_{10}$(no/km$^2$)  from the Snow Crab survey.' }
loc = file.path( data_loc, "output", "maps", "survey", "snowcrab", "annual", "totno.female.mat" )
yrsplot = setdiff( year_assessment + c(0:-9), 2020)
fn4 = file.path( loc, paste( "totno.female.mat", yrsplot[4], "png", sep=".") )
fn3 = file.path( loc, paste( "totno.female.mat", yrsplot[3], "png", sep=".") )
fn2 = file.path( loc, paste( "totno.female.mat", yrsplot[2], "png", sep=".") )
fn1 = file.path( loc, paste( "totno.female.mat", yrsplot[1], "png", sep=".") )
include_graphics( c( fn3, fn2, fn1) )
# \@ref(fig:fmat-map)  

Stock status: Viable Habitat {.t}

\begin{small} \begin{columns} \begin{column}{.48\textwidth} ```{r habitat, echo=FALSE, out.width='52%', fig.align='center', fig.show='hold', fig.cap = 'Persistent habitat.' } fn1=file.path( media_loc, "viable_habitat.png" ) knitr::include_graphics( c(fn1 ) )

\@ref(fig:habitat)

\end{column}
\begin{column}{.48\textwidth}
```{r habitat2, echo=FALSE, out.width='40%', fig.align='center', fig.show='hold',  fig.cap = 'Habitat preferences.' }
fn2=file.path( media_loc, "viable_habitat_depth_temp.png" )
knitr::include_graphics( c( fn2 ) ) 
# \@ref(fig:habitat2)  

\end{column} \end{columns} \end{small}

Stock status: Fishing Mortality ... {.c}

```{r logisticFishingMortality, out.width='32%', echo=FALSE, fig.show='hold', fig.align='center', 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.' } odir = file.path( fishery_model_results, year_assessment, "logistic_discrete_historical" ) fn1 = file.path( odir, "plot_fishing_mortality_cfanorth.png" ) fn2 = file.path( odir, "plot_fishing_mortality_cfasouth.png" ) fn3 = file.path( odir, "plot_fishing_mortality_cfa4x.png" ) include_graphics(c(fn1, fn2, fn3) )

\@ref(fig:logisticFishingMortality)




## Stock status: Reference Points {.c}


```{r ReferencePoints, out.width='40%', echo=FALSE, fig.align='center', fig.cap = 'Harvest control rules for the Scotian Shelf Snow Crab fisheries.' }
include_graphics( file.path( media_loc, 'harvest_control_rules.png') ) 
# \@ref(fig:ReferencePoints)

Stock status: Reference Points ... {.c}

```{r logistic-hcr, out.width='32%', echo=FALSE, fig.show='hold', fig.align='center', fig.cap = 'Reference Points (fishing mortality and modelled biomass) from Model 1, for N-ENS (left), S-ENS (middle), and 4X (right). The large yellow dot indicates most recent year and the 95\% CI.' } odir = file.path( fishery_model_results, year_assessment, "logistic_discrete_historical" ) fn1 = file.path( odir, 'plot_hcr_cfanorth.png' ) fn2 = file.path( odir, 'plot_hcr_cfasouth.png' ) fn3 = file.path( odir, 'plot_hcr_cfa4x.png' ) include_graphics(c(fn1, fn2, fn3) )

\@ref(fig:logistic-hcr)

```



jae0/snowcrab documentation built on March 5, 2025, 4:44 a.m.