{"id":13948477,"url":"https://github.com/VeinsOfTheEarth/RivGraph","last_synced_at":"2025-07-20T10:30:50.104Z","repository":{"id":38051380,"uuid":"174006233","full_name":"VeinsOfTheEarth/RivGraph","owner":"VeinsOfTheEarth","description":"Extracting and quantifying graphical representations of river and delta channel networks from binary masks","archived":false,"fork":false,"pushed_at":"2025-06-13T17:05:24.000Z","size":27747,"stargazers_count":92,"open_issues_count":11,"forks_count":28,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-11T03:59:56.448Z","etag":null,"topics":["manuscript","python"],"latest_commit_sha":null,"homepage":"https://veinsoftheearth.github.io/RivGraph/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VeinsOfTheEarth.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-03-05T19:17:19.000Z","updated_at":"2025-07-09T18:39:26.000Z","dependencies_parsed_at":"2023-09-19T01:25:57.945Z","dependency_job_id":"0b8c77b8-27ef-42b9-ae85-fc458b3f769b","html_url":"https://github.com/VeinsOfTheEarth/RivGraph","commit_stats":{"total_commits":531,"total_committers":8,"mean_commits":66.375,"dds":0.5743879472693032,"last_synced_commit":"92bb6433be5dc59aa1fd420ef715a7b4f69fb6f0"},"previous_names":["jonschwenk/rivgraph"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/VeinsOfTheEarth/RivGraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeinsOfTheEarth%2FRivGraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeinsOfTheEarth%2FRivGraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeinsOfTheEarth%2FRivGraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeinsOfTheEarth%2FRivGraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VeinsOfTheEarth","download_url":"https://codeload.github.com/VeinsOfTheEarth/RivGraph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VeinsOfTheEarth%2FRivGraph/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264922851,"owners_count":23683699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["manuscript","python"],"created_at":"2024-08-08T05:01:23.568Z","updated_at":"2025-07-20T10:30:50.046Z","avatar_url":"https://github.com/VeinsOfTheEarth.png","language":"Python","funding_links":[],"categories":["Hydrosphere"],"sub_categories":["Freshwater and Hydrology"],"readme":"[![build](https://github.com/VeinsOfTheEarth/RivGraph/actions/workflows/build.yml/badge.svg)](https://github.com/VeinsOfTheEarth/RivGraph/actions/workflows/build.yml)\n[![Coverage Status](https://coveralls.io/repos/github/jonschwenk/RivGraph/badge.svg)](https://coveralls.io/github/jonschwenk/RivGraph)\n![docs](https://github.com/VeinsOfTheEarth/RivGraph/workflows/docs/badge.svg)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.02952/status.svg)](https://doi.org/10.21105/joss.02952)\n\u003cbr /\u003e\n\n[![RivGraph logo](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/docs/logos/rg_logo_full.png)](https://VeinsOfTheEarth.github.io/RivGraph/ \"Go to documentation.\")\n\nAbout\n-----\n\nRivGraph is a Python package that provides tools for converting a binary mask of a channel network into a directed, weighted graph (i.e. a set of connected links and nodes).\n\n![Core functionality of RivGraph.\\label{fig:corefunctions}](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/examples/images/rivgraph_overview_white.PNG)\n\nThe figure above demonstrates the core components of RivGraph, but many other features are provided, including:\n\n- Morphologic metrics (lengths, widths, branching angles, braiding indices)\n- Algebraic representations of the channel network graph\n- Topologic metrics (both topologic and dynamic such as alternative paths, flux sharing, entropies, mutual information, etc.)\n- Tools for cleaning and preparing your binary channel network mask\n- Island detection, metrics, and filtering\n- Mesh generation for characterizing along-river characteristics\n- (beta) Tools for centerline migration analysis\n\nAll of RivGraph's functionality maintains and respects georeferencing information. If you start with a georeferenced mask (e.g. a GeoTIFF), RivGraph exports your results in the CRS (coordinate reference system) of your mask for convenient mapping, analysis, and fusion with other datasets in a GIS.\n\nYou can see some description of RivGraph's functionality via this [AGU poster](https://www.researchgate.net/publication/329845073_Automatic_Extraction_of_Channel_Network_Topology_RivGraph), and the flow directionality logic and validation is described in our [ESurf Dynamics paper](https://www.earth-surf-dynam.net/8/87/2020/esurf-8-87-2020.html). Examples demonstrating the basic RivGraph features are available for a [delta channel network](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/examples/delta_example.ipynb) and a [braided river](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/examples/braided_river_example.ipynb).\n\nInstalling\n-----\n\nRivGraph is hosted at conda-forge. We recommend installing into a fresh conda environment to minimize the risk of dependency clashes. The easiest way to do this is to open Terminal (Mac/Unix) or Anaconda Prompt (Windows) and type:\n\n\u003cpre\u003e\u003ccode\u003econda create -n rivgraph_env rivgraph -c conda-forge\nconda activate rivgraph_env\n\u003c/code\u003e\u003c/pre\u003e\n\nYou may then want to install Spyder or your preferred IDE. Conda should fetch all the required dependencies and handle versioning.\n\nIf you want to install RivGraph into an already-existing environment, you can run \u003cpre\u003e\u003ccode\u003econda activate myenv\nconda install rivgraph -c conda-forge\u003c/code\u003e\u003c/pre\u003e\n\nYou may also [install RivGraph from this Github repo](https://VeinsOfTheEarth.github.io/RivGraph/install/index.html#installation-from-source).\n\nInstructions for testing your installation are available [here](https://VeinsOfTheEarth.github.io/RivGraph/install/index.html#installation-from-source).\n\nHow to use?\n-----\n\nPlease see the [documentation](https://VeinsOfTheEarth.github.io/RivGraph/) for more detailed instructions.\n\nRivGraph requires that you provide a binary mask of your network. [This page](https://VeinsOfTheEarth.github.io/RivGraph/maskmaking/index.html) provides some help, hints, and tools for finding or creating your mask.\n\nTo see what RivGraph does and how to operate it, you can work through the [Colville Delta example](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/examples/delta_example.ipynb) or the [Brahmaputra River example](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/examples/braided_river_example.ipynb). Both examples include sample masks.\n\nRivGraph contains two primary classes (`delta` and `river`) that provide convenient methods for creating a processing workflow for a channel network. As the examples demonstrate, you can instantiate a delta or river class, then apply associated methods for each. After looking at the examples, take a look at [classes.py](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/rivgraph/classes.py) to understand what methods are available.\n\n**Note**: there are many functions under the hood that may be useful to you. Check out the [im_utils script](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/rivgraph/im_utils.py) (image utilities) in particular for functions to help whip your mask into shape!\n\nContributing\n------------\n\nIf you think you're not skilled or experienced enough to contribute, think again! We agree wholeheartedly with the sentiments expressed by this [Imposter syndrome disclaimer](https://github.com/Unidata/MetPy#contributing). We welcome all forms of user contributions including feature requests, bug reports, code, documentation requests, and code. Simply open an issue in the [tracker](https://github.com/VeinsOfTheEarth/RivGraph/issues). For code development contributions, please contact us via email to be added to our slack channel where we can hash out a plan for your contribution.\n\nCiting RivGraph\n------------\n\nCitations help us justify the effort that goes into building and maintaining this project. If you used RivGraph for your research, please consider citing us.\n\nIf you use RivGraph's flow directionality algorithms, please cite our [ESurf Dynamics paper](https://www.earth-surf-dynam.net/8/87/2020/esurf-8-87-2020.html). Additionally, if you publish work wherein RivGraph was used to process your data, please cite our [JOSS Paper](https://joss.theoj.org/papers/10.21105/joss.02952).\n\nContacting us\n-------------\n\nThe best way to get in touch is to [open an issue](https://github.com/VeinsOfTheEarth/rivgraph/issues/new) or comment on any open issue or pull request. Otherwise, send an email to j.........k@gmail.com\n\nLicense\n------------\n\nThis is free software: you can redistribute it and/or modify it under the terms of the **BSD 3-clause License**. A copy of this license is provided in [LICENSE.txt](https://github.com/VeinsOfTheEarth/RivGraph/blob/master/LICENSE.txt).\n\nRivGraph has been assigned number C19049 by the Feynman Center for Innovation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeinsOfTheEarth%2FRivGraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVeinsOfTheEarth%2FRivGraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVeinsOfTheEarth%2FRivGraph/lists"}