A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of Ribasim

Ribasim - v2025.3.0

The only breaking change in this release is to disallow connecting a single FlowBoundary to multiple Basins.
There are large improvements in the ability to visualize results on the map in QGIS.
We also welcome the Junction node to the family, which will help laying out networks in a recognizable manner.

Added

  • Add spatio-temporal results layers to QGIS. #2208
  • Add topological (straight line) link view toggle to QGIS. #2208
  • Added Junction node type. #2175
  • Write results and log bottlenecks also on an interrupt or crash. #2191 #2200
  • Log computation time and save it to solver_stats.arrow. #2209
  • Experimental support for writing the model network and results into files used by Delft-FEWS, model.to_fews. #2161
  • Document results/concentration.arrow. #2165

Changed

  • Allow max 1 outflow neighbour for FlowBoundary. #2192
  • Automatic differentiation is enabled by default again, autodiff = true, leading to better performance. #2137 #2183

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2025.2.0...v2025.3.0

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account 12 days ago

Ribasim - v2025.2.0

In this release, time is of the essence. We now support dynamic Pumps and Outlets, as well as DiscreteControl thresholds.
For each node, timeseries can be marked as cyclic, such that yearly recurring timeseries can be easily used without repetition.
We also developed tools to compare model input in Python.

The most visible change is the renaming of Edge to Link. Like always, existing models are migrated to the new version by reading them with Ribasim Python, and writing out the updated version. For now in Python model.edge will continue to work to ease the transition.

Added

  • Check Model equality in Python. #2057
  • Compare two models in Python. #2080
  • Support cyclic input timeseries. #2081 #2102
  • Time dependent greater_than thresholds in DiscreteControl. #2079
  • Validation error on connector nodes having the same from and to Basin. #2112
  • Support time dependent Pump and Outlet tables. #2110

Changed

  • Edges are now called links. #2023
  • All geometries are coerced to 2D. #2111

Fixed

  • Faster initialization of large tables. #2026
  • Declare incompatibility with Pandera v0.23+. #2120
  • Decrease the smoothing around Δh = 0 in ManningResistance. #2136

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2025.1.0...v2025.2.0

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account about 2 months ago

Ribasim - v2025.1.0

The first release of 2025 makes the Ribasim core more robust and stable, and speeds up
initialization for large models. The biggest new feature is the experimental support for
calculating tracers in Ribasim directly, which will hopefully make it easier to track where
the water resources are heading.

Added

Removed

  • Drop Python 3.10 support. #2012

Changed

  • Allocation: optimize per source. #1927
  • The Edge table no longer supports subnetwork_id; this is automatically inferred. #1956

Fixed

  • ManningResistance is more stable around Δh=0. #1896
  • Fixes to Delwaq model generation. #1903 #1917 #1948
  • Add step limiter to avoid negative flows or too large flows. #1911 #1912
  • Fix README.md in builds. #1935 #1938
  • Speed up initialization. #1977
  • Automatically name index in Python. #1974
  • Table sorting related fixes. #2003

What's Changed

New Contributors

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.11.0...v2025.1.0

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account 3 months ago

Ribasim - v2024.11.0

This major new release contains many improvements. A new formulation allows much smaller water balance errors, which is combined with several performance improvements. Ribasim Python does more validation that was previously only done in the core. The Ribasim QGIS plugin now sets the relations between tables for easier model inspection. Adding min_upstream_level and max_downstream_level to Pump and Outlet means DiscreteControl is often no longer needed.

The most significant breaking change is making the node_id and edge_id the index of the Node and Edge table; these need to be globally unique.

Starting from this release Ribasim is labeled as beta software. Since development is currently mainly driven by applications in the Dutch water system, we expect that addition work needs to be done for general use outside the Netherlands.

For coupled simulation with MODFLOW and/or MetaSWAP, this release is part of the iMOD Coupler, specifically release v2024.4.0

Added

  • Support discrete control based on an external concentration condition. #1660
  • Add results/solver_stats.arrow with solver statistics over time. #1677
  • Add icon to ribasim.exe on Windows. #1712
  • Save QGIS styling in the model database. #1713
  • Add Delwaq coupling guide. #1619
  • Solver speedup due to backtracking relaxation. #1761
  • Reject adding a duplicate edge in Python. #1719
  • Support transient UserDemand return factor. #1727
  • Document the interpolation of input data. #1720
  • Automate Jacobian sparsity detection. #1606
  • Support specifying the edge_id as model.edge.add(a, b, edge_id=5). #1737
  • Use https://ribasim.org/ to host our documentation. #1736
  • Validate geometry types in Python. #1760
  • Add relationships between tables in QGIS. #1755
  • Support migrating from older Ribasim versions in Python. #1764
  • Add quick start guide to docs. #1787
  • Add min_upstream_level and max_downstream_level to Pump and Outlet. #1792
  • Add max_downstream_level to TabulatedRatingCurve. #1795
  • Validate edge connections in Python. #1765
  • Add low storage reduction factor to ManningResistance. #1796

Changed

  • Refactor of the core to ensure smaller water balance errors. #1819
  • Make node_id globally unique. #1717
  • Make the Node ID the index of the Node table, and Edge ID for Edge. #1737
  • Make more Python functions private. #1702
  • Put the contents of the CLI zips in a folder. #1722
  • Changed water balance error definition. #1767
  • Disallow missing priority parameter when using allocation. #1745
  • Rename Outlet's min_crest_level to min_upstream_level. #1788
  • Only allow flow under gravity in TabulatedRatingCurve. #1795
  • Use dtype_backend="pyarrow" for Pandas DataFrames. #1781

Fixed

  • Remove oscillations in ManningResistance. #1750
  • Fix GeoPandas CRS warning. #1810

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.10.0...v2024.11.0

Natural Resources - Water Supply and Quality - Julia
Published by visr 7 months ago

Ribasim - v2024.10.0

For this release we said goodbye to the problematic FractionalFlow node, but welcome the ContinuousControl as a long requested feature.

Added

  • Control: Add ContinuousControl node type. #1602
  • Control: Support listening to flow through connector nodes. #1594
  • Validate that TabulatedRatingCurve levels are above Basin bottom. #1607
  • Validate that Outlet crest levels are above Basin bottom. #1607
  • Always show convergence bottlenecks. #1636
  • Docstrings for Ribasim Python. #1643
  • Allocate to UserDemand from directly connected Basin if possible. #1581
  • Add basin_state.arrow results. #1626
  • Also write stacktraces to ribasim.log. #1653

Changed

  • Require QGIS 3.34 (LTR) or newer for Ribasim QGIS plugin.

Fixed

  • Compatibility with latest NumPy, Pandera and PyArrow releases. #1618
  • LevelDemand can now be without min_level or max_level. #1629

Removed

  • Removed unused urban runoff variable from Basin. #1611
  • Removed unneeded static table from Terminal. #1624
  • Removed FractionalFlow node. #1616

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.9.0...v2024.10.0

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account 9 months ago

Ribasim - v2024.9.0

Added

  • Support for concentration state and time for Delwaq coupling.
  • Show exact commit on ribasim --version if it is not a release. #1479

Changed

  • Optimized performance.
  • Documentation has been overhauled to be more user-friendly.
  • Stricter TabulatedRatingCurve validation. #1469
  • Stricter Basin / profile validation. #1486
  • Allocation objective function now gives equal ratios during shortage. #1386

Fixed

  • Don't require unique node IDs. #1513

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.8.0...v2024.9.0

New Contributors

Natural Resources - Water Supply and Quality - Julia
Published by Jingru923 10 months ago

Ribasim - v2024.8.0

Highlights

  • Performance improvements have been a focus of this release, giving up to 10x faster runs. #1433, #1436, #1438, #1448, #1457
  • Users of the QGIS plugin need to remove the old version to avoid two copies due to #1453.
  • If the model does not converge and the used algorithm supports it, we log which Basins don't converge. #1440
  • The CLI exe is now always in the root of the zip and makes use of the libribasim shared library. #1415
  • If negative storages unadvertently happen, we now throw an error. #1425
  • There is more validation on the edges. #1434

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.7.0...v2024.8.0

Natural Resources - Water Supply and Quality - Julia
Published by Jingru923 12 months ago

Ribasim - v2024.7.0

DiscreteControl has been changed. We write all water balance terms to results. And crs is a new required keyword in the TOML file. See the linked pull requests for more information.

Breaking

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.6.1...v2024.7.0

Natural Resources - Water Supply and Quality - Julia
Published by Hofer-Julian about 1 year ago

Ribasim - v2024.6.1

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.6.0...v2024.6.1

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account about 1 year ago

Ribasim - v2024.6.0

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.5.0...v2024.6.0

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account about 1 year ago

Ribasim - v2024.5.0

The biggest breaking change of this release is the refactoring of the Ribasim Python API.
You can find its usage in the examples.
The same examples with the old API can be found in this PDF.

Breaking

Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.4.0...v2024.5.1

Natural Resources - Water Supply and Quality - Julia
Published by deltares-service-account about 1 year ago

Ribasim - v2024.4.0

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.3.0...v2024.4.0

Natural Resources - Water Supply and Quality - Julia
Published by visr about 1 year ago

Ribasim - v2024.3.0

For allocation we added a new LevelDemand node, and we now support a 'Basin / area' table to put polygons. The flow results now represent a mean flow from the timestamp until the next.

There were a number of breaking changes. See the associated pull request for upgrade information. Some were aimed at making the configuration options simpler. To navigate these changes better it helps to know what Ribasim version a model is made for, so we add ribasim_version as a required TOML key. The output files are also tagged with the version of the CLI that produced them. Adding extra columns with a meta_ prefix is still possible, but the prefix is no longer applied automatically to prevent accidental usage when a column name is not correct.

Breaking

Changed

Added

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.2.0...v2024.3.0

What's Changed

Natural Resources - Water Supply and Quality - Julia
Published by visr about 1 year ago

Ribasim - v2024.2.0

Added

  • Allow missing 'Basin / time' data by @Huite in #1028
  • Also allow Missing in basin.static by @Huite in #1079
  • Support main allocation network by @SouthEndMusic in #1006
  • Save allocation flows by @SouthEndMusic in #1012
  • Add max_flow_rate to LinearResistance by @visr in #1100

Changed

  • Move version from YYYY.0M.MICRO to YYYY.MINOR.MICRO by @Hofer-Julian in #1089

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.01.1...v2024.2.0

What's Changed

Natural Resources - Water Supply and Quality - Julia
Published by teamcity-deltares about 1 year ago

Ribasim - v2024.01.1

What's Changed

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2024.01.0...v2024.01.1

Natural Resources - Water Supply and Quality - Julia
Published by teamcity-deltares about 1 year ago

Ribasim - v2024.01.0

Added

  • Add flow cost (#886)
  • Don't require consecutive Node IDs (#885)
  • Add validation rules in docs (#896)
  • Allocation fractional flow constraints (#854)
  • Allocation example (#901)
  • Remove QGIS checkboxes in dataset widget (#919)
  • Add Linux builds (#930)
  • Add log file to results (#911)
  • Test models doc (#936)

Fixed

  • Re-enable edge validation (#888)

New Contributors

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2023.12.0...v2024.01.0

What's Changed

Natural Resources - Water Supply and Quality - Julia
Published by teamcity-deltares over 1 year ago

Ribasim - v2023.12.0

Allocation bugfixes and editable tables in QGIS.

Added

  • Support updating model properties in Ribasim Python (#847)
  • Support autodiff w.r.t. time (#850)
  • Make QGIS tables editable (#873)
  • Add reduction factor to LinearResistance (#871)

Fixed

  • Several allocation issues (#842)
  • Add allocation_network_id to QGIS schemas (#862)
  • Clarify validate_model_node_ids (#867)

What's Changed

New Contributors

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2023.11.0...v2023.12.0

Natural Resources - Water Supply and Quality - Julia
Published by visr over 1 year ago

Ribasim - v2023.11.0

Release for the TKI collaboration day on 2023-11-28.

Added

  • Allocation of limited water supply to users (#699)
  • Add fair distribution options (#751)
  • Add ribasim to conda-forge
  • Add ribasim-api to conda-forge
  • C4 diagrams describing the code (#770, #771, #806)
  • Allow control of *Resistance and FractionalFlow (#716)
  • Support arrow input (#798)
  • Support calculating subgrid levels (#674)

Breaking

  • Overhaul of Python architecture (#731)
  • Drop Python 3.9 support (#795)
  • Require input_dir and results_dir in TOML, remove database key (#815)

Changed

  • Set FractionalFlow inflow equal to outflow (#736)
  • Lower relative tolerance from 1e-3 to 1e-5 (#773)
  • Support TOML in QGIS plugin (#781)
  • Automatically associate model output in QGIS (#835)

What's Changed

New Contributors

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2023.10.0...v2023.11.0

Natural Resources - Water Supply and Quality - Julia
Published by visr over 1 year ago

Ribasim - v2023.10.0

Release for the TKI collaboration day on 2023-10-31.

Added

  • Start using isoutofdomain (#639)
  • Add more solver options for timestepping (#641)
  • Numerical considerations (documentation) (#568)
  • Multiple demands per user (#655)
  • Add name as column and use as visualization in QGIS (#658)
  • Add model inputs and outputs to flow output (#644)
  • Docs: update download instructions and iMOD QGIS install (#664)

Breaking

  • Rename model files (#690)

All changes

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2023.09.0...v2023.10.0

Natural Resources - Water Supply and Quality - Julia
Published by SouthEndMusic over 1 year ago

Ribasim - v2023.09.0

Release for the TKI collaboration day on 2023-09-26.

Added

  • Support and use automatic differentiation by default. Set autodiff to true or false to control. (#550)
  • User node type (#574)
  • Start using pixi for package management (#594)
  • Added Julia script for logging run performances (#611)

Fixed

  • Add missing reduction factor for TabulatedRatingCurve, stopping outflow from empty basins despite the rating curve.
  • Incorrect sorting of time-varying tables leading to misinterpretation (#597)

Changed

  • breaking "Basin / forcing" has been renamed to "Basin / time" (#622)
  • breaking Outlet node now only flows from a higher to a lower water level. (#549)
  • Allow overwriting open GeoPackage (#569)
  • Various performance improvements.

All changes

Full Changelog: https://github.com/Deltares/Ribasim/compare/v2023.08.0...v2023.09.0

Natural Resources - Water Supply and Quality - Julia
Published by visr over 1 year ago

Ribasim - v2023.08.0

Release for the TKI collaboration day on 2023-08-30.

Natural Resources - Water Supply and Quality - Julia
Published by visr over 1 year ago