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 >}}
#| 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))
#| 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))
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))
#| 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))
#| 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))
``
`
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.
```{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) )
## 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)
```{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 )
## 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)
\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) )
\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}
\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 ) )
- *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}
```{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') )
## 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}
```{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') )
## 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}
```{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') )
## 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}
```{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 ) )
\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}
Average bottom temperatures observed in the 2022 Snow Crab survey were near or above historical highs in all areas
Temperatures are more stable in N-ENS than S-ENS; 4X exhibits the most erratic and highest annual mean bottom temperatures.
Observed temperatures in the 2022 Snow Crab survey for S-ENS increased well above the average.
Average temperature increased well beyond the $7^\circ$C threshold in 4X. N-ENS and S-ENS also continued to experience historical highs in bottom temperature and elevated spatial variability of bottom temperatures.
```{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) )
\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)
\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') )
\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}
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) )
\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}
The landings in N-ENS for 2022 and 2021 were similar in their spatial patterns.
The landings in 4X for 2022 were spatially more contracted than 2021.
\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 ) )
\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}
Generally, the spatial extent of exploitation was smaller, many of the exploited area show elevated catch rates,
In 4X catch rates were lower in 2022.
```{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 ) )
## 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}
Target: 5% of landings
In 2021, both N-ENS and 4X were not sampled by At-Sea-Observers.
In 2022, ~ 0.8 % of landings in 4X were sampled by At-Sea-Observers
\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) )
\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}
-->
No survey in 2020 (Covid-19) and incomplete 2022 (mechanical issues).
Inshore areas of S-ENS were most affected.
N-ENS and CFA 4X were not affected.
\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) )
\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}
\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" ) )
\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}
```{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") )
## 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)
\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 ) )
\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}
```{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) )
## 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)
```{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) )
```
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.