Problem
fl_valley_confine() uses two independent channel width sources from different regressions, and this comes up repeatedly when users ask whether to trust the output.
The two width sources
| Source |
Used for |
Formula |
Origin |
bcfishpass channel_width |
channel_buffer polygon (DEM correction) |
exp(0.307) * (area * precip / 100000) ^ 0.458 |
Poisson Consulting 2021b |
| VCA bankfull regression |
Flood depth modelling (fl_flood_surface) |
(area ^ 0.280) * 0.196 * (precip ^ 0.355) |
Hall 2007 / USDA VCA |
These are structurally different — Poisson uses a single exponent on a discharge proxy (area * precip), while the VCA uses independent exponents for area (0.280) and precip (0.355). They will give different widths for the same stream.
Additional complications
- Order 1 streams have NA
channel_width in bcfishpass — flooded skips these for the buffer but includes them via rasterization and flood model
channel_buffer = FALSE disables only the bcfishpass-derived buffer; the VCA flood model still runs with its own regression
- Users may not realize the flood extent and channel buffer come from different models
Proposed Solution
Document this in fl_valley_confine() roxygen @details and/or the valley-confinement vignette:
References
bcfishpass/model/03_habitat_lateral/valley_confinement.md (line 30)
fwapg/extras/channel_width/sql/channel_width_modelled.sql
bcfishpass/docs/03_model_habitat_linear.md
Relates to NewGraphEnvironment/fresh#28
Relates to NewGraphEnvironment/fresh#29
Relates to #21
Problem
fl_valley_confine()uses two independent channel width sources from different regressions, and this comes up repeatedly when users ask whether to trust the output.The two width sources
channel_widthchannel_bufferpolygon (DEM correction)exp(0.307) * (area * precip / 100000) ^ 0.458fl_flood_surface)(area ^ 0.280) * 0.196 * (precip ^ 0.355)These are structurally different — Poisson uses a single exponent on a discharge proxy (area * precip), while the VCA uses independent exponents for area (0.280) and precip (0.355). They will give different widths for the same stream.
Additional complications
channel_widthin bcfishpass — flooded skips these for the buffer but includes them via rasterization and flood modelchannel_buffer = FALSEdisables only the bcfishpass-derived buffer; the VCA flood model still runs with its own regressionProposed Solution
Document this in
fl_valley_confine()roxygen@detailsand/or the valley-confinement vignette:channel_buffer = FALSEis appropriate (don't trust bcfishpass widths, or DEM resolution already captures the channel)References
bcfishpass/model/03_habitat_lateral/valley_confinement.md(line 30)fwapg/extras/channel_width/sql/channel_width_modelled.sqlbcfishpass/docs/03_model_habitat_linear.mdRelates to NewGraphEnvironment/fresh#28
Relates to NewGraphEnvironment/fresh#29
Relates to #21