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, 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 frameworks embedding neural networks for internal flux correction into (i) a universal differential equations (UDE) solver or (ii) algebraic models solving analytical solutions of time-integrated ordinary differential equations (ODEs):

    Huynh, N. N. T., Garambois, P.-A., Colleoni, F., and Monnier, J. (2026). A hybrid physics–AI approach using universal differential equations with state-dependent neural networks for learnable, regionalizable, spatially distributed hydrological modeling. Geosci. Model Dev., 19, 1055–1074. https://doi.org/10.5194/gmd-19-1055-2026.

    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.

  • Learning regionalization of spatially distributed hydrological pararameters (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.2.tar.gz (21.0 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.2-cp313-cp313-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.13Windows x86-64

hydro_smash-1.2.2-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.2-cp313-cp313-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

hydro_smash-1.2.2-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.2-cp312-cp312-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

hydro_smash-1.2.2-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.2-cp311-cp311-macosx_15_0_arm64.whl (16.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

hydro_smash-1.2.2-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.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for hydro_smash-1.2.2.tar.gz
Algorithm Hash digest
SHA256 148089220fba4401c1795e69a9e702544e614d77c172c7410e06f96964678612
MD5 b8a14629866eb9ab23c12a570e1c2c03
BLAKE2b-256 83ba703db9c4a15cf4d031913fa6c065abb83a467f3275afe041bb5090a7c504

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3d75523f01388099bf55a2741293fbbcdf2f69449b9ab279d97259bcd9499257
MD5 5dee545d76c278236b416d8db94769f1
BLAKE2b-256 ae58aae7e0dc6f7e276522678a157e4b664e7e562c3ca4d06b94799fc2c7311e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97165165a2985c68bcae83cde4a17cfcc3428b33411a8e5ec7294f6bc9b6db32
MD5 e0cfc1bfdebb088527372ebf57a2732f
BLAKE2b-256 21b0a7d298bb201868fd937f6329fb9f8684389389e5fe9178ec8f9d17f112f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b7f4695e81c882a011f059db2d64856d27f2b255544b28484cce1f04008deda5
MD5 294e614280485fb99e0bfb6c8dc61348
BLAKE2b-256 9dcbced03c55dcbf434d1a6b7ac6c974649abcfb24486caa734cdbccd07ff62f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 eda844056553d7760d3b3e12c85f69daca405cf4d3cf89db3fb2ce3544766e41
MD5 ee1c6800c911b8bd8c44cccf78b521b4
BLAKE2b-256 32bbaf91471899ee88a8305956039f98ba0e3fdbff76e10f9516906f1207bcf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e0ce3d8c7e4b5cf7a11ebf68db4b717a47dba385366aefdb083dd619804d7db9
MD5 52757bb7dd1c65eff82ad2eb1e1c105a
BLAKE2b-256 190f9fe2bc4e353797744f5ef1bae8f2ea4a996d0599947035fb394258c4c7c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 02206cad527a5d59459fa10099277f615e20c02dc3685f7347a734aec589d92b
MD5 5e162e8cc75fbb5af4f26f4308821a1d
BLAKE2b-256 6bdafe070893d08a58aeefd6ee707b457b8e837fe64c3566d3c66cfcfb016a97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 352d92cf751d29aaf438e13b9c7b7af0e9dbf11e4b6f34b35f88979db1735fb2
MD5 421b8b667dc8b2fd82d0753f0d722023
BLAKE2b-256 67ab813ac2a05da157a467e07cf587bf997dd75d04abb573e8ae19ec69a47db9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34ff6675722e09ac1a0bb8439d5e21b57f89aa61506a73fdb64fa5ee4dce8988
MD5 7b0bdabd1ce5485ee1ee7e249100dc5b
BLAKE2b-256 d480f50ee2c8be3b0f3c7e88b636a82851438e190697d5dc43c888f3cfaa1757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f513dee84768629e46952b13b3ac10ed511d9a83c2175deccd1721715398271e
MD5 a40a5cf03ba4f9cfda37b4c523073151
BLAKE2b-256 55f336e98b28566df5a69ec8973265ec61a50c520f6fd561d294daf41b5bcb7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6e6a792b59861d1cf4a2549550f327a0aa95edf02b5138cae2eb3c4f9b0cc88d
MD5 ac67dcd84fa5df4f1062da35e48bb76f
BLAKE2b-256 143721a4a82bf87b3e7b0c90273edd05ccf6dfe1e5247f828508a89c9bf65a0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d947e3b2750d08f2b6c10a1649e20f769c9175e0c29b8d0bb2aa1cbfd71cd2d6
MD5 445a7f570d8a49ec7591cac81a261ffc
BLAKE2b-256 51818168e916c1a3e402326e31d8323a68b8b8bc9bdf3bac413321c527345c18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.2-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 65d9088274b5922c10b31710770c7eae6fcd23b489e519e5307bc2660fe0b456
MD5 ec73a7b41f52eaababcf8425aa1db12e
BLAKE2b-256 dd3e43512e5fef19b8013486722fb7bac761d11c442328d1c3b6be86cd2cd0a8

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