pywrdrb.parameters.NYCFloodRelease#

class pywrdrb.parameters.NYCFloodRelease(model, node, drought_level_reservoir, level1c, volume_reservoir, max_volume_reservoir, weekly_rolling_mean_flow_reservoir, max_release_reservoir, mrf_target_individual_reservoir, **kwargs)#

Computes excess flood control release for NYC reservoirs based on storage thresholds.

If the drought level is 1a or 1b, this parameter calculates the additional volume that must be released to bring storage back to the 1b/1c boundary over a 7-day period, following the rules outlined in the FFMP (Flood and Drought Operating Plan) guidance.

node#

Node representing the reservoir outlet.

Type:

pywr.Node

drought_level_reservoir#

Parameter indicating the current drought level of the reservoir.

Type:

pywr.Parameter

level1c#

Threshold parameter for the 1b/1c storage boundary.

Type:

pywr.Parameter

volume_reservoir#

Current volume of water stored in the reservoir.

Type:

pywr.Parameter

max_volume_reservoir#

Maximum physical storage capacity of the reservoir.

Type:

pywr.Parameter

weekly_rolling_mean_flow_reservoir#

Weekly average of inflows to the reservoir.

Type:

pywr.Parameter

max_release_reservoir#

Maximum allowable flood release for the reservoir.

Type:

pywr.Parameter

mrf_target_individual_reservoir#

Baseline release target for the reservoir.

Type:

pywr.Parameter

value(timestep, scenario_index)#

Returns the flood release volume for a given scenario and timestep.

load(model, data)#

Class method for constructing the parameter from model config data.

Notes

For drought levels below 2 (i.e., 1a or 1b), excess storage is released over 7 days, accounting for recent inflows and baseline release requirements.

__init__(model, node, drought_level_reservoir, level1c, volume_reservoir, max_volume_reservoir, weekly_rolling_mean_flow_reservoir, max_release_reservoir, mrf_target_individual_reservoir, **kwargs)#

Initialize NYCFloodRelease parameter.

Parameters:
  • model (pywr.Model) – The Pywr model instance.

  • node (pywr.Node) – Node associated with the parameter.

  • drought_level_reservoir (pywr.Parameter) – Parameter indicating the drought level at the reservoir.

  • level1c (pywr.Parameter) – Storage boundary separating level 1b and 1c.

  • volume_reservoir (pywr.Parameter) – Current volume in the reservoir.

  • max_volume_reservoir (pywr.Parameter) – Full capacity of the reservoir.

  • weekly_rolling_mean_flow_reservoir (pywr.Parameter) – Recent 7-day average of reservoir inflow.

  • max_release_reservoir (pywr.Parameter) – Maximum release capacity for flood control.

  • mrf_target_individual_reservoir (pywr.Parameter) – Minimum release target (baseline MRF) for the reservoir.

  • **kwargs – Additional keyword arguments passed to the base Parameter class.

Methods

__init__(model, node, ...)

Initialize NYCFloodRelease parameter.

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 NYCFloodRelease from model configuration dictionary.

register(cls)

reset(self)

set_double_variables(self, double[)

set_integer_variables(self, int[)

setup(self)

unregister(cls)

value(timestep, scenario_index)

Calculate the flood control release required to reduce reservoir storage.

Attributes

children

comment

str

double_size

'int'

integer_size

'int'

is_constant

is_variable

'bool'

model

name

parents

size

tags

dict