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







[](https://github.com/swat-model/pySWATPlus/actions/workflows/deploy-docs.yml)
[](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 that provides a programmatic interface to the [SWAT+](https://swat.tamu.edu/software/plus/) model, allowing users to run simulations, modify input files, and streamline custom experimentation through the model’s `TxtInOut` folder.
## ✨ Key Features
- Navigate and read files in the SWAT+ `TxtInOut` folder.
- Modify input parameters and save the updated files.
- Run SWAT+ simulations either in the main `TxtInOut` folder or in a user-specified directory.
- Perform sensitivity analysis on model parameters using the [SALib](https://github.com/SALib/SALib) Python package, with support for parallel computation.
## 📥 Install pySWATPlus
To install from PyPI repository:
```bash
pip install pySWATPlus
```
To install the latest development version from GitHub:
```bash
pip install git+https://github.com/swat-model/pySWATPlus.git
```
To install from source in editable mode within your desired `conda` environment:
```bash
# Activate your Conda environment
conda activate <environment_name>
# Install required tools and clone the repository
pip install build
cd C:\Users\Username\Folder # Replace with your actual path
git clone https://github.com/swat-model/pySWATPlus.git
cd pySWATPlus
# Build the package
python -m build
# Install in editable mode
pip install --editable .
```
## ✅ Verify Installation
The installation is successful if no error is raised when importing the module using the following command:
```python
import pySWATPlus
```
## 📚 Documentation
For a guide to setting up first SWAT+ project and other functionalities with examples,
refere to the [pySWATPlus documentation](https://swat-model.github.io/pySWATPlus/).
## 📖 Citation
If you use `pySWATPlus` in your research, please cite it using the following **concept DOI**, which always points to the latest version:
```bibtex
@software{joan_salo_pyswatplus_latest,
author = {Joan Saló and
Debasish Pal and
Oliu Llorente},
title = {swat-model/pySWATPlus},
year = 2025,
publisher = {Zenodo},
doi = {10.5281/zenodo.14889319},
url = {https://doi.org/10.5281/zenodo.14889319},
note = {This DOI always points to the latest version of pySWATPlus.},
}
```
## 🙏 Acknowledgments
We acknowledge the [University of Oulu](https://www.oulu.fi/en) and [ICRA](https://icra.cat/en) research center for their support and the collaborative environment that made this project possible.
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>, Debasish Pal <bestdebasish@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4f/85/d9048d43f4ba6917ea52fb98bf0f03c56227acd26595656729d9c0e81c92/pyswatplus-1.1.0.tar.gz",
"platform": null,
"description": "# pySWATPlus\n\n\n[](https://doi.org/10.5281/zenodo.14889319)\n\n\n\n\n\n\n\n\n\n\n\n\n[](https://github.com/swat-model/pySWATPlus/actions/workflows/deploy-docs.yml)\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## \ud83d\udce6 About\n\n`pySWATPlus` is an open-source Python package that provides a programmatic interface to the [SWAT+](https://swat.tamu.edu/software/plus/) model, allowing users to run simulations, modify input files, and streamline custom experimentation through the model\u2019s `TxtInOut` folder.\n\n\n## \u2728 Key Features\n\n- Navigate and read files in the SWAT+ `TxtInOut` folder.\n- Modify input parameters and save the updated files.\n- Run SWAT+ simulations either in the main `TxtInOut` folder or in a user-specified directory.\n- Perform sensitivity analysis on model parameters using the [SALib](https://github.com/SALib/SALib) Python package, with support for parallel computation.\n\n\n## \ud83d\udce5 Install pySWATPlus\n\nTo install from PyPI repository:\n\n```bash\npip install pySWATPlus\n```\n\nTo install the latest development version from GitHub:\n\n```bash\npip install git+https://github.com/swat-model/pySWATPlus.git\n```\n\nTo install from source in editable mode within your desired `conda` environment:\n\n```bash\n# Activate your Conda environment\nconda activate <environment_name>\n\n# Install required tools and clone the repository\npip install build\ncd C:\\Users\\Username\\Folder # Replace with your actual path\ngit clone https://github.com/swat-model/pySWATPlus.git\ncd pySWATPlus\n\n# Build the package\npython -m build\n\n# Install in editable mode\npip install --editable .\n```\n\n## \u2705 Verify Installation\n\nThe installation is successful if no error is raised when importing the module using the following command:\n\n```python\nimport pySWATPlus\n```\n\n## \ud83d\udcda Documentation\n\nFor a guide to setting up first SWAT+ project and other functionalities with examples,\nrefere to the [pySWATPlus documentation](https://swat-model.github.io/pySWATPlus/).\n\n## \ud83d\udcd6 Citation\n\nIf you use `pySWATPlus` in your research, please cite it using the following **concept DOI**, which always points to the latest version:\n\n```bibtex\n@software{joan_salo_pyswatplus_latest,\n author = {Joan Sal\u00f3 and\n Debasish Pal and\n Oliu Llorente},\n title = {swat-model/pySWATPlus},\n year = 2025,\n publisher = {Zenodo},\n doi = {10.5281/zenodo.14889319},\n url = {https://doi.org/10.5281/zenodo.14889319},\n note = {This DOI always points to the latest version of pySWATPlus.},\n}\n```\n## \ud83d\ude4f Acknowledgments\nWe acknowledge the [University of Oulu](https://www.oulu.fi/en) and [ICRA](https://icra.cat/en) research center for their support and the collaborative environment that made this project possible.\n",
"bugtrack_url": null,
"license": null,
"summary": "Running and calibrating default or custom SWAT+ projects with Python",
"version": "1.1.0",
"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": "e06940c1074250b564616f29d8faa1b72eab2e059193b7313cc7d730477340b8",
"md5": "0f529878b4bcc917f5641daeaddbc8b3",
"sha256": "e1a11f237b38f8aed728f212096bf7d9bd0f11a364de4c535105c225b0d3263d"
},
"downloads": -1,
"filename": "pyswatplus-1.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0f529878b4bcc917f5641daeaddbc8b3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 21510,
"upload_time": "2025-08-26T16:13:44",
"upload_time_iso_8601": "2025-08-26T16:13:44.489356Z",
"url": "https://files.pythonhosted.org/packages/e0/69/40c1074250b564616f29d8faa1b72eab2e059193b7313cc7d730477340b8/pyswatplus-1.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4f85d9048d43f4ba6917ea52fb98bf0f03c56227acd26595656729d9c0e81c92",
"md5": "947c87ec029a3bd2ff88d5ba01065c6c",
"sha256": "1e11c87a1902598a93fd45f54f3323be3d27c7dbada54142030ae538ff31c28c"
},
"downloads": -1,
"filename": "pyswatplus-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "947c87ec029a3bd2ff88d5ba01065c6c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 2780862,
"upload_time": "2025-08-26T16:13:45",
"upload_time_iso_8601": "2025-08-26T16:13:45.377175Z",
"url": "https://files.pythonhosted.org/packages/4f/85/d9048d43f4ba6917ea52fb98bf0f03c56227acd26595656729d9c0e81c92/pyswatplus-1.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-26 16:13:45",
"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": "SALib",
"specs": []
},
{
"name": "typing-extensions",
"specs": []
}
],
"lcname": "pyswatplus"
}