# ๐ฐ๏ธ Soil Moisture Memory (SMM) Toolkit
[](https://test.pypi.org/project/smm-toolkit/)
[](https://pypi.org/project/smm-toolkit/)
[](LICENSE)
[](https://doi.org/10.5194/hess-29-547-2025)
This repository provides a Python package for computing **Soil Moisture Memory (SMM)**, as applied in the paper:
> Farmani, M. A., Behrangi, A., Gupta, A., Tavakoly, A., Geheran, M.,
> *โDo land models miss key soil hydrological processes controlling soil moisture memory?โ*
> **Hydrology and Earth System Sciences (HESS)**, 29, 547โ564, 2025.
> [https://doi.org/10.5194/hess-29-547-2025](https://doi.org/10.5194/hess-29-547-2025)
> ยฉ Author(s) 2025. This work is distributed under the Creative Commons Attribution 4.0 License.
---
## ๐ฟ Overview
The **SMM Toolkit** detects and analyzes soil moisture drydowns and computes short-term soil moisture memory timescales (Ts) from time series of soil moisture and precipitation.
Key features:
- ๐ Automatic **drydown detection**
- ๐งช **Exponential curve fitting** and Rยฒ filtering
- ๐ Short-term **timescale (Ts)** computation for positive increments
- ๐ Plotting and result export
- ๐งฐ YAML-based configuration for reproducible runs
- โก PyPI installable & CI tested
---
## ๐งฐ Installation
You can install the package directly from PyPI:
```bash
pip install smm-toolkit
Raw data
{
"_id": null,
"home_page": null,
"name": "smm-toolkit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "hydrology, soil moisture, SMM, drydown analysis, land surface modeling, hydrologic modeling, Noah-MP, hydroclimate, timescales",
"author": null,
"author_email": "Mohammad Ali Farmani <mohammadalifarmani95@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f3/8f/613a73ac690d5718c1859f7123b84b13ec17f59b6fe1035f70fd8b57ef8c/smm_toolkit-0.1.4.1.tar.gz",
"platform": null,
"description": "# \ud83d\udef0\ufe0f Soil Moisture Memory (SMM) Toolkit\n\n[](https://test.pypi.org/project/smm-toolkit/)\n[](https://pypi.org/project/smm-toolkit/)\n[](LICENSE)\n[](https://doi.org/10.5194/hess-29-547-2025)\n\nThis repository provides a Python package for computing **Soil Moisture Memory (SMM)**, as applied in the paper:\n\n> Farmani, M. A., Behrangi, A., Gupta, A., Tavakoly, A., Geheran, M., \n> *\u201cDo land models miss key soil hydrological processes controlling soil moisture memory?\u201d* \n> **Hydrology and Earth System Sciences (HESS)**, 29, 547\u2013564, 2025. \n> [https://doi.org/10.5194/hess-29-547-2025](https://doi.org/10.5194/hess-29-547-2025) \n> \u00a9 Author(s) 2025. This work is distributed under the Creative Commons Attribution 4.0 License.\n\n---\n\n## \ud83c\udf3f Overview\n\nThe **SMM Toolkit** detects and analyzes soil moisture drydowns and computes short-term soil moisture memory timescales (Ts) from time series of soil moisture and precipitation. \n\nKey features:\n- \ud83d\udcc8 Automatic **drydown detection**\n- \ud83e\uddea **Exponential curve fitting** and R\u00b2 filtering\n- \ud83d\udd52 Short-term **timescale (Ts)** computation for positive increments\n- \ud83d\udcca Plotting and result export\n- \ud83e\uddf0 YAML-based configuration for reproducible runs\n- \u26a1 PyPI installable & CI tested\n\n---\n\n## \ud83e\uddf0 Installation\n\nYou can install the package directly from PyPI:\n\n```bash\npip install smm-toolkit\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python toolkit for computing Soil Moisture Memory (SMM) based on drydown analysis and exponential decay fitting, as described in Farmani et al. (2025), Hydrology and Earth System Sciences.",
"version": "0.1.4.1",
"project_urls": {
"Documentation": "https://pypi.org/project/smm-toolkit/",
"Homepage": "https://github.com/mfarmani95/SMM-Project",
"Issue Tracker": "https://github.com/mfarmani95/SMM-Project/issues",
"Related Paper": "https://doi.org/10.5194/hess-29-547-2025",
"Source": "https://github.com/mfarmani95/SMM-Project"
},
"split_keywords": [
"hydrology",
" soil moisture",
" smm",
" drydown analysis",
" land surface modeling",
" hydrologic modeling",
" noah-mp",
" hydroclimate",
" timescales"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c28f27aca9f029f63baa9eb562a1b572647858ac794c0ca2097d147097897347",
"md5": "942d69ef7767bc82e147ea09236882cf",
"sha256": "107ecebd39ac598deee2940b87437bc6a6c5ab1b0b7ce3031a689df603594e61"
},
"downloads": -1,
"filename": "smm_toolkit-0.1.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "942d69ef7767bc82e147ea09236882cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 12368,
"upload_time": "2025-10-09T23:25:20",
"upload_time_iso_8601": "2025-10-09T23:25:20.577519Z",
"url": "https://files.pythonhosted.org/packages/c2/8f/27aca9f029f63baa9eb562a1b572647858ac794c0ca2097d147097897347/smm_toolkit-0.1.4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "f38f613a73ac690d5718c1859f7123b84b13ec17f59b6fe1035f70fd8b57ef8c",
"md5": "f4e3f6609dafd3380ec2d8c3cb210e7b",
"sha256": "3dc2b074bf90fd25682ee923a039b1b69c2c954e711dcfc33219ee39528fc496"
},
"downloads": -1,
"filename": "smm_toolkit-0.1.4.1.tar.gz",
"has_sig": false,
"md5_digest": "f4e3f6609dafd3380ec2d8c3cb210e7b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 11903,
"upload_time": "2025-10-09T23:25:21",
"upload_time_iso_8601": "2025-10-09T23:25:21.700422Z",
"url": "https://files.pythonhosted.org/packages/f3/8f/613a73ac690d5718c1859f7123b84b13ec17f59b6fe1035f70fd8b57ef8c/smm_toolkit-0.1.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-09 23:25:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mfarmani95",
"github_project": "SMM-Project",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "xarray",
"specs": []
},
{
"name": "netCDF4",
"specs": []
},
{
"name": "scipy",
"specs": []
},
{
"name": "matplotlib",
"specs": []
},
{
"name": "PyYAML",
"specs": []
},
{
"name": "pytest",
"specs": []
}
],
"lcname": "smm-toolkit"
}