DassHydro / smash

An open source, Python library interfacing the Fortran Spatially distributed Modelling and ASsimilation for Hydrology platform.
https://smash.recover.inrae.fr/
GNU General Public License v3.0
12 stars 6 forks source link

BUG/MAINT: Calculation of pr in production #336

Open nghi-truyen opened 8 hours ago

nghi-truyen commented 8 hours ago

Why not write pr = pn - ps instead of pr = pn - (hp_imd - hp) * cp? Mathematically, the second expression is incorrect because (hp_imd - hp) * cp = ps - es, not ps.

inoelloc commented 3 hours ago

La pluie est neutralisée par l'etp avant de rentrer dans la production (voir gr_interception). Donc en entrée de la fonction de production, soit pn est positif et en nul soit pn est nul et en positif. Ensuite, dans le calcul de ps et es, on va avoir tanh(pn) ou tanh(en) et vu que tanh(0) = 0, es = 0 si en = 0 et ps = 0 si pn = 0. Au final, si ps est positif, es est nul et vice versa. L'expression peut porter à confusion, on peut changer ca et mettre pr = pn - ps, on devrait avoir les memes résultats plus ou moins la précision machine.

nghi-truyen commented 2 hours ago

La pluie est neutralisée par l'etp avant de rentrer dans la production (voir gr_interception). Donc en entrée de la fonction de production, soit pn est positif et en nul soit pn est nul et en positif. Ensuite, dans le calcul de ps et es, on va avoir tanh(pn) ou tanh(en) et vu que tanh(0) = 0, es = 0 si en = 0 et ps = 0 si pn = 0. Au final, si ps est positif, es est nul et vice versa. L'expression peut porter à confusion, on peut changer ca et mettre pr = pn - ps, on devrait avoir les memes résultats plus ou moins la précision machine.

Oui oui, je m'en doute, y'aura pas de différence numériquement comme ps et es ne peuvent pas être positifs en même temps (tant mieux pour les runs !!) mais oui il faudra changer l'expression pour rendre ça plus clair. Bon on parlera de tout ça !