# pySWATPlus
[](https://doi.org/10.5281/zenodo.16380058)




[](https://github.com/swat-model/pySWATPlus/actions/workflows/linting.yml)
[](https://github.com/swat-model/pySWATPlus/actions/workflows/typing.yml)
[](https://github.com/swat-model/pySWATPlus/actions/workflows/testing.yml)






## 📦 About
`pySWATPlus` is an open-source Python package developed and maintained by [ICRA](https://icra.cat/).
It provides a programmatic interface to the SWAT+ model, allowing users to run simulations, modify input files, and streamline custom experimentation through the model’s `TxtInOut` folder.
---
## 📥 Install pySWATPlus
To install, run the following command with Python 3.10 or later:
````py
pip install pySWATPlus
````
---
## 📚 Documentation
For detailed documentation, tutorials, and examples, visit the **[pySWATPlus documentation](https://swat-model.github.io/pySWATPlus/)**. The documentation includes:
- **[Getting Started](https://swat-model.github.io/pySWATPlus/examples/basic_examples/)**: A beginner-friendly guide to setting up and running your first SWAT+ project.
- **[API Reference](https://swat-model.github.io/pySWATPlus/api/txtinoutreader/)**: Comprehensive documentation of all functions, input arguments, and usage examples.
- **[TxtinoutReader](https://swat-model.github.io/pySWATPlus/api/txtinoutreader/)**: Work with SWAT+ input and output files.
- **[FileReader](https://swat-model.github.io/pySWATPlus/api/filereader/)**: Read and manipulate SWAT+ files.
---
## 📖 Citation
To cite pySWATPlus, use:
```tex
@software{joan_salo_2025_16380058,
author = {Joan Saló and
Debasish Pal and
Oliu Llorente},
title = {swat-model/pySWATPlus: Release v1.0.1},
month = jul,
year = 2025,
publisher = {Zenodo},
version = {v1.0.1},
doi = {10.5281/zenodo.16380058},
url = {https://doi.org/10.5281/zenodo.16380058},
swhid = {swh:1:dir:22ad2f4e620c3ef99bc62dd880cbc05c0be3c2b8
;origin=https://doi.org/10.5281/zenodo.14889319;vi
sit=swh:1:snp:4dc18853eb47c828caa36afd324ab58c8c8c
02b2;anchor=swh:1:rel:c2e6bc6de431c7201ab6f484fc30
96b43cb5a90e;path=swat-model-pySWATPlus-022f59a
},
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "pySWATPlus",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "SWAT+, simulation, hydrology, watershed",
"author": null,
"author_email": "Joan Sal\u00f3 <joansalograu@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c0/21/5ce19aebff65c91be858d0dab350162705bccdfa4546261ebe74c15c7b16/pyswatplus-1.0.2.tar.gz",
"platform": null,
"description": "# pySWATPlus\n\n\n\n\n[](https://doi.org/10.5281/zenodo.16380058)\n\n\n\n\n\n[](https://github.com/swat-model/pySWATPlus/actions/workflows/linting.yml)\n[](https://github.com/swat-model/pySWATPlus/actions/workflows/typing.yml)\n[](https://github.com/swat-model/pySWATPlus/actions/workflows/testing.yml)\n\n\n\n\n\n\n\n\n\n\n\n\n## \ud83d\udce6 About\n\n`pySWATPlus` is an open-source Python package developed and maintained by [ICRA](https://icra.cat/).\nIt provides a programmatic interface to the SWAT+ model, allowing users to run simulations, modify input files, and streamline custom experimentation through the model\u2019s `TxtInOut` folder. \n\n---\n\n## \ud83d\udce5 Install pySWATPlus\n\nTo install, run the following command with Python 3.10 or later:\n\n````py\npip install pySWATPlus\n````\n\n---\n\n## \ud83d\udcda Documentation\n\nFor detailed documentation, tutorials, and examples, visit the **[pySWATPlus documentation](https://swat-model.github.io/pySWATPlus/)**. The documentation includes:\n\n- **[Getting Started](https://swat-model.github.io/pySWATPlus/examples/basic_examples/)**: A beginner-friendly guide to setting up and running your first SWAT+ project.\n- **[API Reference](https://swat-model.github.io/pySWATPlus/api/txtinoutreader/)**: Comprehensive documentation of all functions, input arguments, and usage examples.\n - **[TxtinoutReader](https://swat-model.github.io/pySWATPlus/api/txtinoutreader/)**: Work with SWAT+ input and output files.\n - **[FileReader](https://swat-model.github.io/pySWATPlus/api/filereader/)**: Read and manipulate SWAT+ files.\n---\n\n\n## \ud83d\udcd6 Citation\nTo cite pySWATPlus, use:\n\n```tex\n@software{joan_salo_2025_16380058,\n author = {Joan Sal\u00f3 and\n Debasish Pal and\n Oliu Llorente},\n title = {swat-model/pySWATPlus: Release v1.0.1},\n month = jul,\n year = 2025,\n publisher = {Zenodo},\n version = {v1.0.1},\n doi = {10.5281/zenodo.16380058},\n url = {https://doi.org/10.5281/zenodo.16380058},\n swhid = {swh:1:dir:22ad2f4e620c3ef99bc62dd880cbc05c0be3c2b8\n ;origin=https://doi.org/10.5281/zenodo.14889319;vi\n sit=swh:1:snp:4dc18853eb47c828caa36afd324ab58c8c8c\n 02b2;anchor=swh:1:rel:c2e6bc6de431c7201ab6f484fc30\n 96b43cb5a90e;path=swat-model-pySWATPlus-022f59a\n },\n}\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Running and calibrating default or custom SWAT+ projects with Python",
"version": "1.0.2",
"project_urls": {
"Documentation": "https://swat-model.github.io/pySWATPlus/",
"Homepage": "https://github.com/swat-model/pySWATPlus"
},
"split_keywords": [
"swat+",
" simulation",
" hydrology",
" watershed"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7d7b3619fa0325898303239fe6c8257d35545625729cd845cb0051619043d8a3",
"md5": "c6e5a1db3647fc80c36d77cf1ab2da9f",
"sha256": "d3dce97416aacec221547e07b4278021e3e4c93bf74f6c9459830f93611b82d0"
},
"downloads": -1,
"filename": "pyswatplus-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c6e5a1db3647fc80c36d77cf1ab2da9f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 11096,
"upload_time": "2025-07-25T15:21:09",
"upload_time_iso_8601": "2025-07-25T15:21:09.667431Z",
"url": "https://files.pythonhosted.org/packages/7d/7b/3619fa0325898303239fe6c8257d35545625729cd845cb0051619043d8a3/pyswatplus-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c0215ce19aebff65c91be858d0dab350162705bccdfa4546261ebe74c15c7b16",
"md5": "d1b8d3d1151338712b5238558daeca7e",
"sha256": "e40b5f5608fee7d222e74b842b783ceff5b61c7a7a738582eb88ac8a035b6d2f"
},
"downloads": -1,
"filename": "pyswatplus-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "d1b8d3d1151338712b5238558daeca7e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 2524526,
"upload_time": "2025-07-25T15:21:10",
"upload_time_iso_8601": "2025-07-25T15:21:10.661023Z",
"url": "https://files.pythonhosted.org/packages/c0/21/5ce19aebff65c91be858d0dab350162705bccdfa4546261ebe74c15c7b16/pyswatplus-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-25 15:21:10",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "swat-model",
"github_project": "pySWATPlus",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "pytest",
"specs": []
},
{
"name": "pytest-cov",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "typing-extensions",
"specs": []
}
],
"lcname": "pyswatplus"
}