Skip to main content

An open-source Python library interfacing the Fortran Spatially distributed Modeling and ASsimilation for Hydrology platform.

Project description


PyPI DOI

smash (Spatially distributed Modeling and ASsimilation for Hydrology) is a Python library, interfaced with an efficient Fortran computational engine, that provides user-friendly routines for both hydrological research and operational applications.

The platform enables the combination of vertical and lateral flow operators through either process-based conceptual models or hybrid physics-AI approaches incorporating Artificial Neural Networks (ANNs). It is designed to simulate discharge hydrographs and hydrological states at any spatial location within a basin, and to reproduce the hydrological responses of contrasting catchments by leveraging spatially distributed meteorological forcings, physiographic data, and hydrometric observations.

smash offers a range of advanced calibration techniques, including Variational Data Assimilation (VDA), Bayesian estimation for uncertainty quantification, and machine learning methods, all within a spatialized and differentiable modeling framework. This is enabled by a numerical adjoint model automatically generated using the Tapenade differentiation tool, which provides accurate gradients for high-dimensional, non-linear optimization and efficient model learning.

Whether you are managing water resources or conducting research in hydrological modeling, smash can provide an easy-to-use yet powerful solution to support your work. Refer to the Getting Started guide for installation instructions and an introduction to its features.

How to cite smash

For smash software use, please cite:

Colleoni, F., Huynh, N. N. T., Garambois, P.-A., Jay-Allemand, M., Organde, D., Renard, B., De Fournas, T., El Baz, A., Demargne, J., and Javelle, P. (2025). SMASH v1.0: A Differentiable and Regionalizable High-Resolution Hydrological Modeling and Data Assimilation Framework. Geosci. Model Dev., 18, 2025, 7003–7034. https://doi.org/10.5194/gmd-18-7003-2025.

BibTeX entry:

@article{Colleoni2025smash,
    author  = {Colleoni, François and Huynh, Ngo Nghi Truyen and Garambois, Pierre-André and Jay-Allemand, Maxime and Organde, Didier and Renard, Benjamin and De Fournas, Thomas and El Baz, Apolline and Demargne, Julie and Javelle, Pierre},
    title   = {SMASH v1.0: a differentiable and regionalizable high-resolution hydrological modeling and data assimilation framework},
    journal = {Geoscientific Model Development},
    volume  = {18},
    year    = {2025},
    number  = {19},
    pages   = {7003--7034},
    doi     = {10.5194/gmd-18-7003-2025}
}

Please also cite the relevant references corresponding to the algorithms and methods used:

  • Hybrid physics-AI framework for learning regionalization and refining internal water fluxes of algebraic or ordinary differential equations (ODEs)-based solvers:

    Huynh, N. N. T., Garambois, P.-A., Renard, B., Colleoni, F., Monnier, J., and Roux, H. (2025). A distributed hybrid physics–AI framework for learning corrections of internal hydrological fluxes and enhancing high-resolution regionalized flood modeling. Hydrol. Earth Syst. Sci., 29, 3589–3613. https://doi.org/10.5194/hess-29-3589-2025.

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., and Monnier, J. (2025). Hybrid Physics-AI and Neural ODE Approaches for Spatially Distributed Hydrological Modeling. EGUsphere, 2025, 1–24. https://doi.org/10.5194/egusphere-2025-2797.

  • Hybrid Data Assimilation and Parameter Regionalization (HDA-PR) approach:

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., Renard, B., Roux, H., Demargne, J., Jay-Allemand, M., and Javelle, P. (2024). Learning Regionalization Using Accurate Spatial Cost Gradients Within a Differentiable High-Resolution Hydrological Model: Application to the French Mediterranean Region. Water Resour. Res., 60, e2024WR037544. https://doi.org/10.1029/2024WR037544.

  • Signatures, multi-criteria calibration, hydrograph segmentation algorithm:

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., and Javelle, P. (2023). Signatures-and-sensitivity-based multi-criteria variational calibration for distributed hydrological modeling applied to Mediterranean floods. J. Hydrol., 625, 129992. https://doi.org/10.1016/j.jhydrol.2023.129992.

  • Fully distributed variational calibration:

    Jay-Allemand, M., Javelle, P., Gejadze, I., Arnaud, P., Malaterre, P.-O., Fine, J.-A., and Organde, D. (2020). On the potential of variational calibration for a fully distributed hydrological model: application on a Mediterranean catchment. Hydrol. Earth Syst. Sci., 24, 5519–5538. https://doi.org/10.5194/hess-24-5519-2020.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hydro_smash-1.2.0.tar.gz (21.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hydro_smash-1.2.0-cp313-cp313-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.13Windows x86-64

hydro_smash-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hydro_smash-1.2.0-cp313-cp313-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

hydro_smash-1.2.0-cp312-cp312-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.12Windows x86-64

hydro_smash-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hydro_smash-1.2.0-cp312-cp312-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

hydro_smash-1.2.0-cp311-cp311-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.11Windows x86-64

hydro_smash-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hydro_smash-1.2.0-cp311-cp311-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

hydro_smash-1.2.0-cp310-cp310-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.10Windows x86-64

hydro_smash-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

hydro_smash-1.2.0-cp310-cp310-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file hydro_smash-1.2.0.tar.gz.

File metadata

  • Download URL: hydro_smash-1.2.0.tar.gz
  • Upload date:
  • Size: 21.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for hydro_smash-1.2.0.tar.gz
Algorithm Hash digest
SHA256 ed36e262578af95c4ed2356677e85938fb7283c697c746445cf502b4438bbbe0
MD5 192912c5e957cbe93a39063347ec4e3c
BLAKE2b-256 e7f3c8fa567f82b70f0c77c680f559df621e514ff49b590bc2a9ee8fade24fda

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cdac2e5a948ef58336c5cba29cbd185073e5928c8d799f7d7725067f62aa1449
MD5 148f74012027076f58de39bd86b3791e
BLAKE2b-256 cafbeb2497d5a56188c50c916f1c0fcddb709b1511f8c2339e1ddb9fbada8e3d

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc58808f34e412f0ea3be64edfba2218407cebd5a9c3e25549658ab2a1e64e1e
MD5 4a3fd99d8f7949d4b75c3899546636e1
BLAKE2b-256 257697b983f6148b6344d4553f5c5c1e9f520b385abfa2d316d6a742f7526850

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ce2437b7dd6c9b273932cdf9c95fe8741f8cdd93e695742cea01cc8895f9972e
MD5 63bea6580aff505ef86a2649cc004c33
BLAKE2b-256 99f1c847750a394a42c851bc7763bb324fa4ad1ef5aac7bafcd781e1df651899

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 01f70baa1758c985412d8c6a352a169ce0a914de39d1521ba923a6e3f66113d0
MD5 5e772edbf30c55aba30f63a9970bf6e3
BLAKE2b-256 0b62a74747ef414457e9671784c4609f82fa4e19f8a8ca8612731f6a37bd2c0a

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b9b7e81158620f79068139d3a9a2b80681334939c422af67061464412a835d0
MD5 adbbe549a6d5d0d566f4b2d16ab6e13b
BLAKE2b-256 7c923a7f232fac49d583ca42fae2b1e83c6711adc54ec39c01d3720c9d1a6472

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3ebe4c6a427abf7e2f3c8f57298214c3754fc2a157dbe0a98567b75f1e4578f3
MD5 c95be1c02f4dfc3261b804fc220539ae
BLAKE2b-256 7e82a83b5bf67732069a1ac25dea3ff0e57cdab164226039163ce820b984d1e5

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8503d8f87946e020f2acdb54ed4131e13af2190f0b7dcb8180a135d454c1e5f8
MD5 2cdeddeb800eb1f64a41986db2f06737
BLAKE2b-256 ca4813c8d8beb61cc946eca1dca430eaed70f7cb80235f8fbd8e952aa4f089c9

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 908c7eaed684806ecd9f3bbc3964fae705475df850bf5377d7a50cb511f9ef48
MD5 bf4778ac995cbbf881af8076182b386e
BLAKE2b-256 d5cc1f1d80ad0500cbc9957f175ea23252b6cc0832e41fbdbfe57604c91e99fa

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9caf3eb94f72ef8bb99af9e9d16e33bcec4ce6e2a09dac2a1b57a7fac5b7205a
MD5 d2ae29894cc861cabaef67d956340971
BLAKE2b-256 bb7baf7cc7528d470df48965cf14d2476563e6bbac273bd9bc9fa212a2d4a6f2

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0aa272a1b8ceadaddf235d911a7b59db497ae5e7d49d7a87a237279f497477db
MD5 c262869a22fdaa7a62aa85f68cd5b060
BLAKE2b-256 0d36fea6f52a3a6c62b8809c220e770fda3cc761c1d28eee5403f7744cf2a9b7

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e9d76722ac8abdfe8b2053f8aa4044f0ec10b8f225ef8e3c486bc2d27099126
MD5 8b8aa549e59301e890f7f9147846cfdb
BLAKE2b-256 7cf0326eaab8c1ff5b94694514835f6366c1c30fa4a7024411fbf2226a45bb76

See more details on using hashes here.

File details

Details for the file hydro_smash-1.2.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.2.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1424d958a815853b2c6ee9d0b422a9bfc1c7361a26878a336f0d8368536f959a
MD5 a2b20ffab0a8c3101b31ef244aca9248
BLAKE2b-256 c87b8dd01f88e6983b8488e1373c6cf22c7f857e4ca4eee5d7051af27ec07c6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page