Skip to content

Starting Pool Module #28

Description

@danmcgraw94

Summary

Develop an improved starting pool estimation method for rfaR that leverages flood seasonality to identify observed reservoir levels that coincided with flood events, providing a more physically representative distribution of pre-event reservoir stages.

Background

Estimating the starting reservoir pool before a flood event is important for stage-frequency analysis because antecedent pool elevation directly affects flood routing outcomes. Two existing approaches bracket the problem:

Approach Method Limitation
RMC-RFA (VBA) "Shoehorned" method — backs into non-event reservoir levels to estimate stage-duration and stage-quantile relationships Indirect; does not condition on flood-coincident levels
rfaR (current) Block-bootstrap resampling of observed pool record — approximately equivalent to the VBA method Uses all observed data equally; does not distinguish flood-season levels from non-flood periods

Both approaches treat the starting pool as an unconditional draw from the historical pool record. A better approach would condition the starting pool on the flood season, using only reservoir levels that historically coincided with flood events.

Proposed R&D Workflow

  1. Get dates from flood seasonality — use output from the seasonality module to identify the calendar windows associated with flood-generating conditions (e.g., cluster assignments or user-defined season boundaries).
  2. Extract coincident starting pool levels — filter the historical reservoir stage record to retain only observations that fall within flood-season windows. These represent a more realistic distribution of pre-event pool conditions.
  3. Sample starting pool from the conditioned distribution — use the filtered pool record (rather than the full record) as the bootstrap population for starting pool draws within rfa_simulate().

Research Questions

  • How sensitive are stage-frequency results to the choice of starting pool conditioning window?
  • Should the conditioning be strict (only days within identified flood clusters) or relaxed (e.g., ±N days around historical flood peaks)?
  • How should this method handle reservoirs with short pool records relative to the flood record?
  • Is block-bootstrap still appropriate for the conditioned pool record, or does the reduced sample size favor parametric fitting (e.g., Beta or Normal distribution fit to conditioned levels)?
  • How does this interact with multi-season analyses where different seasons have distinct pool distributions?

Implementation Considerations

  • Requires seasonality module output as an upstream dependency.
  • Should integrate with the existing starting pool sampling step in rfa_simulate().
  • Consider exposing the conditioned pool distribution as a diagnostic output (e.g., density plot of starting pool draws vs. full historical record).
  • Benchmark conditioned results against current block-bootstrap and RMC-RFA outputs on a validation case (e.g., Cherry Creek Dam).

Related

  • Seasonality module (upstream dependency — see related issue)
  • rfa_simulate()
  • Block-bootstrap starting pool logic

Metadata

Metadata

Assignees

Labels

Fields

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions