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')
my_site <- 197665 my_site2 <- 197664 my_site3 <- 3042 mbcfp <- bind_rows( my_bcfishpass(site = my_site), my_bcfishpass(site = my_site2), my_bcfishpass(site = my_site3) )
r appendix_title3()
PSCIS crossing r as.character(my_site)
is on r my_pscis_info() %>% pull(stream_name)
under the r my_overview_info() %>% pull(road_name)
located approximately 25km east of Houston, BC. The structure is located approximately 20m upstream from the confluence with the Bulkley River. r my_overview_info() %>% pull(road_name)
is the responsibility of CN Rail.
PSCIS crossing r as.character(my_site2)
is on r my_overview_info(site = my_site2) %>% pull(road_name)
with the highway culvert located approximately 120m upstream from the confluence with the Bulkley River and 100m upstream of the railway. r my_overview_info(site = my_site2) %>% pull(road_name)
is the responsibility of the Ministry of Transportation and Infrastructure.
PSCIS crossing r as.character(my_site3)
is located at km 13.5 of r my_overview_info(site = my_site3) %>% pull(road_name)
and approximately 10km upstream of r my_overview_info(site = my_site3) %>% pull(road_name)
. r my_overview_info(site = my_site3) %>% pull(road_name)
is the responsibility of FLNR - Nadina Forest District.
The r my_pscis_info() %>% pull(stream_name)
watershed upstream of the highway is approximately r round(my_bcfishpass(site = my_site2) %>% pull(watershed_upstr_ha)/100,1)
km^2^ in area with an estimated r my_bcfishpass(site = my_site2) %>% pull(total_wetland_ha)
ha of wetland and r my_bcfishpass(site = my_site2) %>% pull(total_lakereservoir_ha)
ha of lake documented upstream. At the highway, (600m of elevation) r my_pscis_info(site = my_site2) %>% pull(stream_name)
is a r my_bcfishpass(site = my_site2) %>% pull(stream_order) %>% english::ordinal()
order stream with a maximum watershed elevation of aproximatley 1300m. Fish documented as present upstream of the highway include r my_fish_sp(sit = my_site2)
[@data_fish_obs]. Although not recorded in @ProvincialObstaclesFish at the time of reporting, an impassable falls (Wilson Falls) has been documented approximately 6.2km upstream from the highway (pers. comm. Jonathan Van Barneveld, Forester - FLNR). Although there are several unassessed road stream crossing structures and crossings documented in PSCIS as barriers on tributary systems to the Barren Creek mainstem downstream of the falls as well as upstream of r my_overview_info(site = my_site3) %>% pull(road_name)
, the quantity of habitat in these blocked and potentially blocked stream segments likely very minimal and with low fisheries value due to the small size of the upstream watersheds.
PSCIS crossing 8733, located at km 18.2 of North Road (Michelle Bary FSR) and approximately 1.5km upstream from Highway 16. The culvert was replaced with a bridge by Canadian Forest Products in 2018 [@moe2021PSCISHabitat; @patterson2010ProjectCompletion].
The r my_pscis_info(site = my_site3) %>% pull(stream_name)
watershed upstream of r as.character(my_site3)
is approximately r round(my_bcfishpass(site = my_site3) %>% pull(watershed_upstr_ha)/100,1)
km^2^ in area with an estimated r my_bcfishpass(site = my_site3) %>% pull(total_wetland_ha)
ha of wetland and r my_bcfishpass(site = my_site3) %>% pull(total_lakereservoir_ha)
ha of lake documented upstream. The stream is r my_bcfishpass(site = my_site2) %>% pull(stream_order) %>% english::ordinal()
order at this location. Although fish have not been previously documented upstream of r as.character(my_site3)
in @data_fish_obs, @finsconsulting20142014Stream report rainbow trout fry downstream of the lake at the top end of the watershed.
In the summer of 1998, the Nadina Community Futures Development Corporation (NCFDC) carried out a detailed Level 1 Fish, Fish Habitat and Riparian Assessment in the first and second reaches of r my_pscis_info() %>% pull(stream_name)
as well as several other large Upper Bulkley River tributary streams and the Upper Bulkley mainstem. The area surveyed extended to 4.2km from the mouth covering near 4km of habitat upstream of crossing r as.character(my_site2)
[@ncfdc1998MidBulkleyDetailed]. Building on these assessments and detailed fish sampling, @ncfdc1998MidBulkleyDetailed developed restoration prescriptions for the lower reaches of the r my_pscis_info() %>% pull(stream_name)
. Prescriptions were developed to address what the authors termed moderately to severely disturbed habitat due to:
Impacts noted included:
* extensive bars, extensive riffles, minimal pool area, eroding banks and sediment wedges.
* high water temperatures, the absence of species historically present in the reach, and extreme aggradation.
* access issues related to bank instability, extremes in water levels, as well as undersized and poorly installed culverts.
Overall, @ncfdc1998MidBulkleyDetailed report that, in an unimpacted state, the first two reaches of r my_pscis_info() %>% pull(stream_name)
are critical and productive areas for spawning and rearing particularly for coho and steelhead. They also note that the area up to North Road may be utilized for juvenile chinook rearing. Detailed prescriptions for restorative measures that address the noted impacts are documented in @ncfdc1998MidBulkleyDetailed and include measures related to slope stabilization, bank stabilization, sediment filtering and cattle exclusion.
Overwintering studies using minnowtrapping were conducted downstream of the highway culvert between 2005 and 2009 with coho and rainbow trout/steelhead captured. Results are summarized in @donas_newman2006BulkleyRiver, @donas_newman2007BulkleyRiver, @donas_newman2008BulkleyRiver and @donas_newman2010BulkleyRiver.
PSCIS stream crossings r as.character(my_site)
and r as.character(my_site2)
were rated as high priorities for habitat confirmation assessments after consultation with the Office of Wet'suwet'en, Fisheries and Oceans Canada representatives and Canadian Wildlife Federation due to concerns related to the aforementioned land-use impacts as well as ongoing dredging taking place upstream and downstream of Highway 16. Crossing r as.character(my_site3)
was rated as a high priority for follow up as it was ranked as a high priority in both @irvine2018AnalysisPriority and @casselman_stanley2010BulkleyFulton. A map of the watershed is provided in map attachment r my_bcfishpass() %>% pull(dbm_mof_50k_grid)
.
r as.character(my_site)
and r as.character(my_site2)
{-}At the time of the survey, crossing r as.character(my_site)
structures under the r my_overview_info() %>% pull(road_name)
were fully embedded and considered passable according to the provincial protocol. Each of the two pipes were r my_pscis_info() %>% pull(diameter_or_span_meters)
m in diameter with lengths of r my_pscis_info() %>% pull(length_or_width_meters)
m, culvert slopes of r my_pscis_info() %>% pull(culvert_slope_percent)
%, a stream width ratio of r my_pscis_info() %>% pull(stream_width_ratio)
and outlet drops of r my_pscis_info() %>% pull(outlet_drop_meters)
m (Table \@ref(tab:tab-culvert-197665)). At the time of the survey, only one of the pipes was passing water and this structure appeared to be potentially failing as the top of the concrete structure was tilted towards the Bulkley River.
Crossing r as.character(my_site2)
on r my_overview_info(site = my_site2) %>% pull(road_name)
was r my_pscis_info(site = my_site2) %>% pull(diameter_or_span_meters)
m in diameter with a length of r my_pscis_info(site = my_site2) %>% pull(length_or_width_meters)
m, a culvert slope of r my_pscis_info(site = my_site2) %>% pull(culvert_slope_percent)
%, a stream width ratio of r my_pscis_info(site = my_site2) %>% pull(stream_width_ratio)
and an outlet drop of r my_pscis_info(site = my_site2) %>% pull(outlet_drop_meters)
m (Table \@ref(tab:tab-culvert-197664)). Water temperature was r my_habitat_info3(sit = my_site2, row = 'temperature c')
$^\circ$C, pH was r my_habitat_info3(sit = my_site2, row = 'p h')
and conductivity was r my_habitat_info3(sit = my_site2, row = 'conductivity m s cm')
uS/cm.
Crossing r as.character(my_site3)
on r my_overview_info(site = my_site3) %>% pull(road_name)
was unembedded, not backwatered and considered a barrier to fish passage according to the provincial protocol. The pipe was r my_pscis_info(site = my_site3) %>% pull(diameter_or_span_meters)
m in diameter with a length of r my_pscis_info(site = my_site3) %>% pull(length_or_width_meters)
m, a culvert slope of r my_pscis_info(site = my_site3) %>% pull(culvert_slope_percent)
%, a stream width ratio of r my_pscis_info(site = my_site2) %>% pull(stream_width_ratio)
and an outlet drop of r my_pscis_info(site = my_site3) %>% pull(outlet_drop_meters)
m (Table \@ref(tab:tab-culvert-3042)). Water temperature was r my_habitat_info3(sit = my_site3, row = 'temperature c')
$^\circ$C and pH was r my_habitat_info3(sit = my_site3, row = 'p h')
.
##this is useful to get some comments for the report hab_site %>% filter(site == my_site2 & location == 'ds') %>% pull(comments) my_priority <- my_priority_info() # north road assessment file here https://a100.gov.bc.ca/pub/acat/public/viewReport.do?reportId=18959
r as.character(my_site)
{-}Crossing r as.character(my_site)
is located 30m upstream of the Bulkley River and within the active floodplain. The armoured railway bisects a series of three historic oxbows immediately east of culvert, preventing access to potentially valuable rearing and refuge habitat.
r as.character(my_site)
and downstream of r as.character(my_site2)
{-}The stream was surveyed upstream from r as.character(my_site)
for r my_priority_info(loc = 'us') %>% pull(survey_length_m)
m to Highway 16 r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197665-01) - \\@ref(fig:photo-197665-02))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197665-d01))"))
. Within the area surveyed, total cover amount was rated as r my_habitat_info2(sit = my_site2, loc = 'ds') %>% filter(rowname == 'total cover') %>% pull(v)
with r my_habitat_info2(sit = my_site2, loc = 'ds') %>% filter(v == 'dominant') %>% pull(rowname)
dominant. Cover was also present as r my_habitat_info2(sit = my_site2, loc = 'ds') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()
(Table \@ref(tab:tab-habitat-summary-197665)). The average channel width was r my_habitat_info3(sit = my_site2, loc = 'ds', row = 'avg channel width m')
m, the average wetted width was r my_habitat_info3(sit = my_site2, loc = 'ds', row = 'avg wetted width m')
m and the average gradient was r my_habitat_info3(sit = my_site2, loc = 'ds', 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 was rated as r my_priority_info(loc = 'us') %>% pull(hab_value)
value with habitat present suitable for resident and anadromous fry/juvenile salmonid rearing and spawning.
r as.character(my_site2)
{-}r my_pscis_info() %>% pull(stream_name)
was surveyed upstream from r as.character(my_site2)
for r my_priority_info(sit = my_site2, loc = 'us') %>% pull(survey_length_m)
m r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197665-03) - \\@ref(fig:photo-197665-04))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197665-d02))"))
. Within the area surveyed, total cover amount was rated as r my_habitat_info2(sit = my_site2, loc = 'us') %>% filter(rowname == 'total cover') %>% pull(v)
with r my_habitat_info2(sit = my_site2, loc = 'us') %>% filter(v == 'dominant') %>% pull(rowname)
dominant. Cover was also present as r my_habitat_info2(sit = my_site2, loc = 'us') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()
(Table \@ref(tab:tab-habitat-summary-197665)). The average channel width was r my_habitat_info3(sit = my_site2, loc = 'us', row = 'avg channel width m')
m, the average wetted width was r my_habitat_info3(sit = my_site2, loc = 'us', row = 'avg wetted width m')
m and the average gradient was r my_habitat_info3(sit = my_site2, loc = 'us', row = 'average gradient percent')
%. An active cut was noted approximately 100m upstream of culvert. It is suspected that this area is constantly depositing gravels into stream. There extensive areas of gravels suitable for CO spawning. Riparian vegetation consisted of a mature cottonwood forest with right bank armouring and riparian removal along the adjacent private road. Habitat was rated as r my_priority_info(sit = my_site2, loc = 'us') %>% pull(hab_value)
value for resident and anadromous salmonid rearing and spawning.
r as.character(my_site3)
{-}r my_pscis_info() %>% pull(stream_name)
was surveyed downstream from r as.character(my_site3)
for r my_priority_info(sit = my_site3, loc = 'us') %>% pull(survey_length_m)
m r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197665-05) - \\@ref(fig:photo-197665-06))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197665-d03))"))
. The area surveyed consisted of a series of beaver dams with impounded areas upstream ranging in length from 10 - 100m and dam heights ranging from 0.7 - 1.2m. Total cover amount was rated as r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(rowname == 'total cover') %>% pull(v)
with r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(v == 'dominant') %>% pull(rowname)
dominant. Cover was also present as r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()
(Table \@ref(tab:tab-habitat-summary-197665)). The average channel width was r my_habitat_info3(sit = my_site3, loc = 'ds', row = 'avg channel width m')
m, the average wetted width was r my_habitat_info3(sit = my_site3, loc = 'ds', row = 'avg wetted width m')
m and the average gradient was r my_habitat_info3(sit = my_site3, loc = 'ds', row = 'average gradient percent')
%. At the bottom end of the site, flooded forest and shrub areas transitioned to a small marsh with emergent aquatic vegetation and extensive areas of open water. Water depths in the marsh were estimated at over 1m. Habitat value was rated as r my_priority_info(sit = my_site3, loc = 'ds') %>% pull(hab_value)
for resident salmonid rearing and overwintering.
r as.character(my_site3)
{-}r my_pscis_info() %>% pull(stream_name)
was surveyed upstream from r as.character(my_site3)
for r my_priority_info(sit = my_site3, loc = 'us') %>% pull(survey_length_m)
m r if(gitbook_on){knitr::asis_output("(Figures \\@ref(fig:photo-197665-07) - \\@ref(fig:photo-197665-08))")} else(knitr::asis_output("(Figure \\@ref(fig:photo-197665-d04))"))
. A beaver influenced wetland was located immediately upstream of crossing and extended upstream for more than 200m. Survey data was collected beginning from an area located approximately 900m upstream of crossing and terminating at the beaver dam controlled outlet of a small lake. Within the area surveyed, total cover amount was rated as r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(rowname == 'total cover') %>% pull(v)
with r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(v == 'dominant') %>% pull(rowname)
dominant. Cover was also present as r my_habitat_info2(sit = my_site3, loc = 'us') %>% filter(v == 'sub-dominant') %>% pull(rowname) %>% knitr::combine_words()
(Table \@ref(tab:tab-habitat-summary-197665)). The average channel width was r my_habitat_info3(sit = my_site3, loc = 'us', row = 'avg channel width m')
m, the average wetted width was r my_habitat_info3(sit = my_site3, loc = 'us', row = 'avg wetted width m')
m and the average gradient was r my_habitat_info3(sit = my_site3, loc = 'us', row = 'average gradient percent')
%. The area surveyed varied from cobble/boulder channel flowing freely to primarily glide habitat with depths ranging from 60 - 100 cm in depth. There were occasional pockets of gravels in the channel near the start of the survey with some pools associated with large woody debris throughout. A large beaver pond/lake area was located at the top end of the site. Additional habitat information for areas upstream of the crossing are recorded in the provincial fisheries information summary system [@moeStreamInventorySample]. Habitat value was rated as r my_priority_info(sit = my_site3, loc = 'us') %>% pull(hab_value)
for resident salmonid rearing and overwintering.
Table \@ref(tab:tab-culvert-bcfp-197665) r text_ref_tab_summary_bcfp()
Costs to replace r as.character(my_site)
and r as.character(my_site2)
with bridges are estimated at $5,000,000 per crossing. Structure replacement with an embedded culvert is recommended for r as.character(my_site3)
(streambed simulation - r my_pscis_info(site = my_site3) %>% pull(recommended_diameter_or_span_meters)
m span) with an estimated cost of \$r format(my_cost_estimate(site = my_site3) %>% pull(cost_est_1000s) * 1000, big.mark = ',')
resulting in cost benefits of r as.character(my_cost_estimate(site = my_site3) %>% pull(cost_net))
linear m/\$1000 and r as.character(my_cost_estimate(site = my_site3) %>% pull(cost_area_net))
m^2^/\$1000.
Although r as.character(my_site)
and r as.character(my_site2)
are technically considered passable, both corridors appear to have been poorly designed. Dredging to keep r as.character(my_site2)
from directing flows over Highway 16 during high flow events has been an ongoing source of conflict and the structures are part of a greater land use scenario that negatively affects ecological function and blocks access to a series of historic upper Bulkley River oxbows.
There is r my_priority_info(sit = my_site3) %>% pull(upstream_habitat_length_km)
km of mainstem habitat upstream of crossing r as.character(my_site3)
including an estimated r my_bcfishpass(site = my_site3) %>% pull(total_wetland_ha)
ha of wetland and r my_bcfishpass(site = my_site3) %>% pull(total_lakereservoir_ha)
ha of lake. Habitat in the areas surveyed upstream was rated as r my_priority_info(sit = my_site, loc = 'us') %>% pull(hab_value)
value for salmonid rearing/spawning. Wilson Falls is located downstream of the crossing, so restoration of passage at r my_overview_info(site = my_site3) %>% pull(road_name)
could benefit resident rainbow trout only. The crossing was ranked as a r my_priority_info() %>% pull(priority)
priority for proceeding to design for replacement.
print_tab_summary()
r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")
print_tab_summary(dat = pscis_all, site = my_site2, site_photo_id = my_site2)
r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")
print_tab_summary(dat = pscis_all, site = my_site3, site_photo_id = my_site3)
r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")
tab_hab_summary %>% filter((Site == my_site & Location == 'Downstream') | Site == my_site2 | Site == my_site3) %>% # select(-Site) %>% my_kable(caption_text = paste0('Summary of habitat details for PSCIS crossings ', my_site, 'and ', my_site2, '.'))
print_tab_summary_bcfp()
my_photo1 = pull_photo_by_str(site_id = my_site2, str_to_pull = '_d1_') my_caption1 = paste0('Typical habitat downstream of PSCIS crossing ', my_site2, '.')
grid::grid.raster(get_img(site = my_site2, photo = my_photo1))
my_photo2 = pull_photo_by_str(site_id = my_site2, str_to_pull = '_d2_') my_caption2 = paste0('Typical habitat downstream of PSCIS crossing ', my_site2, '.')
grid::grid.raster(get_img(site = my_site2, photo = my_photo2))
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2) knitr::include_graphics(get_img_path(site = my_site2, photo = my_photo1)) knitr::include_graphics("fig/pixel.png") knitr::include_graphics(get_img_path(site = my_site2, photo = my_photo2))
my_photo1 = pull_photo_by_str(site_id = my_site2, str_to_pull = '_u1_') my_caption1 = paste0('Habitat upstream of PSCIS crossing ', my_site2, ' and location of cutslope.')
grid::grid.raster(get_img(site = my_site2, photo = my_photo1))
my_photo2 = pull_photo_by_str(site_id = my_site2, str_to_pull = '_u2_') my_caption2 = paste0('Habitat upstream of PSCIS crossing ', my_site2, '.')
grid::grid.raster(get_img(site = my_site2, photo = my_photo2))
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2) knitr::include_graphics(get_img_path(site = my_site2, photo = my_photo1)) knitr::include_graphics("fig/pixel.png") knitr::include_graphics(get_img_path(site = my_site2, photo = my_photo2))
my_photo1 = pull_photo_by_str(site_id = my_site3, str_to_pull = '_d1_') my_caption1 = paste0('Habitat downstream of PSCIS crossing ', my_site3, '.')
grid::grid.raster(get_img(site = my_site3, photo = my_photo1))
my_photo2 = pull_photo_by_str(site_id = my_site3, str_to_pull = '_d2_') my_caption2 = paste0('Habitat downstream of PSCIS crossing ', my_site3, '.')
grid::grid.raster(get_img(site = my_site3, photo = my_photo2))
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2) knitr::include_graphics(get_img_path(site = my_site3, photo = my_photo1)) knitr::include_graphics("fig/pixel.png") knitr::include_graphics(get_img_path(site = my_site3, photo = my_photo2))
my_photo1 = pull_photo_by_str(site_id = my_site3, str_to_pull = '_u1_') my_caption1 = paste0('Habitat upstream of PSCIS crossing ', my_site3, '.')
grid::grid.raster(get_img(site = my_site3, photo = my_photo1))
my_photo2 = pull_photo_by_str(site_id = my_site3, str_to_pull = '_u2_') my_caption2 = paste0('Habitat upstream of PSCIS crossing ', my_site3, '.')
grid::grid.raster(get_img(site = my_site3, photo = my_photo2))
my_caption <- paste0('Left: ', my_caption1, ' Right: ', my_caption2) knitr::include_graphics(get_img_path(site = my_site3, photo = my_photo1)) knitr::include_graphics("fig/pixel.png") knitr::include_graphics(get_img_path(site = my_site3, photo = my_photo2))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.