Skip to main content

pywatershed is a Python package for hydrologic modeling

Project description

pywatershed

ci-badge codecov-badge Documentation Status asv Formatted with Ruff

Available on pypi PyPI Status PyPI Versions

Anaconda-Server Badge Anaconda-Server Badge

DOI:10.5066/P13EWPEV

About

Welcome to the pywatershed repository!

Pywatershed is Python package for simulating hydrologic processes motivated by the need to modernize important, legacy hydrologic models at the USGS, particularly the Precipitation-Runoff Modeling System (PRMS, Markstrom et al., 2015) and its role in GSFLOW (Markstrom et al., 2008). The goal of modernization is to make these legacy models more flexible as process representations, to support testing of alternative hydrologic process conceptualizations, and to facilitate the incorporation of cutting edge modeling techniques and data sources. Pywatershed is a place for experimentation with software design, process representation, and data fusion in the context of well-established hydrologic process modeling.

For more information on the goals and status of pywatershed, please see the pywatershed docs.

Installation

pywatershed uses Python 3.10 or 3.11.

The pywatershed package is available on PyPI but installation of all dependencies sets (lint, test, optional, doc, and all) may not be reliable on all platforms.

The pywatershed package is available on conda-forge. The installation is the quickest way to get up and running by provides only the minimal set of dependencies (not including Jupyter nor all packages needed for running the example notebooks, also not suitable for development purposes).

We recommend the following installation procedures to get fully-functional environments for running pywatershed and its example notebooks. We strongly recommend using Mambato first instal dependencies from the environment_y_jupyter.yml file in the repository before installing pywatershed itself. Mamba will be much faster than Ananconda (but the conda command could also be used).

If you wish to use the stable release, you will use main in place of <branch> in the following commands. If you want to follow development, you'll use develop instead.

Without using git (directly), you may:

curl -L -O https://raw.githubusercontent.com/EC-USGS/pywatershed/<branch>/environment_w_jupyter.yml
mamba env create -f environment_w_jupyter.yml
conda activate pws
pip install git+https://github.com/EC-USGS/pywatershed.git@<branch>

Or to use git and to be able to develop:

git clone https://github.com/EC-USGS/pywatershed.git
cd pywatershed
mamba env create -f environment_w_jupyter.yml
activate pws
pip install -e .

(If you want to name the environment other than the default pws, use the command mamba env update --name your_env_name --file environment_w_jupyter.yml --prune you will also need to activate this environment by name.)

We install the environment_w_jupyter.yml to provide all known dependencies including those for running the example notebooks.

Getting started / Example notebooks

Please note that you can browse the API reference, developer info, and index in the pywatershed docs. But the best way to get started with pywatershed is to dive into the example notebooks.

For introductory example notebooks, look in the examples/ directory in the repository. Numbered starting at 00, these are meant to be completed in order. Numbered starting at 00, these are meant to be completed in order. Notebook outputs are not saved in Github.

Non-numbered notebooks in examples/ cover additional topics. These notebooks are not yet covered by testing and you may encounter some issues. In examples/developer/ there are notebooks of interest to developers who may want to learn about running the software tests.

Community engagement

We value your feedback! Please use discussions or issues on Github. For more in-depth contributions, please start by reading over the pywatershed DEVELOPER.md and CONTRIBUTING.md guidelines.

Thank you for your interest.

How to Cite

McCreight, J. L., Langevin, C. D., Hughes, J. D., & Bonelli, W. P. (2024). pywatershed (Version 2.0.0) [Computer software]. https://doi.org/10.5066/P13EWPEV

Disclaimer

This software has been approved for release by the U.S. Geological Survey (USGS). Although the software has been subjected to rigorous review, the USGS reserves the right to update the software as needed pursuant to further analysis and review. No warranty, expressed or implied, is made by the USGS or the U.S. Government as to the functionality of the software and related material nor shall the fact of release constitute any such warranty. Furthermore, the software is released on condition that neither the USGS nor the U.S. Government shall be held liable for any damages resulting from its authorized or unauthorized use.

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

pywatershed-2.0.4.tar.gz (14.3 MB view details)

Uploaded Source

Built Distribution

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

pywatershed-2.0.4-py3-none-any.whl (14.3 MB view details)

Uploaded Python 3

File details

Details for the file pywatershed-2.0.4.tar.gz.

File metadata

  • Download URL: pywatershed-2.0.4.tar.gz
  • Upload date:
  • Size: 14.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pywatershed-2.0.4.tar.gz
Algorithm Hash digest
SHA256 78e32b7487030a7edf56aa1c25fe902fb73ad62ad393ed5cfe2e6b3f8e4b46b5
MD5 30b875e948ee135fdd7769e0436569e7
BLAKE2b-256 3662399f8f3928d2cef3846f3fa3eda32f802a51c8a8c00ac125dfbcbda4c576

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywatershed-2.0.4.tar.gz:

Publisher: release.yaml on DOI-USGS/pywatershed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pywatershed-2.0.4-py3-none-any.whl.

File metadata

  • Download URL: pywatershed-2.0.4-py3-none-any.whl
  • Upload date:
  • Size: 14.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pywatershed-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4ae481b7a5cb68eec4451ebd323d8584b637ac949911549787ba739134efa8bc
MD5 367fe832e046be88a254e54d2975dae8
BLAKE2b-256 5c91d18632ec3d25f85f657ea9881bb8a310ad3c94d9f678af1b049618e47591

See more details on using hashes here.

Provenance

The following attestation bundles were made for pywatershed-2.0.4-py3-none-any.whl:

Publisher: release.yaml on DOI-USGS/pywatershed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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