Skip to content

HydPy 6.2.0

Latest

Choose a tag to compare

@holgeralbert holgeralbert released this 23 Dec 19:02

We are pleased to release HydPy 6.2, which accelerates simulation runs through multithreading, introduces the new main model families HydPy-G and HydPy-WHMod, supports Python 3.13 and 3.14, and includes several smaller enhancements.

All these new features should be implemented without relevant breaking changes. For example, "normal" single-threaded simulations are still possible and remain the default behaviour. The only exception is that we have dropped support for Python 3.9 and 3.10.

Please note that the new submodel family HydPy-Snow is functional, but it is still not as convenient as other submodel families. We plan to completely submodularise snow processes in HydPy 7.0.

New models:

  • The new model family HydPy-G brings the ideas of the GR model series (modèle due Génie Rural) into HydPy. Among the available application models is HydPy-G-GR4, which implements the well-known, parameter-sparse lumped model GR4J.
  • The new submodel family HydPy-Snow so far provides the relatively simple application models HydPy-Snow-CemaNeige_T-Mean and HydPy-Snow-CemaNeige-T-MinMax
  • The new model family HydPy-WHMod stands out from the so-far available model collection by providing SVAT models that focus more on water balance aspects of individual sites than on simulating the discharge of entire river basins.
  • The new main model HydPy-KinW-Implicit-Euler is a very robust hydrological routing method. Its numerical stability is not restricted by the Courant condition, which makes it very efficient when applied to short routing distances or long time simulation timesteps.
  • The new submodel HydPy-WQ-Widths-Strickler serves to specify complex cross-section profiles based on width measurements. It enables distinguishing subareas actively involved in water routing from those that are not, allowing one-dimensional routing methods to approximate some two-dimensional phenomena.
  • The new main model HydPy-Dam-DB serves to simulate detention basins that actively control their release. It is the first member of the HydPy-Dam model family capable of utilising discharge information from distant observation points to enhance flood protection in river sections further downstream.
  • The new submodel HydPy-Exch-Interp transfers arbitrary information from multiple observation points to its main model and transforms it via configurable interpolation functions.

New model features:

  • The new HydPy-L model parameter BSf0 gives more flexibility in configuring direct runoff generation. This can help prevent the simulation of excessively high runoff peaks from short rainfall events during otherwise dry summer periods.
  • All HydPy-L models now allow specifying the elevation of individual response units (parameter GH) and the atmospheric temperature gradient (parameter ATG) to ease adjusting subbasin-wide average air temperatures to local terrain differences.
  • HydPy-L-DD now has a temperature-based mechanism that helps to prevent the formation of persistent "snow towers" in alpine catchments. One can enable it via the new parameters AGGH and AGSH.
  • HydPy-L-DD now has a simple glacier routine. The new parameters FEis and GSF serve to configure the transformation of snow into glacier ice and the melting of glacier ice.
  • HydPy-Dam-L-Lake, HydPy-Dam-L-RB, HydPy-Dam-L-Res, and also the new application model HydPy-Dam-L-DB now allow defining a commissioning date, before which they behave inactively.
  • Calibrating the ARMA coefficients of the routing model HydPy-ARMA-RIMO/RIDO by optimising, for example, the parameters of the translation diffusion equation is now more robust and much faster (but maybe sometimes a little less accurate).

New general features:

  • After offering additional CPU resources via the new option threads, HydPy tries to accelerate simulation runs by performing calculations in parallel. In different projects, the speedup ranged from less than 1% per additional thread (due to widely "unparallelisable" networks) to more than 100% (due to an improved processing order of "parallelisable" network parts).
  • Node instances now provide methods to plot (flow) duration curves of simulated and measured time series.
  • The new efficiency criteria functions fdc_nse and fdc_nse_log allow putting more emphasis on the statistical distribution than on the timing of individual events when calibrating or evaluating hydrological models.
  • All efficiency criteria functions now have the skip_notpositive option, which is especially useful for functions like nse_log that cannot deal with negative and zero values.
  • Function write_ncfile makes writing NetCDF time series files readable by HydPy more comfortable.
  • The different file managers (for example, the ConditionManager) now print a note if their current working directory is not explicitly defined but successfully "guessed". You can turn this off by setting printprogress to False.
  • Changing the project root directory (for example, to store a modified project version in a separate directory) now requires only a single command: pub.projectname = "new_project".
  • The "complete" selection of a project's network is now automatically created upon request by the new property complete of class Selections. This change decreases the risk of working with outdated data.
  • We added top-level update_parameter methods that should help not to forget to update the derived parameters of all relevant model instances after changing their control parameters (for example, during calibration).
  • The new calibration rule LogReplace supports optimising selected model parameters by using logarithmic transformation. CalibrationInterface provides interfaces that allow users to define custom transformation rules.
  • Reading time series from files that cover only a part of the whole considered period previously generally resulted in a loss of data for the uncovered parts. This overwriting of already available data with nan values can now be turned off with the reset option.