Model names in HydPy 6.0
tyralla opened this issue · 50 comments
In HydPy 5, model names are not overly consistent. We aim to improve this in HydPy 6.0. The following table lists the current and future names. The future names are still open for discussion. Hence, I will edit the table until we agree on all names. The discussion can take place as additional comments, as usual.
HydPy 5.0 source code |
HydPy 6.0 source code |
HydPy 6.0 documentation |
---|---|---|
arma_v1 | arma_rimorido | HydPy-ARMA-RIMO/RIDO (nonlinear routing by multiple ARMA processes) |
conv_v001 | conv_nn | HydPy-Conv-NN (nearest neighbour interpolation) |
conv_v002 | conv_idw | HydPy-Conv-IDW (inverse distance weighted interpolation) |
conv_v003 | conv_idwed | HydPy-Conv-IDWD (inverse distance weighted interpolation with external drift) |
dam_v001 | ? | ? |
dam_v002 | ? | ? |
dam_v003 | ? | ? |
dam_v004 | ? | ? |
dam_v005 | ? | ? |
dam_v006 | dam_llake | HydPy-Dam-L-Lake (controlled lake model adopted from LARSIM) |
dam_v007 | dam_lretention | HydPy-Dam-L-RB (retention basin model adopted from LARSIM) |
dam_v008 | dam_lreservoir | HydPy-Dam-L-RB (reservoir model adopted from LARSIM) |
dam_pump | HydPy-Dam-Pump (pumping station model) | |
dam_sluice | HydPy-Dam-Sluice (sluice model) | |
dam_pump_sluice | HydPy-Dam-Pump-Sluice (pumping station with sluice model) | |
dummy_v1 | dummy_n2n | HydPy-Dummy-N2D (dummy model passing data from inlet to outlet nodes) |
dummy_interceptedwater | HydPy-Dummy-InterceptedWater (dummy model supplying main models with intercepted water states) | |
dummy_soilwater | HydPy-Dummy-SoilWater (dummy model supplying main models with soil water states) | |
dummy_snowcover | HydPy-Dummy-SnowCover (dummy model supplying main models with snow cover states) | |
dummy_snowycanopy | HydPy-Dummy-SnowyCanopy (dummy model supplying main models with snow cover degrees in canopies) | |
dummy_snowalbedo | HydPy-Dummy-SnowAlbedo (dummy model supplying main models with snow albedo states) | |
evap_v001 | evap_fao56 | HydPy-Evap-FAO-56 (FAO-56 Penman-Monteith reference evapotranspiration) |
evap_tw2002 | HydPy-Evap-TW-2002 (Turc-Wendling reference evapotranspiration, 2002) | |
evap_io | HydPy-Evap-IO (external data) | |
evap_m | HydPy-Evap-LC (month-based adjustment of reference evapotranspiration) | |
evap_mlc | HydPy-Evap-LC (month-based land cover adjustment of reference evapotranspiration) | |
evap_pet_hbv96 | HydPy-Evap-HBV96 (potential evapotranspiration after HBV96) | |
evap_aet_hbv96 | HydPy-Evap-HBV96 (actual evapotranspiration after HBV96) | |
evap_minhas | HydPy-Evap-Minhas (actual evapotranspiration based on the Minhas equation) | |
evap_morsim | HydPy-Evap-MORSIM (actual evapotranspiration based on the LARSIM implementation of MORECS) | |
exch_v001 | exch_hweir | HydPy-Exch-Weir-HBV96 (weir model adopted from IHMS-HBV96) |
ga_garto | HydPy-GA-GARTO (Green-Ampt / Talbot-Ogden infiltration with redistribution) | |
hland_v1 | hland_96 | HydPy-H-HBV96 (adoption of SMHI-IHMS-HBV96) |
hland_v2 | (obsolete after extracting the unit hydrograph / linear storage cascade) | |
hland_v3 | hland_96p | HydPy-H-HBV96-PREVAH (fusion of SMHI-IHMS-HBV96 and PREVAH) |
hland_v4 | hland_96c | HydPy-H-HBV96-COSERO (fusion of SMHI-IHMS-HBV96 and COSERO) |
lland_v1 | lland_dd | HydPy-L-DD (adoption of LARSIM with degree day-based snow) |
lland_v2 | (obsolete after extracting Turc-Wendling / reading reference evapotranspiration) | |
lland_v3 | lland_knauf | HydPy-L-Knauf (adoption of LARSIM with Knauf-based snow modelling) |
lland_v4 | lland_knauf_inzp | HydPy-L-Knauf-Inzp (adoption of LARSIM with Knauf-based snow modelling including snow interception) |
lstream_v001 | ? | ? |
lstream_v002 | ? | ? |
llake_v1 | (can be removed, replaced by dam_v006 for a long time now) | |
meteo_v001 | meteo_fao56glob | HydPy-Meteo_FAO56-Glob (global radiation estimation adopted from FAO56) |
meteo_v002 | meteo_fao56sd | HydPy-Meteo_FAO56-SD (sunshine duration estimation adopted from FAO56) |
meteo_v003 | meteo_lglob | HydPy-Meteo_L-Glob (global radiation estimation adopted from LARSIM) |
meteo_v004 | meteo_lsd | HydPy-Meteo_FAO56-SD (sunshine duration estimation adopted from LARSIM) |
meteo_precip_io | HydPy-Meteo_Precip-IO (external precipitation data) | |
meteo_temp_io | HydPy-Meteo_Temp-IO (external temperature data) | |
musk_classic | musk_classic | HydPy-Musk-Classic (classic Muskingum routing, compatible with SMHI-IHMS-HBV96) |
musk_mct | musk_mct | HydPy-Musk-MCT (Muskingum-Cunge-Todini routing) |
snow_cn | Cema-Neige model | |
snow_cnhyst | Cema-Neige model with hysteresis of snow melt / snow accumulation | |
sw1d_lias | HydPy-SW1D-LIAS (local inertial approximation of the shallow water equations after Almeida 2012) | |
test_v1 | test_stiff0d | HydPy-Test-Stiff-0D (test model for stiff ODEs and scalar sequences) |
test_v2 | test_discontinous | HydPy-Test-Discontinuous (test model for discontinuous ODEs) |
test_v3 | test_stiff1d | HydPy-Test-Stiff-1D (test model for stiff ODEs and 1-dimensional sequences) |
wland_v001 | wland_orig | HydPy-W- (semi-distributed adoption of the original WALRUS) |
wland_v002 | wland_gd | HydPy-W- (semi-distributed adoption of WALRUS with increased groundwater dynamics) |
I would say we have three types of application model names:
- The short one. We use it in Python code and the technical part of the online documentation (as a link). It usually consists (or should consist) of the base model's name and a concise description, separated by an underscore. Example:
musk_mct
. - The long one. We use it for introducing a new model, e.g. in the title of the model's documentation. It consists of the literal "HydPy", the base model's name, and a short description, all separated by dashes. Also, we append a more exhaustive explanation in brackets that should be even helpful when encountering the model for the first time. Example: HydPy-Musk-MCT (Muskingum-Cunge-Todini).
- The intermediate one, for when the short name appears too technical and the long one too long. Example: Musk-MCT.
If find naming the hland...
, lland...
, and wland...
models particularly difficult. For these models, modularisation allows reducing the number of different application models stemming from the same base model. Ideally, the main models would be flexible enough and the set of submodels complete enough so that only one child model would be necessary in each case...
I still do not know if we will keep them as independent models or merge them into other Evap models, but I added preliminary names for evap_lc
and evap_mlc
.
Same for evap_m
.
I nearly finished evap_hbv96
and suggest the full name "HydPy-Evap-HBV96 (potential evaporation after HBV96"). However, for hland_v1
, I suggested hland_96
. A little inconsistent...
The main models can be sub-submodels idea seems to be a good one. Hence, we really need something like a precip_io
model. However, introducing a new model family named precip
does not seem right, especially if precip_io
would stay the only application model ever. So, adding it to the meteo
family seems preferable. My suggestion for the new application model's name thus is meteo_precip_io
. (meteo_p_io
could be an alternative, but "p" could also stand for pressure).
meteo_precip_io
would be the first application model name with two underscores.
A added meteo_temp_io
.
I removed evap_lc
, which is currently not required.
I added evap_aet_hbv96
, which still requires some documentation updates but seems to work fine now.
I changed the name dummy_v1
to dummy_n2n
.
I added dummy_ic
, dummy_sw
, and dummy_sc
to the table. These models will now serve for testing evap_aet_hbv96
independently from a main model like hland_v1
and later for playing around with different approaches to calculate actual evapotranspiration and other properties to be calculated by submodels.
Adding them to the test
model family is also an option. However, the test
models are for model developers and provide actual mathematics, so I think the dummy
model family fits slightly better.
I added evap_minhas
to the table (which should be in the master branch by today). This model is factored out from lland_v1
and applies an equation introduced by Minhas et al. (1974) to calculate potential evapotranspiration to soil evapotranspiration. Initially, we took this approach from LARSIM-ME, but as there is nothing LARSIM-specific here, I would prefer to let the name refer to the original authors. Like for evap_tw2002
.
I added evap_morsim
: HydPy-Evap-MORSIM (actual evapotranspiration based on the LARSIM implementation of MORECS).
Consider this name as a very first suggestion. I tried to come up with a name that combines MORECS and LARSIM to clarify that there are some deviations from the original MORECS methodology that follow the LARSIM model.
Our (successful!) extraction of the evapotranspiration calculations from lland
simplifies the naming problem. So, lland_dd
(for day degree) could replace lland_v1
and lland_knauf
could replace lland_v3
.
I added the dummy
models dummy_snowycanopy
and dummy_snowalbedo
and gave the others more descriptive names (evap_interceptedwater
, evap_soilwater
, evap_snowcover
). The names are very long, but this should likely bother no one because these models will probably be only used for testing purposes and are of little relevance to model users.
I added (preliminary versions) of dam_pump, dam_sluice, and dam_pump_sluice to the master branch and updated the above table.