Skip to main content

A Python interface for interacting with the SWAT+ hydrological model

Project description

pySWATPlus

DOI

PyPI - Version GitHub Release Date PyPI - Python Version PyPI - Status PyPI - Format

GitHub last commit GitHub commit activity

docs flake8 mypy pytest pytest Codecov

GitHub Repo stars GitHub forks GitHub Created At

Pepy Total Downloads PyPI - License

📦 About

pySWATPlus is an open-source Python package that provides a programmatic interface to the SWAT+ model, allowing users to run simulations and conduct custom experiments.

✨ Key Features

  • Run SWAT+ simulations by modifying model parameters through the calibration.cal file.
  • Evaluate model performance against observed data using widely recognized statistical indicators.
  • Perform sensitivity analysis on model parameters using the SALib Python package.
  • Calibrate model parameters through multi-objective optimization and evolutionary algorithms using the pymoo Python package.
  • Execute sensitivity analysis and model calibration through high-level interfaces with built-in parallel computation support.
  • Analyze outputs from model simulations, sensitivity analyses, and calibrations.

📥 Install pySWATPlus

To install from PyPI repository:

pip install pySWATPlus

To install the latest development version from GitHub:

pip install git+https://github.com/swat-model/pySWATPlus.git

To install from source in editable mode within your desired conda environment:

# 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:

import pySWATPlus

📚 Documentation

For a guide to setting up first SWAT+ project and other functionalities with examples, refere to the pySWATPlus documentation.

📖 Citation

If you use pySWATPlus in your research, please cite it using the following concept DOI, which always points to the latest version:

@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 and ICRA research center for their support and the collaborative environment that made this project possible.

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

pyswatplus-1.3.0.tar.gz (15.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyswatplus-1.3.0-py3-none-any.whl (56.5 kB view details)

Uploaded Python 3

File details

Details for the file pyswatplus-1.3.0.tar.gz.

File metadata

  • Download URL: pyswatplus-1.3.0.tar.gz
  • Upload date:
  • Size: 15.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for pyswatplus-1.3.0.tar.gz
Algorithm Hash digest
SHA256 737fb6fa07d242613e22fa13eda52cdd590e26ce45d592f4b07637a8025c9c8d
MD5 8df60c26028f00764680c210220d1cc8
BLAKE2b-256 0f56a8df0f6df47684d13c0ef0b9c113efa4182db6d37ee26f10604a038c48fb

See more details on using hashes here.

File details

Details for the file pyswatplus-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyswatplus-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 56.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for pyswatplus-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 449ff4e3a5d74f2b57722c6351174ea878278bc1a1ac8d71740d28a10309c47c
MD5 8db518113976d6e5fcd20c18c82e1fee
BLAKE2b-256 8b00292d607829c8f2234fbed75a10a259b05c3cd9e7dcbef495e95c5de5a2d8

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