-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0800-appendix-197360.Rmd
357 lines (210 loc) · 21.2 KB
/
0800-appendix-197360.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
```{r setup-197360, eval = F}
knitr::opts_chunk$set(echo=FALSE, message=FALSE, warning=FALSE)
source('R/packages.R')
source('R/functions.R')
source('R/functions-phase2.R')
source('R/tables-phase2.R')
source('R/tables.R')
source('R/extract-fish.R')
source('R/functions-fish.R')
```
```{r load-data-197360}
my_site <- 197360
my_site2 <- 197669
my_site2_xref <- 14000079
```
`r appendix_title()`
## Site Location {-}
PSCIS crossing `r as.character(my_site)` is located on `r my_pscis_info() %>% pull(stream_name)` at km 47 of the `r my_overview_info() %>% pull(road_name)` accessed from Houston, BC. The `r my_overview_info() %>% pull(road_name)` is a forest tenure road and the responsibility of the BC Ministry of Forests, Lands, Natural Resource Operations & Rural Development (FLNR) - Nadina District. The area immediately to the south of the subject crossing is a conservation area manged by the Nature Trust of British Columbia.
```{r eval=F}
##idon't think we need this here but...
#During 2020 surveys, PSCIS culvert 197669 was documented on `r my_pscis_info() %>% pull(stream_name)`, 1.2km upstream of the FSR.
```
<br>
## Background {-}
This memo was initially released in 2020. Assessment work was conducted by field teams adjacent to the culvert on
the `r my_overview_info() %>% pull(road_name)` again in 2023 so it has been updated with new information.
<br>
`r my_pscis_info() %>% pull(stream_name)` flows through an extensive area of wetland type habitat into the top end of Owen Lake approximately 1km downstream of the crossing on `r my_pscis_info() %>% pull(stream_name)`. Owen Lake is drained by Owen Creek emptying into the Morice River approximately 20km to the north. At the crossing location, `r my_pscis_info() %>% pull(stream_name)` is a 4th order stream with a watershed area upstream of the highway of approximately 29km^2^. The elevation of the watershed ranges from a maximum of 1140 to 750m at teh FSR. `r my_pscis_info() %>% pull(stream_name)` is known to contain longnose sucker and rainbow trout usptream of the subject culvert [@data_fish_obs]. On the north side of the upper watershed, at an elevation of 1160m, are the 25ha Neuch Lakes. The limit of fish distribution in the `r my_pscis_info() %>% pull(stream_name)` mainstem is documented by @davidbustardandassociatesltd_1999StreamInventory as a 6m high waterfall located 2.4km upstream of the FSR with the three main tributary systems classified as either non-fish bearing or fish bearing for only short distances (<200m) from the mainstem. Of note, a dam is documented in @ProvincialObstaclesFish just downstream of Owen Lake and is visible on google earth imagery. FLNRORD team members note that the structure is a beaver dam (pers comm. Lars Reese-Hanson, Aquatic Habitat Specialist, FLNR).
<br>
At the time of initial reporting in 2020, as an initiative of the Forest and Range Evaluation Program as well as the Bulkley Valley Research Centre, FLNR and the BC Ministry of Environment and Climate Change Strategy were undertaking a watershed status evaluation of the Owen Creek watershed. At the time of reporting updates in 2024 the reporting had been completed [@pickard_etal2023BiiWenii]. The evaluation uses remotely sensed and field based surveys to interpret the current functioning condition of the watershed as well as its possible future state as a result of continuing human and natural activities by ranking eight indicators of watershed pressure related to riparian health, fish passage and fine sediment delivery [@pickard_etal2014FishValues; @porter_etal2019WatershedStatus].
<br>
PSCIS stream crossing `r as.character(my_site)` was prioritized for follow up with a habitat confirmation through consultation with Lars Reese-Hansen and Don Morgan (Wildlife Habitat Specialist, MoE). They indicated (pers comm.) that following fish passage assessments in the watershed in 2014 (implemented through watershed status evaluation field surveys throughout the Owen Creek watershed), Riddeck Creek upstream of the crossing contained the highest value habitat potentially blocked by a road-stream crossing barrier. Based of these recommendations, a habitat assessment was conducted during the initial 2020 survey. A map of the watershed is provided in map attachment [`r my_bcfishpass() %>% pull(dbm_mof_50k_grid)`](`r my_mapsheet()`).
<br>
In 2022, an engineering design for replacement of the culvert on `r my_overview_info() %>% pull(road_name)` was commissioned
by Ministry of Environment and Climate Change Strategy representatives. At that time a replacement cost was estimated at
approximately $900,000.
<br>
In the summer of 2023, crossing `r as.character(my_site)` was revisited and electrofishing was conducted for baseline monitoring and to scope again for anadromous species. Fish sampling results from 2023 are included in this report.
<br>
## Stream Characteristics at Crossing {-}
At the time of the 2020 survey, the culvert was un-embedded, non-backwatered and considered a barrier to upstream fish passage. The pipe was `r my_pscis_info() %>% pull(diameter_or_span_meters)`m in diameter with a pipe length of `r my_pscis_info() %>% pull(length_or_width_meters)`m, a culvert slope of `r my_pscis_info() %>% pull(culvert_slope_percent)`%, a stream width ratio of `r my_pscis_info() %>% pull(stream_width_ratio)` and an outlet drop of `r my_pscis_info() %>% pull(outlet_drop_meters)`m (Table \@ref(tab:tab-culvert-197360)). Water temperature was `r my_habitat_info() %>% filter(rowname == 'temperature c') %>% pull(us)`$^\circ$C, pH was `r my_habitat_info() %>% filter(rowname == 'p h') %>% pull(us)` and conductivity was `r my_habitat_info() %>% filter(rowname == 'conductivity m s cm') %>% pull(us)`uS/cm.
<br>
A survey was conducted with a remotely piloted aircraft immediately upstream and downstream of the crossing. The resulting images were stitched into a 3-dimensional model (4cm resolution) covering an area of approximatley 12ha `r if(gitbook_on){knitr::asis_output("presented in Figure \\@ref(fig:model-caption-197360) and downloadable as a google earth kmz file [here.](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/riddeck202020210118.kmz)")} else knitr::asis_output("presented [here](https://www.mapsmadeeasy.com/maps/public_3D/421d3b7404d74cacad6471612260bb41/ and downloadable as a google earth kmz file [here](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/riddeck202020210118.kmz).")`
<br>
```{r model-197360, eval = identical(gitbook_on, TRUE)}
model_url <- '<iframe src="https://www.mapsmadeeasy.com/maps/public_3D/421d3b7404d74cacad6471612260bb41" scrolling="no" title="Maps Made Easy" width="100%" height="500" frameBorder ="0"></iframe>'
knitr::asis_output(model_url)
```
```{r model-caption-197360, fig.cap= my_caption, out.width = "0.01%", eval=T}
##here we insert a tiny blank png so that the caption looks good.
my_photo = 'fig/pixel.png'
my_caption = paste0('Interactive 3D model of habitat immediately upstream and downstream of PSCIS crossing ', my_site, '.')
knitr::include_graphics(my_photo, dpi = NA)
```
<br>
```{r eval=F}
##this is useful to get some comments for the report
hab_site %>% filter(site == my_site & location == 'us') %>% pull(comments)
my_priority <- my_priority_info()
```
## Stream Characteristics Downstream {-}
The stream was surveyed downstream from the culvert for `r my_priority_info(loc = 'ds') %>% pull(survey_length_m)`m `r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197360-01) - \\@ref(fig:photo-197360-02))")}else(knitr::asis_output("(Figure \\@ref(fig:photo-197360-d01))"))`. Overall, total cover amount was rated as `r my_habitat_info2(loc = 'ds') %>% filter(rowname == 'total cover') %>% pull(v)` with `r my_habitat_info2(loc = 'ds') %>% filter(v == 'dominant') %>% pull(rowname)` dominant. Cover was also present as `r my_habitat_info2(loc = 'ds') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()` (Table \@ref(tab:tab-habitat-summary-197360)). The average channel width was `r my_habitat_info3(loc = 'ds', row = 'avg channel width m')`m, the average wetted width was `r my_habitat_info3(loc = 'ds', row = 'avg wetted width m')`m and the average gradient was `r my_habitat_info3(loc = 'ds', row = 'average gradient percent')`%. The dominant substrate was `r my_habitat_info3(loc = 'ds', row = "bed material dominant")` with `r my_habitat_info3(loc = 'ds', row = "bed material subdominant")` subdominant. A somewhat recent burn was noted within a forested area on left bank of stream. Habitat was rated as `r my_priority_info(loc = 'ds') %>% pull(hab_value)` as it was considered an important migration corridor with moderate value habitat for fry/juvenile salmonid rearing.
<br>
During the 2023 reassessment, the stream was surveyed below the crossing for ~50m. Downstream of the crossing, the stream was only watered at the outlet of the culvert and occasional pools, otherwise the channel was dry. The outlet pool was turbid and murky with small and large woody debris present, which made for challenging electrofishing `r if(gitbook_on){knitr::asis_output("(Figure \\@ref(fig:photo-197360-05))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197360-d03))"))`.
<br>
## Stream Characteristics Upstream {-}
The stream was surveyed upstream from `r as.character(my_site)` for `r my_priority_info(loc = 'us') %>% pull(survey_length_m)`m `r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197360-03) - \\@ref(fig:photo-197360-04))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197360-d02))"))`. Immediately upstream of the crossing for a distance of approximately 150m is a beaver influenced wetland with a beaver dam structure located approximately 40m upstream of the road. Within the area surveyed, total cover amount was rated as `r my_habitat_info2(loc = 'us') %>% filter(rowname == 'total cover') %>% pull(v)` with `r my_habitat_info2(loc = 'us') %>% filter(v == 'dominant') %>% pull(rowname)` dominant. Cover was also present as `r my_habitat_info2(loc = 'us') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()` (Table \@ref(tab:tab-habitat-summary-197360)). The average channel width was `r my_habitat_info3(loc = 'us', row = 'avg channel width m')`m, the average wetted width was `r my_habitat_info3(loc = 'us', row = 'avg wetted width m')`m and the average gradient was `r my_habitat_info3(loc = 'us', row = 'average gradient percent')`%. Abundant gravels and small cobbles suitable for resident, fluvial, adfluvial and anadromous salmonid spawning were present throughout the area surveyed. Habitat value was rated as `r my_priority_info(loc = 'us') %>% pull(hab_value)` for salmonid rearing and spawning.
<br>
PSCIS culvert `r as.character(my_site2)` was documented on `r my_pscis_info() %>% pull(stream_name)`, 1.2km upstream of the FSR and PSCIS crossing `r as.character(my_site)`. The culvert was un-embedded, non-backwatered and considered a barrier to upstream fish passage. The pipe was `r my_pscis_info(dat = pscis_all, site = my_site2) %>% pull(diameter_or_span_meters)`m in diameter with a pipe length of `r my_pscis_info(dat = pscis_all, site = my_site2) %>% pull(length_or_width_meters)`m, a culvert slope of `r my_pscis_info(dat = pscis_all, site = my_site2) %>% pull(culvert_slope_percent)`%, a stream width ratio of `r my_pscis_info(dat = pscis_all, site = my_site2) %>% pull(stream_width_ratio)` and an outlet drop of `r my_pscis_info(dat = pscis_all, site = my_site2) %>% pull(outlet_drop_meters)`m (Table \@ref(tab:tab-culvert-197669)).
<br>
During the 2023 reassessment, the stream was surveyed above the crossing for ~350m. Immediately upstream of the crossing was a small amount of wetted wetland before the stream went subsurface for the remaining ~350m which was characterized by beaver activity and low gradients.
<br>
Table \@ref(tab:tab-culvert-bcfp-197360) `r text_ref_tab_summary_bcfp()`
<br>
## Fish Sampling {-}
Electrofishing was conducted in 2020 at two sites upstream and one site downstream of the `r my_overview_info() %>% pull(road_name)`. A total of `r tab_fish_summary %>% filter(site_id == paste0(my_site, '_us') & species_code == 'RB') %>% pull(count_fish)` rainbow trout captured upstream with `r tab_fish_summary %>% filter(site_id == paste0(my_site, '_ds') & species_code == 'RB') %>% pull(count_fish)` rainbow trout captured downstream. Raw results are included in digital format as [Attachment 2](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/habitat_confirmations.xls),
summarized in Tables \@ref(tab:tab-fish-site-197360) - \@ref(tab:tab-fish-dens-197360) and visualized in Figure \@ref(fig:plot-fish-box-197360).
<br>
The site was revisited on September 13, 2023 with electrofishing conducted again above and below crossing `r as.character(my_site)`
on `r my_overview_info() %>% pull(road_name)`. Results are summarized in Tables \@ref(tab:tab-fish-site-197360-2023) - \@ref(tab:tab-fish-dens-197360-2023) and Figure \@ref(fig:plot-fish-box-197360-2023). Electrofishing in 2024 was challenging
with only small sites assessed due to heavy vegetation and low water levels. A total of `r tab_fish_summary_2023 %>% filter(site_id == paste0(my_site, '_us')) %>% group_by(site_id) %>% janitor::adorn_totals() %>% filter(site_id == 'Total') %>% pull(count_fish)` rainbow trout were captured upstream and `r tab_fish_summary_2023 %>% filter(site_id == paste0(my_site, '_ds')) %>% group_by(site_id) %>% janitor::adorn_totals() %>% filter(site_id == 'Total') %>% pull(count_fish)` rainbow trout were captured downstream `r if(gitbook_on){knitr::asis_output("(Figure \\@ref(fig:photo-197360-06))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197360-d03))"))`. All fish captured with a fork length greater than 60mm were tagged with Passive Integrated Transponders (PIT tags) with data stored [here](`r paste0(params$repo_url, "blob/main/data/2023/habitat_confirmations.xls")`).
<br>
## Structure Remediation and Cost Estimate {-}
At the time of report updates (June 2024), an engineering design for a clear span bridge
had been completed, pilings had been purchased, and an overall replacement cost was estimated at approximately $900,000.
<br>
## Conclusion {-}
There was `r my_priority_info() %>% pull(upstream_habitat_length_km)`km of habitat upstream of crossing `r as.character(my_site)` and downstream of PSCIS barrier culvert `r as.character(my_site2)` with habitat in this area rated as `r my_priority_info(sit = my_site, loc = 'us') %>% pull(hab_value)` value for salmonid rearing/spawning. Remediation of PSCIS culvert `r as.character(my_site2)`
located on a private road approximately 1.2km upstream of the FSR would facilitate fish passage to an additional 1.5km of habitat upstream of the area surveyed. Although only rainbow trout were captured during electrofishing surveys upstream and downstream of the FSR in both 2020 and 2023, `r my_pscis_info() %>% pull(stream_name)` contains habitat likely suitable for spawning and rearing for other species including lamprey, burbot, coho salmon and others. The crossing was ranked as a `r my_priority_info() %>% pull(priority)` priority for proceeding to design for replacement.
<br>
The Office of Wet'suwet'en has initiated watershed level Nation led recovery/restoration planning for the greater Bii Wenii Kwa (Owen Creek) watershed which. This planning includes restoration of PSCIS crossing `r as.character(my_site)` on the `r my_overview_info() %>% pull(road_name)` and restoration actions in the greater Reddick Creek watershed as priority considerations.
<br>
In 2022, an engineering design for replacement of the culvert on `r my_overview_info() %>% pull(road_name)` was commissioned
by Ministry of Environment and Climate Change Strategy representatives and completed by engineering consultants with a replacement cost estimated at approximately $900,000. The `r my_overview_info() %>% pull(road_name)` is the responsibility of the Ministry of Forests (MoF) and if not yet completed, the design for replacement will require approval from MoF engineering. At the time of reporting in 2024, some materials for construction (pilings) had been purchased with additionally dollars likely available for superstructure purchase from the Fish Passage Technical Working Group in 2024 (pers. comm. Lars Reese-Hanson, WLRS).
<br>
```{r tab-culvert-197360, eval = T}
print_tab_summary()
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
```{r tab-culvert-197669, eval = T}
print_tab_summary(dat = pscis_all, site = my_site2, site_photo_id = my_site2_xref)
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
```{r tab-habitat-summary-197360}
tab_hab_summary %>%
filter(Site == my_site) %>%
# select(-Site) %>%
my_kable(caption_text = paste0('Summary of habitat details for PSCIS crossing ', my_site, '.'))
```
<br>
```{r tab-culvert-bcfp-197360, eval = T}
print_tab_summary_bcfp()
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
```{r tab-fish-site-197360, eval=T}
my_caption <- paste0('Electrofishing sites for PSCIS crossing ', my_site, ' in 2020.')
tab_fish_site() %>%
my_kable(caption_text = my_caption)
```
<br>
```{r tab-fish-dens-197360, eval=T}
my_caption <- paste0('Rainbow trout densities (fish/100m2) for PSCIS crossing ', my_site, ' in 2020.')
tab_fish_dens() %>%
my_kable(caption_text = my_caption)
```
<br>
```{r plot-fish-box-197360, fig.cap= my_caption, eval=T}
my_caption <- paste0('Densites of rainbow trout (fish/100m2) capture upstream and downstream of PSCIS crossing ', my_site, ', in 2020.')
plot_fish_box()
```
<br>
```{r tab-fish-site-197360-2023, eval=T}
fpr::fpr_table_fish_site(dat = tab_fish_sites_sum_2023, sit = my_site)
```
<br>
```{r tab-fish-dens-197360-2023, eval=T}
fpr::fpr_table_fish_density(dat = fish_abund_2023, sit = my_site)
```
`r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")`
```{r plot-fish-box-197360-2023, fig.cap= my_caption, eval=T}
my_caption <- paste0('Densites of fish (fish/100m2) captured upstream and downstream of PSCIS crossing ', my_site, ', in 2023.')
fpr::fpr_plot_fish_box(dat = fish_abund_2023, sit = my_site)
```
<br>
```{r photo-197360-01-prep, eval=T}
my_photo1 = pull_photo_by_str(str_to_pull = '_d1_')
my_caption1 = paste0('Typical habitat downstream of PSCIS crossing ', my_site, ' in 2020.')
```
```{r photo-197360-01, fig.cap= my_caption1, out.width = photo_width, eval=gitbook_on}
grid::grid.raster(get_img(photo = my_photo1))
```
<br>
```{r photo-197360-02-prep}
my_photo2 = pull_photo_by_str(str_to_pull = '_d2_')
my_caption2 = paste0('Aerial view of typical habitat downstream of PSCIS crossing ', my_site, ' in 2020.')
```
```{r photo-197360-02, fig.cap= my_caption2, out.width = photo_width, eval=gitbook_on}
source('R/packages.R')
grid::grid.raster(get_img(photo = my_photo2))
```
<br>
```{r photo-197360-d01, fig.cap = my_caption, fig.show="hold", out.width= c("49.5%","1%","49.5%"), eval=identical(gitbook_on, FALSE)}
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2)
knitr::include_graphics(get_img_path(photo = my_photo1))
knitr::include_graphics("fig/pixel.png")
knitr::include_graphics(get_img_path(photo = my_photo2))
```
```{r photo-197360-03-prep}
my_photo1 = pull_photo_by_str(str_to_pull = '_u1_')
my_caption1 = paste0('Typical habitat upstream of PSCIS crossing ', my_site, ' in 2020.')
```
```{r photo-197360-03, fig.cap= my_caption1, out.width = photo_width, eval=gitbook_on}
grid::grid.raster(get_img(photo = my_photo1))
```
<br>
```{r photo-197360-04-prep}
my_photo2 = pull_photo_by_str(str_to_pull = '_f1_')
my_caption2 = paste0('Rainbow trout captured upstream of PSCIS crossing ', my_site, ' in 2020.')
```
```{r photo-197360-04, fig.cap= my_caption2, out.width = photo_width, eval=gitbook_on}
grid::grid.raster(get_img(photo = my_photo2))
```
```{r photo-197360-d02, fig.cap = my_caption, fig.show="hold", out.width= c("49.5%","1%","49.5%"), eval=identical(gitbook_on, FALSE)}
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2)
knitr::include_graphics(get_img_path(photo = my_photo1))
knitr::include_graphics("fig/pixel.png")
knitr::include_graphics(get_img_path(photo = my_photo2))
```
<br>
```{r photo-197360-05-prep}
my_photo1 = fpr::fpr_photo_pull_by_str(site = my_site, dir_photos = "data/2023/photos/", str_to_pull = 'ds_ef1_typical_1')
my_caption1 = paste0('Outlet pool at crossing ', my_site, ' in 2023.')
```
```{r photo-197360-05, fig.cap= my_caption1, out.width = photo_width, eval=gitbook_on}
knitr::include_graphics(my_photo1)
```
<br>
```{r photo-197360-06-prep}
my_photo2 = fpr::fpr_photo_pull_by_str(site = my_site, dir_photos = "data/2023/photos/", str_to_pull = 'fish1')
my_caption2 = paste0('Rainbow trout captured upstream of crossing ', my_site, ' in 2023.')
```
```{r photo-197360-06, fig.cap= my_caption1, out.width = photo_width, eval=gitbook_on}
knitr::include_graphics(my_photo2)
```
```{r photo-197360-d03, fig.cap = my_caption, fig.show="hold", out.width= c("49.5%","1%","49.5%"), eval=identical(gitbook_on, FALSE)}
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2)
knitr::include_graphics(my_photo1)
knitr::include_graphics("fig/pixel.png")
knitr::include_graphics(my_photo2)
```