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 <- 195290
my_site2 <- 195288
my_site2_xref <- 14000079

r appendix_title2()

Site Location {-}

PSCIS crossing r as.character(my_site) is located on r my_pscis_info() %>% pull(stream_name) on r my_overview_info() %>% pull(road_name) approximately 10km south of Telkwa, BC. PSCIS crossing r as.character(my_site2) is also located on r my_pscis_info(site = my_site2) %>% pull(stream_name) on r my_overview_info(site = my_site2) %>% pull(road_name) approximately 1.5km upstream of r as.character(my_site). Both roads are the responsibility of the Ministry of Transportation and Infrastructure.


Background {-}

r my_pscis_info() %>% pull(stream_name) flows through an estimated r my_bcfishpass() %>% pull(steelhead_wetland_ha)ha of wetland type habitat into Deep Creek approximately r my_priority_info(loc = 'ds') %>% pull(survey_length_m)m downstream of the crossing r as.character(my_site). From the confluence with Gibson Creek, Deep Creek flows for approximately 1.5km to the Bulkley River. At the crossing location, r my_pscis_info() %>% pull(stream_name) is a r my_bcfishpass() %>% pull(stream_order) %>% english::ordinal() order stream with a watershed area upstream of the highway of approximately r round(my_bcfishpass() %>% pull(watershed_upstr_ha)/100,1)km^2^. The elevation of the watershed ranges from a maximum of 1300 to 575m at PSCIS crossing r as.character(my_site). r my_pscis_info() %>% pull(stream_name) is known to contain rainbow trout and cutthrout trout upstream of r as.character(my_site) [@data_fish_obs].


PSCIS stream crossings r as.character(my_site) and r as.character(my_site2) were rated high priorities for follow up by both @irvine2018AnalysisPriority and @smith2018AssessingBarriers due to significant quantities of habitat suitable for salmonid rearing. A map of the watershed is provided in map attachment r my_bcfishpass() %>% pull(dbm_mof_50k_grid).


Stream Characteristics at Crossing {-}

Surveys were conducted with a remotely piloted aircraft immediately upstream and downstream of both crossings. The resulting images were stitched into orthomosaics and 3-dimensional models (4cm resolution) r if(gitbook_on){knitr::asis_output(" with models presented in Figures \\@ref(fig:model-caption-195290) - \\@ref(fig:model-caption-195288) and downloadable as a google earth kmz files [here](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/gibson195290202020210121.kmz) and [here.](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/gibson195288202020210120.kmz)")} else knitr::asis_output("with models presented [here](https://www.mapsmadeeasy.com/maps/public_3D/9ee5bee50be8436abbeb1dc83f4235cb/) and [here](https://www.mapsmadeeasy.com/maps/public/345c333761aa431cac06f62c8d2f0291). Google earth model kmz files are downloadable [here](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/gibson195290202020210121.kmz) and [here](https://github.com/NewGraphEnvironment/fish_passage_bulkley_2020_reporting/raw/master/data/outputs_uav/gibson195288202020210120.kmz).")

model_url <- '<iframe src="https://www.mapsmadeeasy.com/maps/public_3D/9ee5bee50be8436abbeb1dc83f4235cb" scrolling="no" title="Maps Made Easy" width="100%" height="500" frameBorder ="0"></iframe>'

knitr::asis_output(model_url)
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)


model_url <- '<iframe src="https://www.mapsmadeeasy.com/maps/public_3D/345c333761aa431cac06f62c8d2f0291" scrolling="no" title="Maps Made Easy" width="100%" height="500" frameBorder ="0"></iframe>'

knitr::asis_output(model_url)
my_photo = 'fig/pixel.png'

my_caption = paste0('Interactive 3D model of habitat immediately upstream and downstream of PSCIS crossing ', my_site2, '.')

knitr::include_graphics(my_photo, dpi = NA)

At the time of the survey, crossing r as.character(my_site) 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-195290)). Crossing r as.character(my_site2) on r my_overview_info(site = my_site2) %>% pull(road_name) was also un-embedded, non-backwatered and ranked as a barrier to upstream fish passage. The pipe was r my_pscis_info(site = my_site2) %>% pull(diameter_or_span_meters)m in diameter with a pipe 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-195288)). 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.


##this is useful to get some comments for the report
hab_site %>% filter(site == my_site & location == 'ds') %>% 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 to the confluence with Deep Creek 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-195290)). 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. Riparian vegetation consisted primarily of a well developed shrub layer and there were occasional pockets of small gravesl present suitable for resident salmonid spawning. 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.


Stream Characteristics Upstream of 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 where survey conditions because difficult due to the wetland type habitat 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 approximately 50m, the riparian area is dominated by well developed shrub and mature primarily deciduous forest. Upstream of this location the riparian area transitions to dense shrub and grass with a narrow and deep channel influenced by beaver activity. 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-195290)). 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.


Stream Characteristics Upstream of 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 via remotely piloted aerial vehicle as survey conditions were difficult due to the wetland type habitat present. Images acquired from the survey were stitched into an orthomosaic with stream habitat measurements estimated based on interpretation of the orthomosaic. The average channel width was estimated at r my_habitat_info3(sit = my_site2, loc = 'us', row = 'avg channel width m')m, the average wetted width was estimated at r my_habitat_info3(sit = my_site2, loc = 'us', row = 'avg wetted width m')m and the average gradient was estimated at r my_habitat_info3(sit = my_site2, loc = 'us', row = 'average gradient percent')%. Habitat value was rated as r my_priority_info(sit = my_site2, loc = 'us') %>% pull(hab_value) as it was considered an important migration corridor with moderate value habitat for fry/juvenile salmonid rearing.


Table \@ref(tab:tab-culvert-bcfp-195290) r text_ref_tab_summary_bcfp() Table \@ref(tab:tab-culvert-bcfp-195288) r text_ref_tab_summary_bcfp(site = my_site2)


Fish Sampling {-}

To assess potential impacts of the culvert on fisheries values in the stream, electrofishing and minnowtrapping was conducted upstream and downstream of the crossing. A total of r tab_fish_summary %>% filter(site_id == paste0(my_site, '_us')) %>% group_by(site_id) %>% janitor::adorn_totals() %>% filter(site_id == 'Total') %>% pull(count_fish) fish were captured upstream with r tab_fish_summary %>% filter(site_id == paste0(my_site, '_ds')) %>% group_by(site_id) %>% janitor::adorn_totals() %>% filter(site_id == 'Total') %>% pull(count_fish) fish captured downstream. Species captured downstream included coho, bull trout (or potentially dolly varden) and rainbow trout. Only rainbow trout were captured upstream. Electrofishing results are summarized in Tables \@ref(tab:tab-fish-site-195290) - Tables \@ref(tab:tab-fish-dens-195290) and Figure \@ref(fig:plot-fish-box-195290) with minnowtrapping results summarized in Table \@ref(tab:tab-fish-mt-195290).


Structure Remediation and Cost Estimate {-}

Structure replacement with bridges for r as.character(my_site) (r my_pscis_info() %>% pull(recommended_diameter_or_span_meters)m span) and r as.character(my_site2) (r my_pscis_info(site = my_site2) %>% pull(recommended_diameter_or_span_meters)m span) are recommended to provide access to the habitat located upstream. An estimate of cost for replacement of r as.character(my_site) is \$r format(my_cost_estimate() %>% pull(cost_est_1000s) * 1000, big.mark = ',') resulting in cost benefits of r as.character(my_cost_estimate() %>% pull(cost_net)) linear m/\$1000 and r as.character(my_cost_estimate() %>% pull(cost_area_net))m^2^/\$1000. An estimate of cost for replacement of r as.character(my_site2) is \$r format(my_cost_estimate(site = my_site2) %>% pull(cost_est_1000s) * 1000, big.mark = ',') resulting in cost benefits of r as.character(my_cost_estimate(site = my_site2) %>% pull(cost_net)) linear m/\$1000 and r as.character(my_cost_estimate(site = my_site2) %>% pull(cost_area_net))m^2^/\$1000.


Conclusion {-}

There is 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). Upstream of r as.character(my_site2) there is another r my_bcfishpass(site = my_site2) %>% pull(steelhead_slopeclass05_km)km of habitat modelled as <5% and containing wetland areas suitable for coho rearing. Habitat in the areas surveyed was rated as r my_priority_info(sit = my_site, loc = 'us') %>% pull(hab_value) value for salmonid rearing/spawning. r my_overview_info() %>% pull(road_name) and r my_overview_info(dat = pscis_all, site = my_site2) %>% pull(road_name) are the responsibility of the Ministry of Transportation and Infrastructure. Although the sample size is small, the presence of coho downstream of the crossing and absense of this species at sites upstream indicates that the crossing may be blocking upstream migration of this species. The large outlet drop at r as.character(my_site) (r my_pscis_info() %>% pull(outlet_drop_meters)m), long pipe length (r my_pscis_info() %>% pull(length_or_width_meters)m) and high stream width ratio (r my_pscis_info() %>% pull(stream_width_ratio)) are good indicators that the crossing is likely not passable in an upstream direction by any species or lifestage. The crossings were ranked as r my_priority_info() %>% pull(priority) priorities 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")

tab_hab_summary %>% 
  filter(Site  == my_site | Site  == my_site2) %>% 
  # select(-Site) %>% 
  my_kable(caption_text = paste0('Summary of habitat details for PSCIS crossings ', my_site, ' and ', my_site2, '.'))


print_tab_summary_bcfp()

r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")

print_tab_summary_bcfp(site = my_site2)


my_caption <- paste0('Electrofishing sites for PSCIS crossing ', my_site, '.')

tab_fish_site() %>% 
  my_kable(caption_text = my_caption)


my_caption <- paste0('Densities of fish captured (fish/100m2) during electrofishing upstream and downstream of PSCIS crossing ', my_site, '.')

tab_fish_dens() %>% 
  my_kable(caption_text = my_caption)

r if(gitbook_on){knitr::asis_output("<br>")} else knitr::asis_output("\\pagebreak")

my_caption <- paste0('Densites of fish (fish/100m2) capture upstream and downstream of PSCIS crossing ', my_site, '.')

plot_fish_box() 


my_caption <- paste0('Fish captured in minnowtraps set overnight upstream and downstream of PSCIS crossing ', my_site, '.')

tab_fish_mt() %>% 
  my_kable(caption_text = my_caption)


my_photo1 = pull_photo_by_str(str_to_pull = '_d1_')

my_caption1 = paste0('Typical habitat downstream of PSCIS crossing ', my_site, '.')
grid::grid.raster(get_img(photo = my_photo1))


my_photo2 = pull_photo_by_str(str_to_pull = '_f1_')

my_caption2 = paste0('Coho captured downstream of PSCIS crossing ', my_site, '.')
grid::grid.raster(get_img(photo = my_photo2))


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))
my_photo1 = pull_photo_by_str(str_to_pull = '_u1_')

my_caption1 = paste0('Typical habitat upstream of PSCIS crossing ', my_site, '.')
grid::grid.raster(get_img(photo = my_photo1))


my_photo2 = pull_photo_by_str(str_to_pull = '_u2_')

my_caption2 = paste0('Wetland habitat upstream of PSCIS crossing ', my_site, '.')
grid::grid.raster(get_img(photo = my_photo2))
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))


NewGraphEnvironment/fish_passage_bulkley_2020_reporting documentation built on July 9, 2024, 4:10 a.m.