casadoj / lisflood-reservoirs

An analysis of possible improvements in the reservoir representation in the hydrological model LISFLOOD Open Source.
GNU General Public License v3.0
0 stars 0 forks source link

Reservoir area simulation #3

Open casadoj opened 4 months ago

casadoj commented 4 months ago

Add to the class Reservoir a method that estimates reservoir surface area from storage as used in Shrestha et al. (2024).

The interest would be to compare the results against observations from satellite imagery. Reservoir area is also important to better estimate gains and losses caused by direct precipitation and evaporation, respectively.

To estimate reservoir area from the simulated volume we can approximate the reservoir shape to a triangular pyramid (Liebe 2005) as done by Shrestha (2024), Sadki (2023), Shin (2019). Under this assumption, there is a shape coefficient $\alpha$ that represents at the same time a relation between the current reservoir area and its maximum area, and the current reservoir storage and its total capacity:

$$\alpha = \left( \frac{a}{Area} \right) ^{1/2} = \left( \frac{v}{Capacity} \right)^{1/3}$$

where $a$ is the estimated reservoir area and $v$ the modelled reservoir storage. From that equation we can estimate the current water area $a$ (the only unknown):

$$a = Area \cdot \alpha^2 = Area \cdot \left( \frac{v}{Capacity} \right)^{2/3}$$

Therefore, we need three attributes that can be extracted from GRanD:

casadoj commented 1 month ago

I've created the method estimate_area() in Basemodel.

Another option would have been to add another attribute to Basemodel ("Atot" for the maximum reservoir area) and include the estimation in either timestep() or simulate() methods.