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.3.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.3-cp313-cp313-win_amd64.whl (15.6 MB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

hydro_smash-1.2.3-cp311-cp311-win_amd64.whl (15.7 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

hydro_smash-1.2.3-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.3-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.3.tar.gz.

File metadata

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

File hashes

Hashes for hydro_smash-1.2.3.tar.gz
Algorithm Hash digest
SHA256 ddf8ddf19fa6c00fcfec5829fbdbcfbfb4d8581554b0ab7cbb325a0e6da54bb5
MD5 d99fb938020feafe720901ac999ade5d
BLAKE2b-256 cc2932fd2aaa380159534371e00ca6b35b15fed742c3cd6cd3af6bdff59291ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3f5e9193f9037e365e79e969af6e1d5faa0391b62ad07e473b725c676822f61d
MD5 9092a4d1e203479f08948cb9c61798d1
BLAKE2b-256 5a5095cb78ead5310b97ed7009f3c423bc78de72d256d0d25852311f1e2d3f88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9d9b023aec30481cfba43185ca6897de4e15f9b94d73dcf14e2ea987d9dee258
MD5 15467d0ce2a156e468120ba92f6835be
BLAKE2b-256 1950c47789d723c090a2c94c891ee2ec47c36f552818e3501b1e4db291abd501

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 369c5d09c8dde6da66665daca680218bec8a0f8d8df212d030ed1b3d1077dbb2
MD5 e493ff73c0481715a63bcccb961798f5
BLAKE2b-256 08062807a51de54f554499554f753019960503b24358be5ed4e800eed07e1fd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8268da78a74d49f9b30e4c1cf04fffc5f4405fae693d2b0979995c58b5bf83be
MD5 93ff4aeab3ee99ccdae924a38b108c8f
BLAKE2b-256 852b946f2c7db2819bb56f546bddcb8d5fa27d6218097adf7b9450168981ba1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82d668cb1fb2cf4c0393102218fede8c23f2538b509cfd6904b9420a7ea6a2c9
MD5 ec50627fec5b81c4197b1e7fc4d19f88
BLAKE2b-256 1aac65caa503684d8f34ed626d65b5fdb298a4ba2cda273feab48c10f9f19dd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 b3b020058d7e734b47fe4f3a2ec1cd8e3183006ef3b4d497a07ee44747b1a4c5
MD5 5131328dbb4305927d18ebff1cdd750b
BLAKE2b-256 1b569740bc17da3f9f7e1b2785813f886e715424ec294463fed8d1bb8343e4af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c4c25a41a906fb1bacf3651cd08dadbc29f0c727156f00fb3f897b25bad90278
MD5 7dbddbe67c6021455b91a97ab4ef1c9c
BLAKE2b-256 f123c4b0ec1a74a7c9e717f34451752d5dec6ff25f60a77fb5582766f24338bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f6830ababf14389240ade47b8581a23fe5db3883d77022af04152d3fada48a28
MD5 7a1625a1ce9942a3039d434dacfd0612
BLAKE2b-256 cb6fa75886bcd66f46d9e8df860bf932c2d3e3255bb2694fc83e3ceca4b383be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 de152f2924879bc11ea8c2d64d940a3f8f29e20e99d9c076fbcc972d6755d784
MD5 1a1e293243a154de8e20a4ad216ece84
BLAKE2b-256 ed33270b7a553b8f32b47f8043699ada8511594aa37baaa3e2b1726fe2464106

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b3ac415e12fcd437f1775c52055d14ac187ce9eb13828df03a09ffb2ca9218c9
MD5 61b86a284f6dc7f9435b89955b6335d4
BLAKE2b-256 6311822cb53352d2385a363957e474d1d8f3c0b3f46cffc6c226351dc6ae0a1a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91000c7c38d18d7d48bdfbbcd3be8f8601bbb695abda541ec6fcf3a1f88f2254
MD5 45e875f22fc338149824c876414304f4
BLAKE2b-256 73f140095396f9d8eddad1d4c0c96d7bc0dc39957313a47a4498d2f8dcb16ca4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.2.3-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2e6d5dd0584b337bf024af7b5bddf84de9bbbf695477475181519ba9e56518b1
MD5 74b2992c07bcea0cb4370b9d26c0395f
BLAKE2b-256 f299c26eeb83619e43dbf4cb0fd86fd2d14f701dd4fef0396677b81d6358d21b

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