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