rmarkdown::render("populations.Rmd") # or click the knit button in RStudio
knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 6 )
library(pacea) library(dplyr)
In pacea we include estimates of populations, including uncertainty, as calculated from recent stock assessments.
Currently, we have Pacific Hake and Pacific Herring, major components of the ecosystem, and Pacific Harbour Seals, the most abundant pinniped species in the Northeast Pacific. Click on links to jump to the relevant sections below.
NEW (since original release of pacea): we have updated the Pacific Hake
estimates with those from the 2024 assessment, but retained the 2023
assessment's estimates within the package (as hake_biomass_2023
etc.). See
below and the help files for more details. Also added total biomass of age-1
hake and recruitment deviations. And Pacific Herring was added in May 2024.
The hake biomass time series is saved as a tibble
in pacea
, as simply:
hake_biomass
tail(hake_biomass)
with the annual estimates given as median, low and high ends of the 95% credible
intervals. Units are millions of tonnes of female spawning biomass at the start
of the year, as documented in ?hake_biomass
which also refers to
?hake_recruitment
for full details and further background. For example, it is important to
realise that the assessment considers a coastwide stock off the west coast of
Canada and the United States.
To plot the time series of estimated coastwide biomass, simply do
plot(hake_biomass)
where the solid circles are the annual medians, with credible intervals given by the shaded regions (mostly reproducing Figure d in the latest assessment).
Note that the hake_biomass
object also has class pacea_biomass
:
class(hake_biomass)
such that the above command plot(hake_biomass)
first looks to use our tailored function
plot.pacea_biomass()
, which gives the style of plot shown above. We use this
approach for hake_recruitment
and various other objects in pacea
, to enable
easy default plotting. All functions have help files, for example ?plot.pacea_biomass
.
We now also include the total biomass of age-1 hake, due to its potential influence on
hake recruitment Vestfals et
al. (2023). Note this is total female and
male biomass (not spawning only like hake_biomass
), and credible intervals
are not current easily available.
hake_total_biomass_age_1
tail(hake_total_biomass_age_1)
for which units are thousands of tonnes, and our default plot is
plot(hake_total_biomass_age_1)
The hake_recruitment
object contains annual estimates of recruitment of age-0
fish
hake_recruitment
tail(hake_recruitment)
for which values are billions of age-0 fish, and our default plot is
plot(hake_recruitment)
The dots represent the medians, with blue bars showing the 95% credible intervals. This reproduces Figure f in the latest stock assessment (without some extra details).
Note that, as mentioned in ?hake_recruitment
the most recent few years are
very uncertain as they are not informed by data. In particular, the final year
represents recruitment at the start of the year but has no data to inform it,
and so should definitely not be used for any analyses (we include it as it is
shown in the stock assessment; it also essentially represents the prior distribution used for recruitment).
The estimated uncertainty of recruitments is large, and so we also include scaled values that make it easier to compare years. The 2010 recruitment is the second largest in the time series (below only 1980's) and as such people have an intuition that it is large, and we can compare other years by looking at recruitment scaled by the 2010 recruitment:
hake_recruitment_over_2010 tail(hake_recruitment_over_2010) plot(hake_recruitment_over_2010)
This shows the medians and 95% credible intervals (red lines) of the recruitment
divided by that in 2010, which clearly shows that, for example, the 2014 is
clearly smaller than the 2010 recruitment (highlighted by the green dashed
line), which is not intuitive in the above plot(hake_recruitment)
plot (see
?hake_recruitment_over_2010
for more details and motivation).
This approach somewhat scales out some of the uncertainty in the absolute scale of $R_0$, the mean unfished equilibrium recruitment. This is similarly seen by instead scaling recruitments by $R_0$, as
hake_recruitment_over_R0 tail(hake_recruitment_over_R0) plot(hake_recruitment_over_R0)
Also now available are the log-scale recruitment deviations from the stock-recruitment
curve (see ?hake_recruitment_deviations
), which are sometimes used to look for
environmental drivers, e.g. Vestfals et
al. (2023):
hake_recruitment_deviations tail(hake_recruitment_deviations) plot(hake_recruitment_deviations)
Note that the Pacific Hake stock assessment is conducted annually at the start of each year,
and these estimates will be updated in pacea
by April each year. So
estimates will change (particularly for the most recent years) as more data
inform the stock assessment model. So hake_biomass
, hake_recruitment
etc. will be based on the most recent stock assessment (see
?hake_recruitment
).
To ensure that estimates from previous assessments are
still available in pacea
(so you can ensure fully repeatable analyses that do
not change when pacea
is updated with the new estimates), we also save each
assessment's estimates with the year appended; for example, hake_biomass_2023
and hake_biomass_2024
for the spawning biomass estimates from the 2023 and
2024 assessments. Similarly, we also save hake_recruitment_2023
,
hake_recruitment_2024
, hake_recruitment_over_2010_2023
,
hake_recruitment_over_2010_2024
, hake_recruitment_over_R0_2023
, and
hake_recruitment_over_R0_2024
, plus similar objects and later years once they become
available. See ?hake_recruitment
for details and references. The above
examples will work on all these objects, for example, the values and plot shown
in the previous code chunk, but based on the 2023 assessment results, are:
hake_recruitment_over_R0_2023 tail(hake_recruitment_over_R0_2023) plot(hake_recruitment_over_R0_2023)
Note how hake_recruitment_over_R0_2023
contains no estimate for the 2024
recruitment, but hake_recruitment
does (although it is not actually informed
by data, so should not be used in any analysis). And see how the (highly
uncertain) 2020 and 2021
recruitment estimates changed somewhat from 2023 assessment to the 2024
assessment, due to updated data:
filter(hake_recruitment_2023, year %in% c(2020, 2021)) filter(hake_recruitment_2024, year %in% c(2020, 2021))
See page 13 of the 2024 assessment document for explanation.
Pacific Herring results from the latest assessment (DFO 2024; SR 2024/001) are
saved in a similar manner to those for Pacific
Hake. The spawning biomass time series is saved as a tibble
in pacea
, as simply:
herring_spawning_biomass
tail(herring_spawning_biomass)
with the annual estimates given as median, low and high ends of the 90% credible
intervals. Units are thousands of tonnes of female spawning biomass each year, as documented in ?herring_spawning_biomass
which also refers to
?herring_recruitment
for full details and further background. For example, it
is important to know that these are 90% credible intervals (not 95% like for hake),
units are thousands of tonnes (not millions like for hake), and are for males
and females combined (not females only like for hake). As usual, do read the
help files. (We included spawning
in the name herring_spawning_biomass
as we
may also include total biomass at some point if available).
Results are included for the five major
herring stock assessment regions: Haida Gwaii (HG), Prince Rupert District
(PRD), Central Coast (CC), Strait of Georgia (SOG), and West Coast of Vancouver
Island (WCVI). These are given in the region
column, and to see values for
just one region it is easy to filter:
filter(herring_spawning_biomass, region == "HG")
Built-in plotting functions have been developed, with the default being to plot all regions:
plot(herring_spawning_biomass)
where the solid circles are the annual medians, with credible intervals given by the shaded regions, matching the style used above for hake.
We have made it easy to plot results for just one region:
plot(herring_spawning_biomass, region = "PRD")
See ?plot.pacea_biomass_herring
for options, such as title = "short"
to use
the region's acronym rather than full name.
The herring_recruitment
object contains annual estimates of recruitment of
age-2 fish
herring_recruitment
tail(herring_recruitment)
for which values are billions of age-2 fish, and our default plot is
plot(herring_recruitment)
This uses the same style of plot, with the dots represent the medians, with blue
bars showing the 90% credible intervals. Again, it is easy (see
?plot.pacea_recruitment_herring
) to plot just one of the regions:
plot(herring_recruitment, region = "SOG")
We aim to update herring_spawning_biomass
and herring_recruitment
annually
as new assessments are
conducted, and so have also saved the 2023 assessment's results as
herring_spawning_biomass_2023
and herring_recruitment_2023
, which will not
change going forward as pacea
is updated.
Estimated abundances for seven regions (and coastwide) were calculated by DFO
(2022; SAR 2022/034), and are included in pacea
as:
harbour_seals
tail(harbour_seals)
Estimates are for each region and for the coastwide population, reproducing Figure 3 of DFO (2022):
plot(harbour_seals)
Or just plot estimates for a single region:
plot(harbour_seals, region = "SOG")
For full details and reference see
?harbour_seals
We anticipate adding assessment output for other species soon, so stay tuned (check the NEWS). For zooplankton anomalies see the new zooplankton vignette: zooplankton.html.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.