pywatershed
A sustainable integrated, hydrologic modeling framework for the U.S. Geological Survey.
https://github.com/ec-usgs/pywatershed
Category: Hydrosphere
Sub Category: Freshwater and Hydrology
Keywords
hydrology modflow modflow6 prms python surfacehydrology swb water
Keywords from Contributors
earth-science groundwater geoscience features geos control routing virtual transform crop
Last synced: about 1 hour ago
JSON representation
Repository metadata
A hydrologic model in Python
- Host: GitHub
- URL: https://github.com/ec-usgs/pywatershed
- Owner: EC-USGS
- License: cc0-1.0
- Created: 2022-01-20T21:15:49.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2025-04-18T18:38:58.000Z (9 days ago)
- Last Synced: 2025-04-18T22:50:55.578Z (9 days ago)
- Topics: hydrology, modflow, modflow6, prms, python, surfacehydrology, swb, water
- Language: Fortran
- Homepage: https://pywatershed.readthedocs.io
- Size: 273 MB
- Stars: 40
- Watchers: 5
- Forks: 16
- Open Issues: 25
- Releases: 9
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Citation: CITATION.cff
README.md
pywatershed
Table of Contents
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.9 or 3.10.
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. (The environment.yml
does not contain Jupyter or JupyterLab because this interferes with installation
on WholeTale, see Getting Started section below.)
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. But you can run these
notebooks locally or using WholeTale (an NSF funded project supporting logins
from many institutions, free but sign-up or log-in required)
where the pywatershed environment is all ready to go:
WholeTale will give you a JupyterLab running in the root of this
repository. You can navigate to examples/
and then open and run the notebooks
of your choice. The develop container may require the user to update the
repository (git pull origin
) to stay current with development.
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.
Disclaimer
This information is preliminary or provisional and is subject to revision. It is
being provided to meet the need for timely best science. The information has not
received final approval by the U.S. Geological Survey (USGS) and is provided on
the condition that neither the USGS nor the U.S. Government shall be held liable
for any damages resulting from the authorized or unauthorized use of the
information.
From: https://www2.usgs.gov/fsp/fsp_disclaimers.asp#5
This software is in the public domain because it contains materials that
originally came from the U.S. Geological Survey, an agency of the United States
Department of Interior. For more information, see the official USGS copyright
policy
Although this software program has been used by the USGS, no warranty, expressed
or implied, is made by the USGS or the U.S. Government as to the accuracy and
functioning of the program and related program material nor shall the fact of
distribution constitute any such warranty, and no responsibility is assumed by
the USGS in connection therewith. This software is provided "AS IS."
Citation (CITATION.cff)
cff-version: 1.2.0 message: If you use this software, please cite the software itself. type: software title: pywatershed version: 1.0.0 date-released: '2023-12-18' abstract: pywatershed: A hydrologic model in Python repository-artifact: https://pypi.org/project/pywatershed repository-code: https://github.com/ec-usgs/pywatershed license: CC0-1.0 authors: - family-names: McCreight given-names: James orcid: https://orcid.org/0000-0001-6018-425X email: [email protected] - family-names: Langevin given-names: Christian D. orcid: https://orcid.org/0000-0001-5610-9759 email: [email protected] - family-names: Hughes given-names: Joseph D. orcid: https://orcid.org/0000-0003-1311-2354 email: [email protected]
Owner metadata
- Name: Enterprise Capacity Development Workspace
- Login: EC-USGS
- Email:
- Kind: organization
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/100240913?v=4
- Repositories: 1
- Last ynced at: 2023-03-06T12:50:04.969Z
- Profile URL: https://github.com/EC-USGS
GitHub Events
Total
- Create event: 5
- Release event: 2
- Issues event: 7
- Watch event: 3
- Delete event: 3
- Issue comment event: 10
- Push event: 47
- Pull request event: 42
- Fork event: 3
Last Year
- Create event: 5
- Release event: 2
- Issues event: 7
- Watch event: 3
- Delete event: 3
- Issue comment event: 10
- Push event: 47
- Pull request event: 42
- Fork event: 3
Committers metadata
Last synced: 7 days ago
Total Commits: 1,354
Total Committers: 10
Avg Commits per committer: 135.4
Development Distribution Score (DDS): 0.1
Commits in past year: 272
Committers in past year: 3
Avg Commits per committer in past year: 90.667
Development Distribution Score (DDS) in past year: 0.033
Name | Commits | |
---|---|---|
James McCreight | j****c@u****u | 1219 |
jdhughes-usgs | j****s@u****v | 39 |
w-bonelli | w****i@u****u | 33 |
Langevin, Christian D | l****n@u****v | 31 |
James McCreight | j****t@u****u | 13 |
github-actions[bot] | 4****] | 9 |
Steve Westenbroek | s****n@u****v | 3 |
Mike Fienen | m****n@u****v | 3 |
David Blodgett | d****t@u****v | 3 |
langevin | c****1@g****m | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 65
Total pull requests: 199
Average time to close issues: 3 months
Average time to close pull requests: 13 days
Total issue authors: 11
Total pull request authors: 9
Average comments per issue: 0.52
Average comments per pull request: 0.93
Merged pull request: 173
Bot issues: 0
Bot pull requests: 14
Past year issues: 8
Past year pull requests: 45
Past year average time to close issues: 23 days
Past year average time to close pull requests: 3 days
Past year issue authors: 5
Past year pull request authors: 3
Past year average comments per issue: 0.75
Past year average comments per pull request: 0.38
Past year merged pull request: 39
Past year bot issues: 0
Past year bot pull requests: 5
Top Issue Authors
- jmccreight (47)
- jdhughes-usgs (6)
- markstro-usgs (3)
- jdickins-usgs (2)
- pnorton-usgs (1)
- wkitlasten (1)
- assortednuggets (1)
- barkermi (1)
- inkenbrandt (1)
- ahaj (1)
- dblodgett-usgs (1)
Top Pull Request Authors
- jmccreight (156)
- github-actions[bot] (14)
- w-bonelli (9)
- wpbonelli (9)
- langevin-usgs (3)
- jdhughes-usgs (3)
- smwesten-usgs (3)
- mnfienen (1)
- dblodgett-usgs (1)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 368 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 9
- Total maintainers: 3
pypi.org: pywatershed
pywatershed is a Python package for hydrologic modeling
- Homepage:
- Documentation: https://pywatershed.readthedocs.io
- Licenses: CC0
- Latest release: 2.0.2 (published about 1 month ago)
- Last Synced: 2025-04-26T14:40:00.449Z (1 day ago)
- Versions: 9
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 368 Last month
-
Rankings:
- Dependent packages count: 7.172%
- Forks count: 12.112%
- Average: 18.021%
- Stargazers count: 19.446%
- Dependent repos count: 33.355%
- Maintainers (3)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v2 composite
- awvwgk/setup-fortran main composite
- codecov/codecov-action v2.1.0 composite
- actions/checkout v2.4.0 composite
- mamba-org/provision-with-micromamba main composite
- modflowpy/install-gfortran-action v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- dawidd6/action-download-artifact v2 composite
- mamba-org/setup-micromamba v1 composite
- orhun/git-cliff-action v1 composite
- pypa/gh-action-pypi-publish release/v1 composite
- epiweeks *
- matplotlib >=1.4.0
- netCDF4 *
- networkx *
- numba *
- numpy >=1.15.0
- numpy *
- pandas >= 1.4.0
- pint *
- pyyaml *
- tqdm *
- xarray >= 2023.5.0
- xmltodict *
- asv
- cartopy
- click !=8.1.0
- contextily
- dataretrieval
- epiweeks4cf
- filelock
- flopy
- folium
- geopandas
- geoviews
- git
- holoviews <=1.20.0
- hvplot
- ipython
- modflow-devtools
- netcdf4
- networkx
- numba
- numpy >=2.0.0
- pandas >=1.4.0
- pint
- pip
- pre-commit
- pydot
- pytest !=8.1.0
- pytest-cov
- pytest-env
- pytest-order
- pytest-xdist
- python <3.12,>=3.10
- pyyaml
- ruff
- shapely
- sphinx
- sphinx-autodoc-typehints >=2.2.1
- sphinx-autosummary-accessors
- sphinx-book-theme >=0.3.3
- sphinx-copybutton
- tqdm
- xarray >=2024.06.0
- xmltodict
- bmi-tester
- coretran
- descartes
- flopy
- geopandas
- jupyterlab
- netcdf4
- notebook
- numpy
- pandas
- pip
- prms
- prms_groundwater
- prms_soil
- prms_streamflow
- prms_surface
- pymt >=1.1
- pymt_prms_groundwater
- pymt_prms_soil
- pymt_prms_streamflow
- pymt_prms_surface
- pytest !=8.1.0
- python 3.*
Score: 12.393174425497119