1 Zooplankton datasets in ecodata

Maybe you can install from github if you aren’t on a NOAA windows machine?

https://noaa-edab.github.io/ecodata/

remotes::install_github("noaa-edab/ecodata",build_vignettes=TRUE)

Multiple datasets right now, some described here:

https://noaa-edab.github.io/catalog/calanus_variation.html

https://noaa-edab.github.io/catalog/wbts_mesozooplankton.html

https://noaa-edab.github.io/catalog/zoo_abundance_anom.html

https://noaa-edab.github.io/catalog/zoo_diversity.html

How to call the datasets in R once ecodata is installed:

ecodata::zoo_abundance_anom

ecodata::zoo_diversity

ecodata::zoo_regime

ecodata::zoo_strat_abun

Some visualizations not available on the catalog pages.

2 Abundance anomalies

Documentation here:

https://noaa-edab.github.io/tech-doc/zoo_abundance_anom.html

Which zooplankton group anomalies are available?

unique(ecodata::zoo_abundance_anom$Var)
##  [1] "Calfin"        "LgCopepods"    "SmCopepods"    "Cyclopoida"   
##  [5] "Diplostraca"   "Ostracoda"     "Cirripedia"    "Euphausiacea" 
##  [9] "Gammaridea"    "Hyperiidea"    "Mysidacea"     "Decapoda"     
## [13] "Polychaeta"    "Echinodermata" "Mollusca"      "Pteropod"     
## [17] "Chaetognatha"  "Cnidaria"      "Tunicate"      "Protozoa"

Ecosystem reporting areas: Ecosystem Production Units (EPUs)

Definition used for zooplankton data I think

EPU by ten minute squares
EPU by ten minute squares

Calanus finmarchicus time series by EPU

calfin <- ecodata::zoo_abundance_anom |>
  dplyr::mutate(Value = as.numeric(Value)) |>
  dplyr::filter(Var == "Calfin") |>
  ggplot2::ggplot(aes(x = Time, y = Value)) +
  ggplot2::geom_point() + 
  ggplot2::geom_line() + 
  ecodata::geom_gls() +
  ecodata::theme_facet() +
  ggplot2::facet_wrap(~EPU)

calfin

3 Calanus stages

Documentation: https://noaa-edab.github.io/tech-doc/calanus-stage.html

Mid Atlantic

#Time series constants
shade.alpha <- 0.3
shade.fill <- "lightgrey"
lwd <- 1
pcex <- 2
trend.alpha <- 0.5
trend.size <- 2
hline.size <- 1
hline.alpha <- 0.35
hline.lty <- "dashed"
label.size <- 5
hjust.label <- 1.5
letter_size <- 4
feeding.guilds <- c("Apex Predator","Piscivore","Planktivore","Benthivore","Benthos")
x.shade.min <- 2012
x.shade.max <- 2022
#Function for custom ggplot facet labels
label <- function(variable,value){
  return(facet_names[value])
}


cal <- ecodata::calanus_stage %>% 
  dplyr::filter(EPU == "MAB") %>% 
  tidyr::separate(Var, into = c("Var", "season"), sep = "-") %>% 
  filter(Var %in% c("c3", "c4", "c5", "adt"))

cal$Var <- factor(cal$Var, levels = c("c3", "c4", "c5", "adt"))
cal$season <- factor(cal$season, levels = c("Spring", "Summer", "Fall"))

cal %>% 
  ggplot2::ggplot(aes(x = Time, y = Value, color = Var, fill = Var)) +
    ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
      xmin = x.shade.min , xmax = x.shade.max,
      ymin = -Inf, ymax = Inf)+
  ggplot2::geom_bar(stat = "identity")+
  ggplot2::facet_wrap(~season)+
  ggplot2::ylab("Calanus Stage (N/100m^3)") +
  ggplot2::xlab(element_blank())+
  ggplot2::ggtitle("MAB Calanus Stage Abundance") +
  ggplot2::theme(legend.position = "bottom", 
                 legend.title = element_blank())+
  ecodata::theme_facet()+
  scale_fill_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))+
  scale_color_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))+
  ecodata::theme_title()

Georges Bank

cal <- ecodata::calanus_stage %>% 
  dplyr::filter(EPU == "GB") %>% 
  tidyr::separate(Var, into = c("Var", "season"), sep = "-") %>% 
  filter(Var %in% c("c3", "c4", "c5", "adt"))

cal$Var <- factor(cal$Var, levels = c("c3", "c4", "c5", "adt"))
cal$season <- factor(cal$season, levels = c("Spring", "Summer", "Fall"))

cal %>% 
  ggplot2::ggplot(aes(x = Time, y = Value, color = Var, fill = Var)) +
    ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
      xmin = x.shade.min , xmax = x.shade.max,
      ymin = -Inf, ymax = Inf)+
  ggplot2::geom_bar(stat = "identity")+
  ggplot2::facet_wrap(~season)+
  ggplot2::ylab("Calanus Stage (N/100m^3)") +
  ggplot2::xlab(element_blank())+
  ggplot2::ggtitle("GB Calanus Stage Abundance") +
  ggplot2::theme(legend.position = "bottom", 
                 legend.title = element_blank())+
  ecodata::theme_facet()+
  scale_fill_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))+
  scale_color_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))

# cal %>% 
#   ggplot2::ggplot(aes(x = Time, y = Value, color = Var, fill = Var)) +
#     ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
#       xmin = x.shade.min , xmax = x.shade.max,
#       ymin = -Inf, ymax = Inf)+
#   ggplot2::geom_bar(stat = "identity")+
#   ggplot2::facet_wrap(~season, ncol = 1, scales = "free")+
#   ggplot2::ylab("Calanus Stage (N/100m^3)") +
#   ggplot2::xlab(element_blank())+
#   ggplot2::ggtitle("GB Calanus Stage Abundance") +
#   ggplot2::theme(legend.position = "bottom", 
#                  legend.title = element_blank())+
#   ecodata::theme_facet()+
#   scale_fill_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))+
#   scale_color_manual(values = c("steelblue1","steelblue3", "coral1", "coral3"))

# cal %>% 
#   ggplot2::ggplot() +
#     ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
#       xmin = x.shade.min , xmax = x.shade.max,
#       ymin = -Inf, ymax = Inf)+
#   ggplot2::geom_line(aes(x = Time, y = meanday))+
#   ggplot2::geom_point(aes(x = Time, y = meanday))+
#   #ecodata::geom_gls( aes(x = Time, y = meanday)) +
#   ggplot2::facet_wrap(~season, ncol = 3, scales = "free")+
#   ggplot2::ylab("Mean day of year") +
#   ggplot2::xlab(element_blank())+
#   ggplot2::ggtitle("GB Calanus Stage Mean DOY") +
#   #ggplot2::theme(legend.position = "bottom", 
#   #               legend.title = element_blank())+
#   ecodata::theme_facet()
# 
# cal %>% 
#   ggplot2::ggplot() +
#     ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
#       xmin = x.shade.min , xmax = x.shade.max,
#       ymin = -Inf, ymax = Inf)+
#   ggplot2::geom_line(aes(x = Time, y = ndays))+
#   ggplot2::geom_point(aes(x = Time, y = ndays))+
#   #ecodata::geom_gls( aes(x = Time, y = ndays)) +
#   ggplot2::facet_wrap(~season, ncol = 3, scales = "free")+
#   ggplot2::ylab("Number of sampling days") +
#   ggplot2::xlab(element_blank())+
#   ggplot2::ggtitle("GB Number of sampling days") +
#   #ggplot2::theme(legend.position = "bottom", 
#   #               legend.title = element_blank())+
#   ecodata::theme_facet()

Gulf of Maine

cal <- ecodata::calanus_stage %>% 
  
  tidyr::separate(Var, into = c("Var", "season"), sep = "-") %>% 
  dplyr::filter(EPU == "GOM", 
                Var %in% c( "c5", "adt")) %>%
  dplyr::mutate(Var = recode(Var, "c5" = "Stage 5", 
                             "adt" = "Adult" ))
  #dplyr::mutate(newval=ifelse(ndays<10, NA, Value),
  #              newday= (meanday/ 365))
  

cal$Var <- factor(cal$Var, levels = c( "Stage 5", "Adult"))
cal$season <- factor(cal$season, levels = c("Spring", "Summer", "Fall"))

cal %>% 
  ggplot2::ggplot(aes(x = Time , y = Value, color = Var, fill = Var)) +
    ggplot2::annotate("rect", fill = shade.fill, alpha = shade.alpha,
      xmin = x.shade.min , xmax = x.shade.max,
      ymin = -Inf, ymax = Inf)+
  ggplot2::geom_bar(stat = "identity")+
  ggplot2::facet_wrap(~season)+
  ggplot2::ylab("Calanus Stage (N/100m^3)") +
  ggplot2::xlab(element_blank())+
  ggplot2::ggtitle("GOM Calanus Stage Abundance") +
  ggplot2::theme(legend.position = "bottom", 
                 legend.title = element_blank())+
  ecodata::theme_facet()+
  scale_fill_manual(values = c("steelblue1", "coral1"))+
  scale_color_manual(values = c("steelblue1", "coral1"))+
  ecodata::theme_title()

4 Other possibilities

Scott Large has developed a VAST model looking at ECOMON zooplankton communities and how they have shifted over time.

There should be a dataset that could be used to develop a spatial model of Cal fin or whatever other zooplankton categories similar to what Micah did for haddock.

One could ask whether zooplankton of different types are still overlapping herring in space and time, or at least develop an index of zooplankton abundance that combines the information from multiple surveys at the footprint needed for the herring assessment.

We could also try overlapping with Mark’s spatial herring energy density info.

5 Questions for the WG

What do we want? None of these are a great fit right now but could be worked with.

Zooplankton indices could possibly be clarified through background work in the ESP.

Thoughts?