-
Notifications
You must be signed in to change notification settings - Fork 18
Description
So far, HydPy implements only a very simple Muskingum-like routing approach: hstream_v1. It follows HBV96 and comes with two parameters, Lag and Damp, which describe the translation and diffusion of flood waves, respectively. We want to add a more advanced alternative and decided on a variant of the Muskingum-Cunge method modified by Todini (MCT).
We want to introduce a new model family for it, probably named HydPy-Musk, for now only including hstream_v1 and the new MCT model. We can add other routing approaches similar to the Muskingum method later.
We decided against a general "routing model family" due to the different nature of approaches already implemented. arma_v1 is an (extended) Unit-Hydrograph method and lstream_v001 is a set of ordinary differential equations that need to be solved numerically. Even when putting them all in a single model family, there are few functionalities and concepts they could share. A short description for HydPy-Musk could be "routing methods that rely on non-adaptive finite difference approximations".
When moving hstream_v1, we need to rename it. In current terminology, the new name would be musk_v001. However, we tend to make HydPy-Musk the first model family with more self-explaining model names. Therefore, we need to clarify its scope more carefully.
hstream_v1 applies the standard Muskingum formula with fixed coefficients on several channel segments. The calculation of these three coefficients happens during model initialisation based on the current values of Lag and Damp. The standard Muskingum method does not divide a channel into segments and uses the parameters x (related to the diffusion) and k (related to the translation time) for calculating the coefficients.
I suggest the following: we reformulate hstream_v1 with two new parameters. The first one is NmbSegments, which roughly corresponds to the old parameter Lag. The second parameter is a flexible "meta-parameter" that allows defining the coefficients of the working equation both in the standard Muskingum and the HBV96 way.
A first draft on how to configure the adjusted model according to the standard Muskingum method:
nmbseqments(1)
metaparameter(x=0.2, k=1000.0)A first draft on how to configure the adjusted model according to the HBV96:
nmbseqments(2)
metaparameter(damp=0.5)MetaParameter is not an overly helpful name. Maybe someone else can think of something more concrete?
In contrast to Muskingum-Cunge, the "classic" Muskingum method is time-invariant. Maybe we could include this information in the new model name. My first ideas:
- musk_time_invariant
- musk_invariant
- musk_fixed_coeffs
Or, maybe a less academic name:
- musk_classic
- musk_simple
- musk_base
Again, better ideas are welcome.