Skip to content

Starting Pool Module #28

@danmcgraw94

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

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions