-
Notifications
You must be signed in to change notification settings - Fork 2
/
0300-methods.Rmd
232 lines (142 loc) · 23.4 KB
/
0300-methods.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# Methods
## Identify and Communicate Connectivity Issues {-}
### Engage Partners {-}
Engaging partners for ecosystem restoration initiatives is critical as it allows us to utilize available resources, tap into different areas of expertise, and benefit from diverse perspectives through collaboration that leads to successful outcomes. Engagement actions have included video conference calls, meetings, emails, presentations and phone calls.
### Mapping {-}
Maps incorporating the newly developed sa'ba (bull trout) spawning and rearing habitat model for the Parsnip River, Carp Lake and Crooked River watershed groups are served online and were were generated using reproducible open source workflows developed by Hillcrest Geographics. The workflows to produce the georeferenced `pdf` maps include using a QGIS layer file defining and symbolizing all layers required and are continuously evolving. At the time of reporting - mapping scripts and associated layer file were kept under version control within `bcfishpass` (https://github.com/smnorris/bcfishpass/tree/main/qgis). Use of the QGIS layer file allows load and representation all map component layers provided the user points to the postgresql database loaded and built with `bcfishpass`.
### Interactive Dashboard{-}
We built an interactive dashboard to allow users to conduct background research and planning to facilitate communication and enable future field surveys in the Peace Region. The interactive interface allows screening of previously inventoried as well as modelled stream crossing locations based on watershed group as well as the likely quantity and quality of bull trout rearing and spawning habitat modelled upstream. Historic assessment data including photos of sites can be viewed when present and through the dashboard users can download csv results and associated georeferenced field maps to facilitate field surveys. The dashboard was built using `R` packages `crosstalk` [@cheng_sievert2022Crosstalk], `DT` [@xie_etal2022interfaceDataTables] and `Leaflet` [@cheng_etal2022InterfaceLeaflet].
#### Habitat Modelling {-}
Through this initiative, other SERNbc led initiatives [@irvine2021BulkleyRiver; @irvine2022BulkleyRiver], multi-decade direction from the Provincial Fish Passage Remediation Program and connectivity restoration planning conducted by Canadian Wildlife Federation and others [@mazany-wright_etal2021BulkleyRiver; @irvine2022ElkRiver], `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 @norris2021smnorrisbcfishpass 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 [@norris2021smnorrisbcfishpass]. 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.
<br>
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.
<br>
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).
<br>
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.
<br>
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 [@moeStreamInventorySample] or PSCIS assessment data [@moe2021PSCISAssessments] and associate with stream segment lines. When both FISS and PSCIS values were associated with a particular stream segment, or multiple FISS channel widths are available a mean of the average channel widths was used. 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_etal2012ClimateWNAHighResolution] 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 early 2021, Bayesian statistical methods were developed to predict channel width in all provincial freshwater atlas stream segments where width measurements had not previously been measured in the field. The model was based on the relationship between watershed area and mean annual precipitation weighted by upstream watershed area [@thorley_irvine2021ChannelWidth]. In December of 2021, @thorley_irvine2021ChannelWidth methods were updated using on a power model derived by @finnegan_etal2005Controlschannel 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 [@flnrord2021FreshwaterAtlasb; @geobc2022FreshwaterAtlas], the BC Data Catalouge fisheries datasets [@moe2020StreamInventory; @moe2021PSCISAssessments] and @wang_etal2012ClimateWNAHighResolution utilizing `bcfishpass` [@norris2021smnorrisbcfishpass] and `fwapg` [@norris2021smnorrisfwapg]. Details of this analysis and subsequent outputs can be reviewed [here](https://www.poissonconsulting.ca/f/859859031) [@thorley_etal2021ChannelWidth].
<br>
`bcfishpass` and associated tools have been designed to be flexible in analysis, accepting user defined gradient, channel width and stream discharge categories [@moeStreamInventorySample]. 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 \@ref(tab:tab-fish-spawning-rearing)). Definitions of modelling outputs for bull trout are presented in Table \@ref(tab:tab-bcfp-def). Modelling of habitat for Arctic grayling, kokannee and rainbow trout in the Peace region are planned for 2023/2024 with the work leveraging multiple other initiatives underway by SERNbc and others throughout British Columbia.
<br>
```{r tab-fish-spawning-rearing, eval=T}
#`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 = F,
scroll_box_height = '300px')
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\newpage")`
```{r tab-fish-spawning-rearing-references, eval = F}
# 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)
```
<br>
```{r tab-bcfp-def, eval = T}
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)
```
## Remediations {-}
Structure replacement was conducted by contractors hired by Sinclar (forest licensee). As-built drawings were completed and loaded to the PSCIS data portal.
<br>
## Designs {-}
Engineering designs were conducted by consultants hired by forest licensees with tenure over the roads and/or timber harvest planned on the roads where work was conducted. Completed designs are loaded to the PSCIS data portal.
<br>
## Habitat Confirmation Assessments {-}
Following fish passage assessments, habitat confirmations were completed in accordance with procedures outlined in the document “A Checklist for Fish Habitat Confirmation Prior to the Rehabilitation of a Stream Crossing” [@confirmation_checklist_2011]. The main objective of the field surveys was to document upstream habitat quantity and quality and to determine if any other obstructions exist above or below the crossing. Habitat value was assessed based on channel morphology, flow characteristics (perennial, intermittent, ephemeral), the presence/absence of deep pools, un-embedded boulders, substrate, woody debris, undercut banks, aquatic vegetation and overhanging riparian vegetation. Criteria used to rank habitat value was based on guidelines in @confirmation_checklist_2011 (Table \@ref(tab:tab-hab-value)).
<br>
During habitat confirmations, to standardize data collected and facilitate submission of the data to provincial databases, information was collected on ["Site Cards"](https://www2.gov.bc.ca/gov/content/environment/natural-resource-stewardship/laws-policies-standards-guidance/inventory-standards/aquatic-ecosystems). Habitat characteristics recorded included channel widths, wetted widths, residual pool depths, gradients, bankfull depths, stage, temperature, conductivity, pH, cover by type, substrate and channel morphology (among others). When possible, the crew surveyed downstream of the crossing to the point where fish presence had been previously confirmed and upstream to a minimum distance of 500 - 600m. Any potential obstacles to fish passage were inventoried with photos, physical descriptions and locations recorded on site cards. Surveyed routes were recorded with time-signatures on handheld GPS units.
<br>
Fish sampling was conducted on a subset of sites when biological data was considered to add significant value to the physical habitat assessment information. When possible, electrofishing was utilized within discrete site units both upstream and downstream of the subject crossing with electrofisher settings, water quality parameters (i.e. conductivity, temperature and ph), start location, length of site and wetted widths (average of a minimum of three) recorded. For each fish captured, fork length and species was recorded, with results included within the fish data submission spreadsheet. Fish information and habitat data have been submitted to the province under scientific fish collection permit PG22-749559.
## Fish Passage Assessments {-}
In the field, crossings prioritized for follow-up were first assessed for fish passage following the procedures outlined in “Field Assessment for Determining Fish Passage Status of Closed Bottomed Structures” [@fish_passage_assessments]. The reader is referred to [@fish_passage_assessments] for detailed methodology. Crossings surveyed included closed bottom structures (CBS), open bottom structures (OBS) and crossings considered “other” (i.e. fords). Photos were taken at surveyed crossings and when possible included images of the road, crossing inlet, crossing outlet, crossing barrel, channel downstream and channel upstream of the crossing and any other relevant features. The following information was recorded for all surveyed crossings: date of inspection, crossing reference, crew member initials, Universal Transverse Mercator (UTM) coordinates, stream name, road name and kilometer, road tenure information, crossing type, crossing subtype, culvert diameter or span for OBS, culvert length or width for OBS. A more detailed “full assessment” was completed for all closed bottom structures and included the following parameters: presence/absence of continuous culvert embedment (yes/no), average depth of embedment, whether or not the culvert bed resembled the native stream bed, presence of and percentage backwatering, fill depth, outlet drop, outlet pool depth, inlet drop, culvert slope, average downstream channel width, stream slope, presence/absence of beaver activity, presence/absence of fish at time of survey, type of valley fill, and a habitat value rating. Habitat value ratings were based on channel morphology, flow characteristics (perennial, intermittent, ephemeral), fish migration patterns, the presence/absence of deep pools, un-embedded boulders, substrate, woody debris, undercut banks, aquatic vegetation and overhanging riparian vegetation (Table \@ref(tab:tab-hab-value)). For crossings determined to be potential barriers or barriers based on the data (see [Barrier Scoring]), a culvert fix and recommended diameter/span was proposed.
<br>
```{r tab-hab-value}
fpr_table_habvalue %>%
knitr::kable(caption = 'Habitat value criteria (Fish Passage Technical Working Group, 2011).', booktabs = T) %>%
kableExtra::column_spec(column = 1, width_min = '1.5in') %>%
kableExtra::kable_styling(c("condensed"), full_width = T, font_size = font_set)
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
Fish passage potential was determined for each stream crossing identified as a closed bottom structure as per @fish_passage_assessments. The combined scores from five criteria: depth and degree to which the structure is embedded, outlet drop, stream width ratio, culvert slope, and culvert length were used to screen whether each culvert was a likely barrier to some fish species and life stages (Table \@ref(tab:tab-barrier-scoring), Table \@ref(tab:tab-barrier-result). These criteria were developed based on data obtained from various studies and reflect an estimation for the passage of a juvenile salmon or small resident rainbow trout [@clarkinNationalInventoryAssessment2005 ;@bellFisheriesHandbookEngineering1991; @thompsonAssessingFishPassage2013].
<br>
```{r tab-barrier-scoring, eval=T}
tab <- as_tibble(t(fpr_table_barrier_scoring)) %>%
mutate(V4 = names(fpr_table_barrier_scoring)) %>%
select(V4, everything()) %>%
janitor::row_to_names(1) %>% ##turn the table sideways
mutate(Risk = case_when(Risk == 'Value' ~ ' Value',
T ~ Risk))
tab %>%
fpr::fpr_kable(caption_text = 'Fish Barrier Risk Assessment (MoE 2011).', scroll = F)
```
<br>
```{r tab-barrier-result}
fpr_table_barrier_result %>%
fpr::fpr_kable(caption_text = 'Fish Barrier Scoring Results (MoE 2011).', scroll = F)
```
<br>
Habitat gain indexes are the quantity of modelled habitat upstream of the subject crossing and represents an estimate of habitat gained with remediation of fish passage at the crossing. For this project, a gradient threshold between accessible and non-accessible habitat was set at 25% (for a minimimum length of 100m) intended to represent the maximum gradient of which the strongest swimmers of anadromous species (bull trout) are likely to be able to migrate upstream. This is the amount of habitat upstream of each crossing less than 25% gradient before a falls of height >5m - as recorded in @ProvincialObstaclesFish or documented in other `bcfishpass` online documentation. For Phase 2 - habitat confirmation sites, conservative estimates of the linear quantity of habitat to be potentially gained by fish passage restoration, bull trout rearing maximum gradient threshold (7.4%) was used. To generate estimates for area of habitat upstream (m^2), the estimated linear length was multiplied by half the downstream channel width measured (overall triangular channel shape) as part of the fish passage assessment protocol. Although these estimates are not generally conservative, have low accuracy and do not account for upstream stream crossing structures they allow a rough idea of the best candidates for follow up.
<br>
Potential options to remediate fish passage were selected from @fish_passage_assessments and included:
+ Removal (RM) - Complete removal of the structure and deactivation of the road.
+ Open Bottom Structure (OBS) - Replacement of the culvert with a bridge or other open bottom structure. Based on consultation with FLNR road crossing engineering experts, for this project we considered bridges as the only viable option for OBS type .
+ Streambed Simulation (SS) - Replacement of the structure with a streambed simulation design culvert. Often achieved by embedding the culvert by 40% or more. Based on consultation with FLNR engineering experts, we considered crossings on streams with a channel width of <2m and a stream gradient of <8% as candidates for replacement with streambed simulations.
+ Additional Substrate Material (EM) - Add additional substrate to the culvert and/or downstream weir to embed culvert and reduce overall velocity/turbulence. This option was considered only when outlet drop = 0, culvert slope <1.0% and stream width ratio < 1.0.
+ Backwater (BW) - Backwatering of the structure to reduce velocity and turbulence. This option was considered only when outlet drop < 0.3m, culvert slope <2.0%, stream width ratio < 1.2 and stream profiling indicates it would be effective..
<br>
### Cost Estimates {-}
Cost estimates for structure replacement with bridges and embedded culverts were generated based on the channel width, slope of the culvert, depth of fill, road class and road surface type. Road details were sourced from @flnrordForestTenureRoad2020 and @flnrordDigitalRoadAtlas2020 through `bcfishpass`. Interviews with Phil MacDonald, Engineering Specialist FLNR - Kootenay, Steve Page, Area Engineer - FLNR - Northern Engineering Group and Matt Hawkins - MoTi - Design Supervisor for Highway Design and Survey - Nelson were utilized to helped refine estimates which have since been adjusted for inflation and based on past experience.
<br>
Base costs for installation of bridges on forest service roads and permit roads with surfaces specified in provincial GIS road layers as rough and loose was estimated at \$25000/linear m and assumed that the road could be closed during construction and a minimum bridge span of 10m. For streams with channel widths <2m, embedded culverts were reported as an effective solution with total installation costs estimated at $50k/crossing (pers. comm. Phil MacDonald, Steve Page then adjusted for inflation). For larger streams (>6m), estimated span width increased proportionally to the size of the stream. For crossings with large amounts of fill (>3m), the replacement bridge span was increased by an additional 3m for each 1m of fill >3m to account for cutslopes to the stream at a 1.5:1 ratio. To account for road type, a multiplier table was generated to estimate incremental cost increases with costs estimated for structure replacement on paved surfaces, railways and arterial/highways costing up to 20 times more than forest service roads due to expenses associate with design/engineering requirements, traffic control and paving. The cost multiplier table (Table \@ref(tab:tab-cost-mult)) should be considered very approximate with refinement recommended for future projects.
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
```{r tab-cost-mult, eval = T}
tab_cost_rd_mult_report %>%
filter(Class != 'FSR' & Surface != 'Paved') %>%
fpr::fpr_kable(caption_text = 'Cost multiplier table based on road class and surface type.', scroll = F)
```