pywrdrb.pre.STARFITOfflineSimulator

pywrdrb.pre.STARFITOfflineSimulator#

class pywrdrb.pre.STARFITOfflineSimulator(initial_volume_frac=0.8, starfit_params_filename=None)#

Offline STARFIT reservoir simulator.

Replicates the STARFIT release logic from STARFITReservoirRelease (parameters/starfit.py) without requiring Pywr runtime objects. Pre-computes seasonal lookup tables and simulates storage dynamics day-by-day for each reservoir.

Parameters:
  • initial_volume_frac (float) – Initial reservoir storage as a fraction of capacity. Default is 0.8, matching the default in ModelBuilder.Options.

  • starfit_params_filename (str, optional) – Path to an alternative STARFIT parameter CSV (same format as istarf_conus.csv). If None, the default packaged file is used.

Examples

>>> from pywrdrb.pre.generate_presimulated_releases import STARFITOfflineSimulator
>>> sim = STARFITOfflineSimulator(initial_volume_frac=0.8)
>>> sim.load_parameters()
>>> releases_df = sim.simulate_all(catchment_inflows_df)
__init__(initial_volume_frac=0.8, starfit_params_filename=None)#

Methods

__init__([initial_volume_frac, ...])

generate_and_save(flow_type[, reservoir_list])

Load catchment inflows, simulate all STARFIT reservoirs, and save results.

load_parameters()

Load STARFIT parameters from istarf_conus.csv and water consumption data.

simulate_all(catchment_inflows_df[, ...])

Simulate all STARFIT reservoirs given a catchment inflows DataFrame.

simulate_reservoir(reservoir_name, inflows, ...)

Simulate a single STARFIT reservoir over all timesteps.