15 Structure & Function: Structural Change

Data Type: Tabular Data (within eco_indicators)

Spatial Scope: Maritimes

Duration 1970-2022

Source: Bundy et al. 2017

15.1 Introduction to Indicator

The eco_indicators dataset provides indicators of Structural Change in the marine community (Bundy, Gomez, and Cook 2017).

  • Biomass ratio of invertebrates to demersal fish
  • Biomass ratio of pelagic to demersal fish

Biomass ratios between target groups indicate stuctural change occurring in the community, and can be linked to fishing impacts. Large changes in biomass ratios between functional groups can indicate community change or even regime shifts towards communities dominated by different kinds of species.

15.2 View Data


library(tidyr)
library(plotly)
library(stringr)

plotly_df <- data@data %>% inner_join(global_cols3)

# function to create plot with dropdown menu ------------------------------
make_structuralChange_dropdown_plot <- function(df,
year_col   = "year",
region_col = "region",
value_suffix = "_value") {
  
  # convert to long format
  long <- df %>%
    janitor::clean_names() %>%
    pivot_longer(
      cols = ends_with(value_suffix),
      names_to = "metric",
      values_to = "value"
    ) %>%
    # remove suffix
    mutate(
      metric = str_remove(metric, "_value")
    ) %>%
    # drop NAs (some regions don't have data for some variables or years)
    tidyr::drop_na(value)
  
  # find all metrics and regions
  metrics <- unique(long$metric)
  regions <- unique(long[[region_col]])
  
  # clean names for dropdown panels, helper
  pretty_label <- function(x) str_to_title(gsub("_", " ", x)) %>% str_replace(" "," : ")
  
  # build plot -----------------
  p <- plot_ly()
  
  # add line traces
  for (metric_i in seq_along(metrics)) {
    m <- metrics[metric_i]
    
    for (region_i in regions) {
      dat <- long %>%
        filter(metric == m, .data[[region_col]] == region_i) 
      
      group_name <- unique(dat$region_group)
      color <- unique(dat$color)
      linetype <- unique(dat$linetype)
      width <- unique(dat$linewidth)
      
      # If a region truly has no data for that metric, add an empty trace
      # (keeps trace indexing stable)
      if (nrow(dat) == 0) {
        dat <- tibble::tibble(!!year_col := integer(0), value = numeric(0))
      }
      
      p <- p %>% add_lines(
        data = dat,
        x = ~.data[[year_col]],
        y = ~value,
        name = as.character(region_i),
        legendgroup = group_name,
        legendgrouptitle = list(
          text = ifelse(group_name == "ESS",
                        "Eastern Scotian Shelf Zones",
                        "Western Scotian Shelf Zones"
          )),
        showlegend = (metric_i == 1),
        visible = (metric_i == 1),
        line = list(color = color, dash = linetype),
        hovertemplate = paste0("<b>", region_i,":</b> ","%{y:.3f}<extra></extra>")      )
      
    }
  }
  
  n_regions <- length(regions)
  n_traces  <- length(metrics) * n_regions
  
  buttons <- lapply(seq_along(metrics), function(metric_i) {
    vis <- rep(FALSE, n_traces)
    shl <- rep(FALSE, n_traces)
    
    idx_start <- (metric_i - 1) * n_regions + 1
    idx_end   <- metric_i * n_regions
    vis[idx_start:idx_end] <- TRUE
    shl[idx_start:idx_end] <- TRUE
    
    list(
      method = "update",
      args = list(
        list(visible = vis, showlegend = shl),
        list(
          title = pretty_label(metrics[metric_i]),
          yaxis = list(title =  "Biomass Ratio")
        )
      ),
      label = pretty_label(metrics[metric_i])
    )
  })
  
  p %>%
    layout(
      barmode = "stack",
      hovermode = "x unified",
      title = pretty_label(metrics[1]),
      xaxis = list(title = str_to_title(year_col)),  # keep one bar per year
      yaxis = list(title = "Biomass Ratio", fixedrange = TRUE),
      legend = list(
        title = list(text = str_to_title(region_col)),
        x = 1.02, xanchor = "left",
        y = 1,    yanchor = "top",
        groupclick = "toggleitem",
        itemdoubleclick = FALSE
      ),
      updatemenus = list(list(
        type = "dropdown",
        x = -.1, xanchor = "left",
        y = 1.15, yanchor = "top",
        buttons = buttons
      )),
      margin = list(r = 180, t = 80)
    )
}

# usage:
p <- make_structuralChange_dropdown_plot(plotly_df)
p <- p %>% config(displayModeBar= F)

p

Figure 15.1: Structural Change Indicators in all NAFO regions and Scotian Shelf regions overall. Use dropdown menu to select indicator, and click legend to toggle regions.

15.4 Relevance to Research and Stock Assessments

Shifts in ecosystem structure over time represent changes of state or regime shifts in the marine community. In the Scotian Shelf, regime shifts have been documented and described as shifts away from a community of large-bodied demersal fish and towards a community dominated by benthic invertebrates and pelagic fish as a result of oceanic factors, climate change, and harvesting activities (Choi et al. 2005). However, empiciral data show that the shifts in structure in the Scotian Shelf system have differed across regions (Table 15.1).

15.5 Variable Definitions

Table 15.2: Definitions of structural change variables within eco_indicators in marea.
variable description unit
year Year of trawl survey
region Region over which values are summarized
INVERTEBRATES_GROUNDFISH_value Biomass ratio of invertebrates to groundfish Ratio
PELAGIC_GROUNDFISH_value Biomass ratio of pelagic fish to groundfish Ratio

15.6 Additional Data

Structural Change variables (within eco_indicators) contain data for 4VN, 4VS, 4W, 4X, ESS, and WSS. All are shown on this page, but note that NAFO divisions are nested within Scotian Shelf regions. Invertebrates:Groundfish ratios are not available at the Scotian Shelf region scale (ESS, WSS).

15.7 Get the Data

library(marea)
data('eco_indicators')
plot(eco_indicators)

References

Bundy, Alida, Catalina Gomez, and Adam M. Cook. 2017. “Guidance Framework for the Selection and Evaluation of Ecological Indicators.” Canadian Technical Report of Fisheries and Aquatic Sciences 3232. Dartmouth, Nova Scotia, Canada: Fisheries; Oceans Canada, Bedford Institute of Oceanography. https://waves-vagues.dfo-mpo.gc.ca/Library/40648886.pdf.
Choi, JS, KT Frank, BD Petrie, and WC Leggett. 2005. “Integrated Assessment of a Large Marine Ecosystem: A Case Study of the Devolution of the Eastern Scotian Shelf, Canada.” In Oceanography and Marine Biology, 57–78. CRC Press.