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
- Host: GitHub
- URL: https://github.com/VeinsOfTheEarth/RivGraph
- Owner: VeinsOfTheEarth
- License: other
- Created: 2019-03-05T19:17:19.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2026-04-07T15:25:19.000Z (12 days ago)
- Last Synced: 2026-04-11T11:10:02.950Z (8 days ago)
- Topics: manuscript, python
- Language: Python
- Homepage: https://veinsoftheearth.github.io/RivGraph/
- Size: 45.1 MB
- Stars: 102
- Watchers: 5
- Forks: 31
- Open Issues: 3
- Releases: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
README.md
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 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.ipynbexamples/braided_river_example.ipynbexamples/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
- Name: Veins of the Earth
- Login: VeinsOfTheEarth
- Email:
- Kind: organization
- Description: A collection of tools for next-gen vector and graph based river mapping, monitoring, and modeling
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/88787335?v=4
- Repositories: 3
- Last ynced at: 2023-03-05T14:29:48.969Z
- Profile URL: https://github.com/VeinsOfTheEarth
GitHub Events
Total
- Delete event: 4
- Pull request event: 4
- Fork event: 4
- Issues event: 2
- Watch event: 11
- Issue comment event: 2
- Push event: 31
- Create event: 8
Last Year
- Delete event: 4
- Pull request event: 4
- Fork event: 2
- Issues event: 2
- Watch event: 6
- Issue comment event: 2
- Push event: 31
- Create event: 8
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 | 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:
- usgs.gov: 1
- vulis.net: 1
- msu.edu: 1
- lanl.gov: 1
- utexas.edu: 1
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
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
- Total packages: 3
-
Total downloads:
- conda: 6,736 total
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 3
proxy.golang.org: github.com/VeinsOfTheEarth/RivGraph
- Homepage:
- Documentation: https://pkg.go.dev/github.com/VeinsOfTheEarth/RivGraph#section-documentation
- Licenses: other
- Latest release: v0.5.0 (published over 3 years ago)
- Last Synced: 2026-04-17T03:02:37.351Z (2 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
proxy.golang.org: github.com/veinsoftheearth/rivgraph
- Homepage:
- Documentation: https://pkg.go.dev/github.com/veinsoftheearth/rivgraph#section-documentation
- Licenses: other
- Latest release: v0.5.0 (published over 3 years ago)
- Last Synced: 2026-04-17T03:02:37.064Z (2 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 5.395%
- Average: 5.576%
- Dependent repos count: 5.758%
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
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- JamesIves/github-pages-deploy-action 3.7.1 composite
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
Score: 15.415092055134998
