pywr / hydra-pywr

GNU General Public License v3.0
1 stars 2 forks source link

Make the 'Reservoir' node more flexible #12

Closed knoxsp closed 2 months ago

knoxsp commented 3 years ago

In order to both allow the Reservoir node to remain in HWI, but to also allow it to satisfy the requirements of normal modelling practices, it needs to be extended.

We propose to do the following:

1: Split the 'weather' attribute into 'rainfall' and 'evaporation' 2: Allow rainfall and evaporation to be defined as data frames, parameters etc, instead of just monthly inputs 3: Allow the costs (allocation penalties) of the evaporation node to be specified -- this requires updating the reservoir node code -- by adding a new attribute called 'evaporation allocation penalty' or similar. 4: Make a new template, which has the weather attribute removed, and the rainfall and evaporation added. 5: Call that template something sensible.

In addition, 'bathymetry' needs to be split into 'area' and 'level' for the same purposes of allowing more flexibility in the types of input, specifically the 'volumetric interpolated parameter' (or whatever it's called)

matrosoe commented 3 years ago

Level and area would need to be an "InterpolatedVolumeParameter", as seen below.

{"type": "InterpolatedVolumeParameter", "node": "Grafham", "volumes": [0, 6, 35, 133, 389, 854, 1569, 2627, 4122, 6123, 8586, 11502, 14894, 18791, 23128, 27827, 32813, 38082, 43622, 49426, 55494], "values": [0, 0.012, 0.056, 0.159, 0.354, 0.576, 0.858, 1.267, 1.746, 2.237, 2.675, 3.143, 3.653, 4.124, 4.542, 4.846, 5.129, 5.407, 5.673, 5.933, 6.25], "kind": "linear"}