Methods

Engage Partners

From May 2021 to the time of reporting SERNbc and McLeod Lake staff have been actively engaging with the following groups to discuss the project, solicit input, prioritize sites, raise partnership funding and plan fish passage remediations. Engagement actions have included video conference calls, meetings, emails, presentations and phone calls.

  • McLeod Lake Indian Band members of council
  • BCTS Engineering
  • CN Rail
  • Canadian Forest Products (Canfor)
  • Sinclar Forest Projects Ltd. (Sinclar)
  • Northern Engineering - Forests, Lands, Natural Resource Operations and Rural Development (FLNR)
  • BC Ministry of Transportation and Infrastructure
  • Fish Passage Technical Working Group
  • Coastal Gasliink
  • Planning foresters and biologists Ministry of Forests, Lands, Natural Resource Operations and Rural Development (restructured into Ministry of Forests and Ministry of Land, Water and Resource Stewardship)
  • Fisheries experts

The Environmental Stewardship Initiative(ESI) is a collaborative partnership between the Province and First Nations with projects designed to focus on ecosystem assessment, restoration, enhancement, research and education. To date, four regional environmental stewardship projects have been developed throughout northern British Columbia. A governance working group with representatives from all four stewardship forums provides governance oversight and guidance for the ESI. The Parsnip River watershed group is within the Regional Strategic Environmental Assessment Forum (RSEA) area. Indigenous partners for RSEA include McLeod lake, Blueberry River, Halfway River, Doig River, West Moberly, Prophet River and Sauteau. Forum values of focus to date include old forest/forest biodiversity, water, moose, peaceful enjoyment and environmental livelihoods.


Working together with McLeod Lake Indian Band we are leveraging RSEA initiatives by overlaying Parsnip River watershed group fish passage planning data with the Recreational Opportunity Spectrum Inventory data to facilitate discussions with partners and stakeholders about how long term landscape stewardship goals of McLeod Lake Indian Band relate to stream crossing infrastructure upgrades/removals within their traditional territory. The inventory data summarizes recreation opportunities as combinations of settings and probable human experience opportunities organized along a spectrum of classes. The spectrum is set out in terms of seven classes as follows: Primitive (P), Semi-primitive Non-motorized (SPNM), Semi-primitive Motorized (SPM), Roaded Natural (RN), Roaded Modified (RM), Rural (R), Urban (U). The general idea is that areas towards the primitive end of the spectrum provide more opportunities for First Nations groups such as the McLeod Lake Indian Band to exercise their rights as indigenous people in pristine areas within their traditional territory (United Nations General Assembly 2007).

Identify and Communicate Connectivity Issues

Habitat Modelling

Through this initiative, other SERNbc led initiatives (Irvine 2021, [2021] 2022), multi-decade direction from the Provincial Fish Passage Remediation Program and connectivity restoration planning conducted by Canadian Wildlife Federation and others (Mazany-Wright et al. 2021; Irvine 2022), bcfishpass has been designed to prioritize potential fish passage barriers for assessment or remediation. The software is under continual development and has been designed and constructed by Norris ([2020] 2021) using sql and python based shell script libraries to generate a simple model of aquatic habitat connectivity. The model identifies natural barriers (ex. steep gradients for extended distances) and hydroelectric dams to classifying the accessibility upstream by fish (Norris [2020] 2021). On potentially accessible streams, scripts identify known barriers (ex. waterfalls >5m high) and additional anthropogenic features which are primarily road/railway stream crossings (i.e. culverts) that are potentially barriers. To prioritize these features for assessment or remediation, scripts report on how much modelled potentially accessible aquatic habitat the barriers may obstruct. The model can be refined with numerous parameters including known fish observations upstream of identified barriers and for each crossing location, the area of lake and wetland habitat upstream, species documented upstream/downstream, and an estimate of watershed area (on 2nd order and higher streams). Furthermore, mean annual precipitation weighted to upstream watershed area, stream discharge and channel width can be collated using bcfishpass, fwapg and bcfishobs. This, information, can be used to provide an indication of the potential quantity and quality of habitat potentially gained should fish passage be restored by comparing to user defined thresholds for the aforementioned parameters.


Regarding gradients, bcfishpass calculates the average gradient of BC Freshwater Atlas stream network lines at minimum 100m long intervals starting from the downstream end of the streamline segment and working upstream. The network lines are broken into max gradient categories with new segments created if and when the average slope of the stream line segment exceeds user provided thresholds. For this phase of the project, the user provided gradient thresholds used to delineate “potentially accessible habitat” were based on estimated max gradients that rainbow trout (20%) and bull trout (25%) are likely to be capable of ascending.


Gradient, channel size and stream discharge are key determinants of channel morphology and subsequently fish distribution. High value rearing, overwintering and spawning habitat preferred by numerous species/life stages of fish are often located within channel types that have relatively low gradients and large channel widths (also quantified by the amount of flow in the stream). Following delineation of “potentially accessible habitat”, the average gradient of each stream segment within habitat classified as below the 20% and 25% thresholds was calculated and summed within species and life stage specific gradient categories. Average gradient of stream line segments can be calculated from elevations contained in the provincial freshwater atlas streamline dataset. To obtain estimates of channel width upstream of crossing locations, where available, bcfishpass was utilized to pull average channel gradients from Fisheries Information Summary System (FISS) site assessment data (MoE 2019b) or PSCIS assessment data (MoE 2021) and associate with stream segment lines. When both FISS and PSCIS values were associated with a particular stream segment, FISS channel width was used. When multiple FISS sites were associated with a particular stream segment a mean of the average channel widths was taken. To model channel width for 2nd order and above stream segments without associated FISS or PSCIS sites, first fwapg was used to estimate the drainage area upstream of the segment. Then, rasters from ClimateBC (Wang et al. 2012) were downloaded to a postgresql database, sampled for upstream watershed areas associated with each stream segment and a mean annual precipitation weighted by upstream watershed area was calculated.


In April of 2021, Bayesian statistical methods were used to model channel width in all provincial freshwater atlas stream segments where width measurements had not previously been taken, based on the relationship between watershed area and mean annual precipitation weighted by upstream watershed area (Thorley and Irvine 2021). Details of this analysis and subsequent outputs can be reviewed here.


In December of 2021, Bayesian statistical methods were used to update results from Thorley and Irvine (2021) using on a power model derived by Finnegan et al. (2005) which relates stream discharge to watershed area and mean annual precipitation. Data (n = 24849) on watershed size, mean annual precipitation and measured channel width was extracted from the provincial freshwater atlas (FLNRORD 2021; GeoBC 2022), the BC Data Catalouge fisheries datasets (MoE 2020, 2021) and Wang et al. (2012) utilizing bcfishpass (Norris [2020] 2021) and fwapg (Norris [2019] 2021). Using Bayesian statistical methods, the relationship between the input variables was analyzed to update a predictive model of channel width.


bcfishpass and associated tools have been designed to be flexible in analysis, accepting user defined gradient, channel width and stream discharge categories (MoE 2019b). Although currently in draft form, and subject to development revisions, gradient and channel width thresholds for habitat with the highest intrinsic value for a number of fish species in the Parsnip River watershed group have been specified and applied to model habitat upstream of stream crossing locations with the highest potential intrinsic value (Table 5). Definitions of modelling outputs for bull trout are presented in Table 6. Modelling of habitat for Arctic grayling, kokannee and rainbow trout in the Peace region are planned for 2022/2023 wtih the work leveraging multiple other initiatives underway by SERNbc and others throughout British Columbia.


#`r if(identical(gitbook_on, FALSE)){knitr::asis_output("<br><br><br>")}`
bcfishpass_spawn_rear_model %>% 
  filter(species_code %in% c('BT', 'RB', 'GR', 'KO')) %>% 
  mutate(Species = fishbc::fbc_common_name(species_code), 
         spawn_gradient_max = round(spawn_gradient_max * 100 ,1),
         rear_gradient_max = round(rear_gradient_max * 100 ,1)) %>%
  select(Species, 
         `Spawning Gradient  Max (%)`= spawn_gradient_max,
         `Spawning Width Min (m)` = spawn_channel_width_min,
         `Rearing Width Min (m)` = rear_channel_width_min,
         # `Spawning Width Max (m)` = spawn_channel_width_max,
         # `Spawning MAD Min (m3/s)` = spawn_mad_min,
         # `Spawning MAD Max (m3/s)` = spawn_mad_max,
         `Rearing Gradient Max (%)` = rear_gradient_max) %>% 
         # `Rearing MAD Min (m3/s)` = rear_mad_min,
         # `Rearing MAD Max (m3/s)` = rear_mad_max,
         # `Rearing Wetland Multiplier` = rear_wetland_multiplier,
         # `Rearing Lake Multiplier` = rear_lake_multiplier) %>% 
  t() %>% 
  as_tibble(rownames = "row_names") %>% 
  janitor::row_to_names(row_number = 1) %>% 
  rename(Variable = Species) %>% 
  fpr::fpr_kable(caption_text = 'Stream gradient and channel width thresholds used to model potentially highest value fish habitat.', 
                 footnote_text = 'Models for RB, GR and KO are under a process of development and have not yet been released.  All models parameters are preliminary and subject to collaborative development.',
                 scroll = gitbook_on,
                 scroll_box_height = '300px')
Table 5: Stream gradient and channel width thresholds used to model potentially highest value fish habitat.
Variable Bull Trout Rainbow Trout Arctic Grayling Kokanee
Spawning Gradient Max (%) 5 5 2 2
Spawning Width Min (m) 2 2 4 2
Rearing Width Min (m) 1.5 1.5 1.5 1.5
Rearing Gradient Max (%) 7.4 7.4 3.4
* Models for RB, GR and KO are under a process of development and have not yet been released. All models parameters are preliminary and subject to collaborative development.


# bcfishpass_spawn_rear_model_references <- readr::read_csv(file = 'data/width_modelling/model_spawning_rearing_habitat.csv')
bcfishpass_spawn_rear_model_references <- readr::read_csv(file = 'data/inputs_raw/model_spawning_rearing_habitat.csv') 
  # select(species_code, contains('ref'), -contains(c('multiplier','mad')))
  
bcfishpass_spawn_rear_model_references %>% 
  mutate(Species = fishbc::fbc_common_name(species_code)) %>% 
  select(Species, 
         `Spawning Gradient  Max (%)`= spawn_gradient_max,
         `Spawning Width Min (m)` = spawn_channel_width_min,
         # `Spawning Width Max (m)` = spawn_channel_width_max_ref,
         # `Spawning MAD Min (m3/s)` = spawn_mad_min,
         # `Spawning MAD Max (m3/s)` = spawn_mad_max,
         `Rearing Gradient Max (%)` = rear_gradient_max) %>% 
         # `Rearing Wetland Multiplier` = rear_wetland_multiplier,
         # `Rearing Lake Multiplier` = rear_lake_multiplier) %>% 
         # `Rearing MAD Min (m3/s)` = rear_mad_min,
         # `Rearing MAD Max (m3/s)` = rear_mad_max) %>% 
  t() %>% 
  as_tibble(rownames = "row_names") %>% 
  janitor::row_to_names(row_number = 1) %>% 
  rename(Variable = Species) %>% 
  fpr::fpr_kable(caption_text = 'References for stream gradient and channel width thresholds used to model potentially highest value fish habitat. Preliminary and subject to revisions.', scroll = F)


xref_bcfishpass_names %>% 
  filter(id_side == 1) %>% 
  arrange(id_join) %>%  
  select(Attribute = report, Definition = column_comment) %>% 
  fpr::fpr_kable(caption_text = 'bcfishpass outputs and associated definitions',
                 footnote_text = 'Bull trout model uses a gradient threshold of maximum 25% to determine if access if likely possible',
                 scroll = gitbook_on)
Table 6: bcfishpass outputs and associated definitions
Attribute Definition
BT Rearing (km) Length of stream upstream of point modelled as potential Bull Trout rearing habitat
BT Spawning (km) Length of stream upstream of point modelled as potential Bull Trout spawning habitat
BT Network (km) Bull Trout model, total length of stream network potentially accessible upstream of point
BT Stream (km) Bull Trout model, total length of streams and rivers potentially accessible upstream of point (does not include network connectors in lakes etc)
BT Lake Reservoir (ha) Bull Trout model, total area lakes and reservoirs potentially accessible upstream of point
BT Wetland (ha) Bull Trout model, total area wetlands potentially accessible upstream of point
BT Slopeclass03 (km) Bull Trout model, length of stream potentially accessible upstream of point with slope 0-3%
BT Slopeclass05 (km) Bull Trout model, length of stream potentially accessible upstream of point with slope 3-5%
BT Slopeclass08 (km) Bull Trout model, length of stream potentially accessible upstream of point with slope 5-8%
BT Slopeclass15 (km) Bull Trout model, length of stream potentially accessible upstream of point with slope 8-15%
* Bull trout model uses a gradient threshold of maximum 25% to determine if access if likely possible

Field Planning

As there have been significant advancements in our ability to scope for restoration opportunities since the 2019 habitat confirmations were conducted in the Parsnip River watershed (ie. bcfishpass outputs such as the bull trout spawning and rearing model) we built an interactive map/table widget tool to facilitate planning for future field surveys in the Peace Region. The widget was built using R packages crosstalk (Cheng and Sievert [2015] 2022), DT (Xie, Cheng, and Tan [2014] 2022) and Leaflet (Cheng, Karambelkar, and Xie [2014] 2022). The interactive interface allows screening of previously inventoried as well as modelled stream crossing locations based on PSCIS information as well as the likely amount and type of habitat modelled upstream. Users can download csv results from those screening processes as well as associated georeferenced field maps to facilitate field surveys. The 2022 field surveys will contribute to McLeod Lake Indian Band capacity building programs, helping facilitate the continued evolution back to indigenous led natural resource management and stewardship within their traditional territory. On the ground research and monitoring is an essential part of any restoration program and is necessary to ensure that we identify the best and most efficient opportunities for fish passage restoration while incorporating adaptive management informed by traditional knowledge and real-time planning/monitoring data.

Mapping

QGIS

Updated mapping incorporating the newly developed sa’ba (bull trout) spawning and rearing habitat model was developed by Hillcrest Geographics. pdf maps were generated using QGIS with data supplied via a postgresql database. A QGIS layer file defining and symbolizing all layers required for general fish passage mapping has been developed through this initiative and numerous others, is continuously evolving and at the time of reporting was kept under version control within bcfishpass. Use of the QGIS layer file allows load and representation all map component layers provided the user points to a postgresql database containing the necessary data which can be loaded and built with bcfishpass.

Web Mapping

An open source online mapping portal has been developed for engagement and planning purposes. The template for the repository was developed within bcfishpass by Simon Norris of Hillcrest Geographics based on a basic mapbox gl style using vector tiles served from pg_tileserve and pg_featureserve software (CrunchyData [2019a] 2022, [2019b] 2022). At the time of reporting, the web mapping app was under active development with the interface expected to evolve significantly throughout 2022/2023. The interface provides “thin” interactive feature layers providing data representations as vector tiles served directly from underlying postgresql databases. This facilitates slippy map representation of large data sets as well as ongoing changes in the underlying postgresql databases including alteration and addition of features such as the fish habitat model layers, PSICS crossings, modelled crossings, fish observation points, road layers, forest inventory polygons, etc.