Reservoir with Pump Model¶
- class morl4water.core.models.reservoir_with_pump.ReservoirWithPump(name: str, max_capacity: float, max_action: float, objective_function, integration_timestep_size: relativedelta, evap_rates: list[float], evap_rates_pump: list[float], evap_rates_timestep_size: relativedelta, storage_to_minmax_rel: list[list[float]], storage_to_level_rel: list[list[float]], storage_to_surface_rel: list[list[float]], storage_to_surface_rel_pump: list[list[float]], storage_to_level_rel_pump: list[list[float]], pumping_rules: Callable, inflows_pump: list[float] = None, objective_name: str = '', stored_water_reservoir: float = 0, stored_water_pump: float = 0, observation_space=Box(0.0, 1.0, (1,), float32), action_space=Box(0.0, 1.0, (1,), float32), spillage: float = 0)¶
Bases:
ControlledFacility
A class used to represent reservoirs with a pump of the problem. The pump can pump the water in and out of the reservoir as well as store the water
- name_reservoir¶
Lowercase non-spaced name of the reservoir
- Type:
str
- name_pump¶
Lowercase non-spaced name of the pumping station
- Type:
str
- storage_vector¶
m3 A vector that holds the volume of the water in the reservoir throughout the simulation horizon
- Type:
np.array (1xH)
- level_vector¶
m A vector that holds the elevation of the water in the reservoir throughout the simulation horizon
- Type:
np.array (1xH)
- release_vector¶
m3/s A vector that holds the actual average release per month from the reservoir throughout the simulation horizon
- Type:
np.array (1xH)
- evap_rates¶
cm Monthly evaporation rates of the reservoir
- Type:
np.array (1x12)
- determine_info()¶
Return dictionary with parameters of the reservoir.
- storage_to_level(h=float)¶
Returns the level(height) based on volume.
- level_to_storage(s=float)¶
Returns the volume based on level(height).
- level_to_surface(h=float)¶
Returns the surface area based on level.
- determine_outflow(action: float)¶
Returns average monthly water release.
- determine_info() dict ¶
Returns information about the reservoir.
- determine_observation() float ¶
- determine_outflow(actions: array) list[float] ¶
- determine_reward() float ¶
- determine_time_idx() int ¶
- is_terminated() bool ¶
- level_to_minmax(h) tuple[ndarray, ndarray] ¶
- static modified_interp(x: float, xp: float, fp: float, left=None, right=None) float ¶
- reset() None ¶
- storage_to_level(s: float) float ¶
- storage_to_level_pump(s: float) float ¶
- storage_to_minmax(s) tuple[ndarray, ndarray] ¶
- storage_to_surface(s: float) float ¶
- storage_to_surface_pump(s: float) float ¶