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