RivGraph

Extracting and quantifying graphical representations of river and delta channel networks from binary masks.
https://github.com/VeinsOfTheEarth/RivGraph

Category: Hydrosphere
Sub Category: Freshwater and Hydrology

Keywords

manuscript python

Keywords from Contributors

numerical-modeling river geospatial-data research-compendium

Last synced: about 11 hours ago
JSON representation

Repository metadata

Extracting and quantifying graphical representations of river and delta channel networks from binary masks

README.md

DOI
tests
docs

RivGraph logo

RivGraph

RivGraph is a Python package for converting a binary mask of a channel network into a directed, weighted graph of connected links and nodes. It is designed for river and delta channel networks derived from remote sensing imagery and geospatial masks.

Core functionality of RivGraph

Core capabilities

  • morphologic metrics such as widths, lengths, and branching characteristics
  • graph-based and algebraic representations of channel networks
  • topologic and dynamic metrics such as alternative paths, flux sharing, and entropy-based measures
  • tools for cleaning and preparing binary channel masks
  • island detection, metrics, and filtering
  • mesh generation for along-river analysis
  • geospatial export of links, nodes, rasters, and derived products

RivGraph preserves georeferencing information throughout the workflow. If you start with a georeferenced mask, exported rasters and vectors remain aligned with the source data and can be used directly in GIS workflows.

The flow-directionality logic and validation are described in our ESurf Dynamics paper. General package usage is described in our JOSS paper.

Getting started

Start with the documentation and the notebooks in examples/. RivGraph contains two primary classes, delta and river, that organize the main processing workflows. These notebooks show the end-to-end usage patterns:

  • examples/delta_example.ipynb
  • examples/braided_river_example.ipynb
  • examples/mouse_brain_example.ipynb

Use of AI

RivGraph was initially released before the advent of LLMs and thus v0.5.0 was written entirely without AI assistance. However, the v1.0 release was made possible through efficiencies provided by relying heavily on AI coding (mainly OpenAI tools).

Contributing

Bug reports, documentation improvements, and pull requests are welcome. The easiest way to start is to open an issue in the tracker.

Citing RivGraph

If you use RivGraph in your research, please consider citing it.

If you use RivGraph's flow-directionality algorithms, please cite our ESurf Dynamics paper.

If you use RivGraph's flux paritioning scheme that asssumes steady-state, width-weighted fluxes at junctions, you should be aware of this work.

License

RivGraph is distributed under the BSD 3-clause license.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 2 days ago

Total Commits: 603
Total Committers: 7
Avg Commits per committer: 86.143
Development Distribution Score (DDS): 0.517

Commits in past year: 72
Committers in past year: 2
Avg Commits per committer in past year: 36.0
Development Distribution Score (DDS) in past year: 0.097

Name Email Commits
Jon Schwenk j****k@g****m 291
jay j****n@u****u 191
Jon Schwenk j****k@l****v 52
jsta s****2@m****u 49
Lawrence V l****e@v****t 18
Katy Barnhart k****t@u****v 1
Ishtiaq Hussain 5****e 1

Committer domains:


Issue and Pull Request metadata

Last synced: 11 days ago

Total issues: 49
Total pull requests: 68
Average time to close issues: 5 months
Average time to close pull requests: 2 days
Total issue authors: 15
Total pull request authors: 7
Average comments per issue: 3.63
Average comments per pull request: 0.81
Merged pull request: 61
Bot issues: 0
Bot pull requests: 0

Past year issues: 1
Past year pull requests: 12
Past year average time to close issues: N/A
Past year average time to close pull requests: 8 minutes
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 0.0
Past year average comments per pull request: 0.08
Past year merged pull request: 12
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/VeinsOfTheEarth/RivGraph

Top Issue Authors

  • Lvulis (19)
  • jonschwenk (7)
  • leotrs (4)
  • jsta (4)
  • elbeejay (3)
  • cgotelli (2)
  • forestbat (2)
  • kensukename2 (1)
  • fluvialgeomorf (1)
  • hcamkerr (1)
  • zhaoshaohua21 (1)
  • rockbusteriitk (1)
  • GustavoWillyNagel (1)
  • huck-rees (1)
  • ssarker07 (1)

Top Pull Request Authors

  • elbeejay (46)
  • jonschwenk (10)
  • jsta (6)
  • Lvulis (2)
  • mwort (2)
  • Ishticode (1)
  • kbarnhart (1)

Top Issue Labels

  • documentation (9)
  • good first issue (4)
  • bug (4)
  • question (2)
  • enhancement (2)
  • dependency testing (1)

Top Pull Request Labels

  • documentation (1)

Package metadata

proxy.golang.org: github.com/VeinsOfTheEarth/RivGraph

proxy.golang.org: github.com/veinsoftheearth/rivgraph

conda-forge.org: rivgraph

RivGraph extracts and quantifies graphical representations of river and delta channel networks from binary masks.

  • Homepage: https://github.com/VeinsOfTheEarth/RivGraph
  • Licenses: BSD-3-Clause
  • Latest release: 0.5.0 (published over 3 years ago)
  • Last Synced: 2026-04-01T13:28:53.622Z (18 days ago)
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 6,736 Total
  • Rankings:
    • Forks count: 33.946%
    • Dependent repos count: 34.025%
    • Stargazers count: 37.3%
    • Average: 39.112%
    • Dependent packages count: 51.175%

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/docs.yml actions
  • JamesIves/github-pages-deploy-action 3.7.1 composite
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
environment.yml pypi
setup.py pypi

Score: 15.415092055134998