pywrdrb.parameters.LaggedReservoirRelease#
- class pywrdrb.parameters.LaggedReservoirRelease(model, lag, roll_mean_lag_outflow, roll_mean_lagMinus1_outflow, roll_mean_lag_spill, roll_mean_lagMinus1_spill, **kwargs)#
Computes historical release using rolling averages of outflow and spill from past timesteps.
This parameter is useful for policies or metrics that depend on past reservoir behavior, particularly where only rolling means are available (e.g., in observational datasets or model parameters). It estimates the release N timesteps ago using a simple linear reconstruction based on two rolling mean values.
- lag#
Number of timesteps to lag (i.e., N).
- Type:
int
- roll_mean_lag_outflow#
Rolling mean of outflow N timesteps ago.
- Type:
Parameter
- roll_mean_lagMinus1_outflow#
Rolling mean of outflow N-1 timesteps ago. Only used if lag > 1.
- Type:
Parameter
- roll_mean_lag_spill#
Rolling mean of spill N timesteps ago.
- Type:
Parameter
- roll_mean_lagMinus1_spill#
Rolling mean of spill N-1 timesteps ago. Only used if lag > 1.
- Type:
Parameter
- value(timestep, scenario_index)#
Calculates the reconstructed release value from lag timesteps ago.
- load(model, data)#
Loads and instantiates the parameter from model config.
- __init__(model, lag, roll_mean_lag_outflow, roll_mean_lagMinus1_outflow, roll_mean_lag_spill, roll_mean_lagMinus1_spill, **kwargs)#
Initialize a LaggedReservoirRelease parameter instance.
- Parameters:
model (pywr.core.Model) – The Pywr model object.
lag (int) – Number of timesteps to lag (must be >= 1).
roll_mean_lag_outflow (Parameter) – Rolling mean outflow for lag timesteps ago.
roll_mean_lagMinus1_outflow (Parameter or None) – Rolling mean outflow for lag - 1 timesteps ago.
roll_mean_lag_spill (Parameter) – Rolling mean spill for lag timesteps ago.
roll_mean_lagMinus1_spill (Parameter or None) – Rolling mean spill for lag - 1 timesteps ago.
**kwargs – Additional keyword arguments passed to Parameter.__init__().
Notes
If lag == 1, only the lag outflow and spill values are used.
Methods
__init__
(model, lag, roll_mean_lag_outflow, ...)Initialize a LaggedReservoirRelease parameter instance.
after
(self)before
(self)finish
(self)get_all_values
(self)get_constant_value
(self)Return a constant value.
get_double_lower_bounds
(self)get_double_upper_bounds
(self)get_double_variables
(self)get_integer_lower_bounds
(self)get_integer_upper_bounds
(self)get_integer_variables
(self)get_value
(self, ScenarioIndex scenario_index)load
(model, data)Load and configure the LaggedReservoirRelease parameter from YAML.
register
(cls)reset
(self)set_double_variables
(self, double[)set_integer_variables
(self, int[)setup
(self)unregister
(cls)value
(timestep, scenario_index)Estimate the release value lag timesteps ago.
Attributes
children
comment
str
double_size
'int'
integer_size
'int'
is_constant
is_variable
'bool'
model
name
parents
size
tags
dict