pywr.domains package¶
Submodules¶
pywr.domains.river module¶
-
class
pywr.domains.river.
Catchment
(*args, **kwargs)¶ Bases:
pywr.domains.river.RiverDomainMixin
,pywr.nodes.Input
A hydrological catchment, supplying water to the river network
-
get_flow
(timestep)¶ flow is ensured that both min_flow and max_flow are the same.
-
classmethod
load
(data, model)¶
-
-
class
pywr.domains.river.
Discharge
(*args, **kwargs)¶ Bases:
pywr.domains.river.Catchment
An inline discharge to the river network
This node is similar to a catchment, but sits inline to the river network, rather than at the head of the river.
-
class
pywr.domains.river.
Reservoir
(model, *args, **kwargs)¶ Bases:
pywr.domains.river.RiverDomainMixin
,pywr.nodes.Storage
A reservoir node with control curve.
The Reservoir is a subclass of Storage with additional functionality to provide a simple control curve. The Reservoir has above_curve_cost when it is above its curve and the user defined cost when it is below. Typically the costs are negative to represent a benefit of filling the reservoir when it is below its curve.
-
class
pywr.domains.river.
River
(*args, **kwargs)¶ Bases:
pywr.domains.river.RiverDomainMixin
,pywr.nodes.Link
A node in the river network
This node may have multiple upstream nodes (i.e. a confluence) but only one downstream node.
-
class
pywr.domains.river.
RiverDomainMixin
(*args, **kwargs)¶ Bases:
object
-
class
pywr.domains.river.
RiverGauge
(*args, **kwargs)¶ Bases:
pywr.domains.river.RiverDomainMixin
,pywr.nodes.PiecewiseLink
A river gauging station, with a minimum residual flow (MRF)
-
classmethod
load
(data, model)¶
-
mrf
¶
-
mrf_cost
¶
-
classmethod
-
class
pywr.domains.river.
RiverSplit
(*args, **kwargs)¶ Bases:
pywr.nodes.MultiSplitLink
A split in the river network
- RiverSplit is a specialised version of pywr.nodes.MultiSplitLink with a more convenient init method.
- It is intended for a simple case of where fixed ratio of flow is required to be distributed to multiple downstream routes.
Parameters: - factors : iterable of floats
The factors to force on the additional splits. Number of extra_slot is assumed to be one less than the length of factors (as per pywr.nodes.MultiSplitLink documentation).
- slot_names : iterable
- The identifiers to refer to the slots when connect from this Node. Length must be one more than
the number of extra slots required.
See also
pywr.nodes.MultiSplitLink
-
class
pywr.domains.river.
RiverSplitWithGauge
(model, name, mrf=0.0, cost=0.0, mrf_cost=0.0, **kwargs)¶ Bases:
pywr.domains.river.RiverSplit
A split in the river network with a minimum residual flow
- As per RiverSplit but by default creates another route in the underlying object
- to model a MRF. This route is such that the MRF is not part of forced ratios. The intent of this object is to model the case where a proportion of flow can be abstracted above the MRF (e.g. 90% of flow above MRF).
Parameters: - mrf : float
The minimum residual flow (MRF) at the gauge
- mrf_cost : float
The cost of the route via the MRF
- cost : float
The cost of the other (unconstrained) route
- factors : iterable of floats
The factors to force on the additional splits. Number of extra_slot is assumed to be one less than the length of factors (as per MultiSplitLink documentation).
- slot_names : iterable
- The identifiers to refer to the slots when connect from this Node. Length must be one more than
the number of extra slots required.
-
classmethod
load
(data, model)¶