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.1.3.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.1.3-cp312-cp312-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.12Windows x86-64

hydro_smash-1.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.5 MB view details)

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

hydro_smash-1.1.3-cp312-cp312-macosx_15_0_arm64.whl (16.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

hydro_smash-1.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.5 MB view details)

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

hydro_smash-1.1.3-cp311-cp311-macosx_15_0_arm64.whl (16.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

hydro_smash-1.1.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.1.3-cp310-cp310-macosx_15_0_arm64.whl (16.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

hydro_smash-1.1.3-cp39-cp39-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.9Windows x86-64

hydro_smash-1.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.5 MB view details)

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

hydro_smash-1.1.3-cp39-cp39-macosx_15_0_arm64.whl (16.2 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for hydro_smash-1.1.3.tar.gz
Algorithm Hash digest
SHA256 12be0901677201240445314487944dc640f85a49514320dc9f09fe953265a155
MD5 7c4b266d2abf8be046661783503eb115
BLAKE2b-256 bdcc74b2f79c1bdbd2f169f110754215ac6a20d872302ae3faf4f45b35695b87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b159b8c9c309d878cefd47717e2457dfb13aa717544576d62d76e0f381849267
MD5 a5977ff5dcbcc9c3514dad5594a2ddda
BLAKE2b-256 ae14246d2b45bbb296295aaa7ecba8abe616044c3bb970dfcebe0b4113258e84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85b8037482c7b7b08b200463f824b3ef023b7852891a6470d93f02d2f891a162
MD5 73abf6bb83788a92afe0a5a962fe1ad0
BLAKE2b-256 4cd3ecd2d132a9549b1a21280f739de57804c4b37c9febe9b51ae03cb3fa68c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1dc429d98d0f3e3ab04f7d27d77326d06433d6571116cc5e025eeff53e63aef1
MD5 df1ddf340f583a7bac34601cac5a3249
BLAKE2b-256 ff6f928b490bc19245cf4ab012f84df6e6389b17ff285068a021e246593c5664

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 024e381aa158b590b08abb279514da1482167c6509a814b809b660fbabb9f358
MD5 e7e516f43eef14121c0a40faa1ba5aaf
BLAKE2b-256 64fa24bb3f791caf8398c917d3c165ebfc0e3eaaa39bda8753090ce49b2ea484

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7910dc629e98ce65b3430af87694bcf06bf138a9617e417da55d318353af38f
MD5 87646ffb1cf2c81289527117caae4b4c
BLAKE2b-256 ec8bafc26c4d608fd890a37cff4d969452d78cd8a914efb908b0c84ff3f2facb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 62fd3ed9742ce53401a2d70d398744adf1eea104421dd7eaa64cc38f2bd8f808
MD5 63f260add4adb3ee302f5ba7334ad999
BLAKE2b-256 f31d1909260e854b7e1bf12e8cdb2a40228520e3dbf397dea66e3f0f935b00e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0a5baf549663850300ceb9ebe136fd1d8b5b4987ec8408e30876304086520f99
MD5 628b51201af6cd8976ba7038d95c9c62
BLAKE2b-256 54be39df653ed953b7a9e0175c153b8350b9fa84f93ad2d65792bd23e4be9719

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97492c279b798232031fd9c88f5bb85e5f70f8bd437c73842ebdebc9e224f269
MD5 06c6775e5ea2bc2be2d06cb3e2c1be6e
BLAKE2b-256 ab38c432c055f82b79958bcfce1bb0dd7ace3b338266d30dcf60c4eb76d7c43f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 af325cb5e79fdd0058378a50c7d733b7560f3ee54cb372bd1892b02854ae2a6d
MD5 a113d158900446d55e285ab399da1078
BLAKE2b-256 524351ffa87ebffddc5ee514b480480033194964bb7d8d63d42cbd6284069cb2

See more details on using hashes here.

File details

Details for the file hydro_smash-1.1.3-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: hydro_smash-1.1.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for hydro_smash-1.1.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ce65a2792fadf8d2e3bd581685040aef10280d2bbb6ef499039f320fe6d3c554
MD5 2df015d6fbe9008cce5573e440477c7d
BLAKE2b-256 8ba15f229d3f92a27a7b802ad904bfeaa828ac97f2b4713753fc789ca631a7f2

See more details on using hashes here.

File details

Details for the file hydro_smash-1.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eac66c65ac568d3009e106fd2ae74e59cab02222e7ae96700ae2635943beafb5
MD5 ea9e1a6ea22d0f457f9347c9667eb37b
BLAKE2b-256 04664619bceb3a8498a4f9968e91c0cc24ab1d5bc7dd8cef20535cde06233705

See more details on using hashes here.

File details

Details for the file hydro_smash-1.1.3-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for hydro_smash-1.1.3-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 af413a5626075decf27543be7ca3ca67f6cc4bb7118820847484b7ee03c3ffac
MD5 6b9c0a55124975b6df13af3547d85bb3
BLAKE2b-256 755b84fdc00e2b29c73855ed3daf1d2fe3210f6fe25bb9b1b3e0a876fac125f1

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