pywr.nodes.SeasonalVirtualStorage
- class pywr.nodes.SeasonalVirtualStorage(*args, **kwargs)
A virtual storage node that operates only for a specified period within a year.
This node is most useful for representing licences that are only enforced during specified periods. The reset_day and reset_month parameters indicate when the node starts operating and the end_day and end_month when it stops operating. For the period when the node is not operating, the volume of the node remains unchanged and the node does not apply any constraints to the model.
The end_day and end_month can represent a date earlier in the year that the reset_day and and reset_month. This situation represents a licence that operates across a year boundary. For example, one that is active between October and March and not active between April and September.
- Parameters:
- reset_dayint
The day of the month (0-31) when the node starts operating and its volume is reset to the initial value or maximum volume.
- reset_monthint
The month of the year (0-12) when the node starts operating and its volume is reset to the initial value or maximum volume.
- reset_to_initial_volumebool
Reset the volume to the initial volume instead of maximum volume each year (default is False).
- end_dayint
The day of the month (0-31) when the node stops operating.
- end_monthint
The month of the year (0-12) when the node stops operating.
- __init__(*args, **kwargs)
Methods
__init__(*args, **kwargs)after(self, Timestep ts, double[)before(self, Timestep ts)Called at the beginning of the timestep
check(self)commit(self, int scenario_index, double value)Called once for each route the node is a member of
commit_all(self, double[)Called once for each route the node is a member of
finalise_load()Finish loading a node by converting parameter name references to instance references.
finish(self)get_all_cost(self, double[)get_all_max_volume(self, double[)get_all_min_volume(self, double[)get_area(self, ScenarioIndex scenario_index)get_cost(self, ScenarioIndex scenario_index)Get the cost per unit flow at a given timestep
get_current_pc(self, ...)Return the current proportion of full of the storage node.
get_initial_pc(self)Returns the initial volume as a proportion.
get_initial_volume(self)Returns the absolute initial volume.
get_level(self, ScenarioIndex scenario_index)get_max_volume(self, ...)get_min_volume(self, ...)pre_load(model, data)Create a node instance from data.
reset(self)setup(self, model)Called before the first run of the model
Attributes
activeactive: 'bool'
allow_isolatedA property to flag whether this Node can be unconnected in a network.
areacommentcomment: str
component_attrscomponentsGenerator that returns all of the Components attached to the Node
costThe cost per unit increased in volume stored
current_pcCurrent proportion full.
domainfactorsflowTotal flow via this node in the current timestep
fully_qualified_namehas_fixed_costReturns true if cost is not a Parameter.
initial_volumeinitial_volume_pclevelmax_volumemin_volumemodelThe recorder for the node, e.g. a NumpyArrayRecorder.
nameName of the node.
nodesparentThe parent Node/Storage of this object.
prev_flowTotal flow via this node in the previous timestep
recordersReturns a list of pywr.recorders.Recorder objects attached to this node.
virtualvirtual: 'bool'
volume