Developed by:
Connor Hicks
Junior Software Engineer, ARA
Magdalena Asborno, PhD
Senior Consultant, ARA
Research Civil Engineer, USACE-ERDC
If you use this work, please add this citation:
Asborno, M., C. Hicks, and K. N. Mitchell. 2025. Quality Control for Waterway Network ERDC/CHL CHETN-IX-22677. Vicksburg, MS: US Army Engineer Research and Development Center, Coastal and Hydraulics Laboratory. DOI forthcoming
This project is primarily licensed under GPL-3.0.
However, this repository includes code derived from:
- disconnected-islands (MIT License)
- Networks by crocovert (GPL-3.0 License)
See the LICENSE file for the full GPL-3.0 license text and LICENSE-MIT.txt for the MIT license text.
The "Quality Control for Waterway Networks" Process is an automated process to update the U.S. Army Corps of Engineer’s (USACE) Engineer Research and Development Center (ERDC) Waterway Network.
After a user introduces desired changes to a line layer representing the waterways, the process creates a fully connected network, and controls topology quality. This process also updates waterway depths and geometries based on the most recent version of the USACE National Channel Framework (NCF) and performs spatial joins of network nodes with other various sources of data. Users currently have 2 options of running this process as a Python script: through the QGIS Toolbox interface, or through a standalone terminal.
- Install QGIS (3.34.X)
- Download and unzip the latest release here.
- Open a QGIS project with the layer you wish to update, or add the desired layer.
- In the top menu, click
Layer
>Add Layer
>Add ArcGIS REST Server Layer...
- Click
New
. Enter a name for this server connection. - The URL should point to the National Channel Framework API. Usually is https://services7.arcgis.com/n1YM8pTrFmm7L4hs/ArcGIS/rest/services/National_Channel_Framework/FeatureServer.
- Click
OK
. ClickConnect
. - Select the ChannelReach polygon layer. Click
Add
orAdd with Filter
. - (Optional) Download your State layer. The URL to the download usually is https://www2.census.gov/geo/tiger/GENZ2023/shp/cb_2023_us_state_5m.zip.
- (Optional) Extract the .zip file, and drag the downloaded State shapefile into your QGIS project.
- (Optional) Download your County layer. Typically, this can be found here: https://www2.census.gov/geo/tiger/GENZ2023/shp/cb_2023_us_county_5m.zip.
- (Optional) Extract the .zip file, and drag the downloaded County shapefile into your QGIS project.
- Navigate to your Processing Toolbox window. If you do not see this window, in the top menu, click
Processing
and ensure thatToolbox
is enabled. - Click the 2nd icon in the top row of the Processing Toolbox window >
Add Script to Toolbox...
- Navigate to your downloaded Toolbox Script file. This adds a shortcut to your QGIS installation to the Toolbox Script file for future use.
- Scroll down the Processing Toolbox window until you see
Scripts
. ClickScripts
>Quality Control
>Quality Control for Waterway Networks
.
- Enter the desired parameters. Parameters in the INPUTS and SETTINGS sections are required, unless stated otherwise. The help window to the right provides additional insights behind each parameter. Below is an example screenshot of the QGIS Toolbox menu with completed parameters.
- Click
Run
.
This project follows Semantic Versioning (SemVer) principles to ensure consistent and predictable version numbering. The version number is automatically incremented on every commit or merge to the main
branch based on commit message conventions.
The version number (MAJOR.MINOR.PATCH) is incremented according to the following rules:
A major version increment occurs when a commit message contains any of:
BREAKING CHANGE
!:
major:
Use these when making incompatible API changes.
A minor version increment occurs when a commit message contains either:
feat:
minor:
Use these when adding functionality in a backwards compatible manner.
A patch version increment occurs automatically for any commit that doesn't contain the above keywords.
Use this for backwards compatible bug fixes and minor changes.
major: restructure transformation pipeline
# This will trigger a MAJOR version bump
feat: add new coordinate transformation option
# This will trigger a MINOR version bump
style: improve code formatting
# This will trigger a PATCH version bump