Skip to content

Skip Reservoir Routing — Levee Analysis Mode #26

@danmcgraw94

Description

@danmcgraw94

Summary

Add a levee analysis capability to rfaR that bypasses reservoir routing and instead works directly with flow-frequency or stage-frequency relationships at a gage or volume-frequency analysis (VFA) location, optionally applying Muskingum channel routing to a downstream levee site.

Motivation

Levee analysis requires flow-frequency (or stage-frequency) estimation at a protected reach, not at a reservoir pool. The existing rfa_simulate() workflow is reservoir-centric — it samples inflow-volume frequency and routes through a storage-indicator table to produce pool stage-frequency. For levee applications, the routing target is a channel cross-section or rating curve, not a reservoir pool, and the "skip routing" path avoids the Modified Puls step entirely.

Reference

The stratified sampling example workflow spreadsheet includes a levee example that should serve as the primary reference for implementation.

Proposed Approach

  • Review levee example in the stratified sampling workflow spreadsheet and document the expected inputs/outputs.
  • Decide on implementation strategy (see open design question below).
  • Optionally incorporate Muskingum routing from a gage or VFA location to the downstream levee.

Open Design Question

Should this be a separate function or a module within rfa_simulate()?

Option Pros Cons
rfa_simulate_levee() — separate function Clear separation of concerns; simpler function signatures; easier to document and test independently Code duplication of the stratified sampling scaffolding; two entry points to maintain
Module within rfa_simulate() Single entry point; shared infrastructure (stratified sampling, output formatting) rfa_simulate() is already large; more complex branching logic; harder to read

Current lean: Given that rfa_simulate() is already growing crowded, a dedicated rfa_simulate_levee() may be the cleaner path. Decision should be revisited once the levee workflow is fully scoped.

Muskingum Routing (Bonus)

Adding Muskingum channel routing would enable users to:

  • Route from an upstream gage or VFA location to a downstream levee site.
  • Propagate uncertainty in Muskingum parameters (K, x) as an additional Monte Carlo dimension if desired.
  • Support analyses where the frequency reference point is not co-located with the levee.
  • Implement muskingum_routing() as a standalone utility function.
  • Integrate with the levee analysis workflow.
  • Allow optional parameter uncertainty propagation.

Related

  • rfa_simulate()
  • mod_puls_routing()
  • Stratified sampling bin structure
  • Levee example tab in stratified sampling workflow spreadsheet

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions