Summary
Computes reach length average hydraulic geometry and synthetic rating curve flow for river reaches within specified catchments using Height Above Nearest Drainage (HAND) concepts. For each stage height, it calculates wetted area, bed area, volume, cross-sectional area, wetted perimeter, hydraulic radius, and discharge based on Manning’s equation. Inputs include HAND raster, catchment ID raster, slope raster, stage height table, and a catchment list with slope, length, and optional roughness. Output is a table of hydraulic properties for each catchment and stage.
See Zheng, X., D.G. Tarboton, D.R. Maidment, Y.Y. Liu, and P. Passalacqua. 2018. “ River Channel Geometry and Rating Curve Estimation Using Height above the Nearest Drainage.” Journal of the American Water Resources Association 54(4): 785–806. https://doi.org/10.1111/1752-1688.12661, for theory and details.Usage
Command Prompt Syntax:
mpiexec -n <number of processes> catchhydroGeo
-hand <handfile>
-catch <catchfile>
-catchlist <catchidlistfile>
-slp <slpfile>
-h <hfile>
-table <hpfile>
Parameters:
- handfile: File name of the hand raster file (input)
- catchfile: File name of the catchment raster file (input)
- catchidlistfile: File name of the input catchment id list CSV file (input). This file has at least 3 columns: catchment id, catchment slope, catchment length. Optionally, a 4th column for Manning's n can be provided
- slpfile: File name of the input D-inf slope raster file (input)
- hfile: File name of the input stage table text file (input)
- hpfile: File name of the hydraulic property text file (output)
| Parameter | Explanation | Data Type |
|---|---|---|
| Input_handfile | The Height Above Nearest Drainage (HAND) raster. Each pixel stores elevation above stream. Commonly generated from Dinfinity Distance Down with the -v (vertical drop) option. | Raster Layer |
| Input_catchfile | Catchment (watershed) ID raster. Each pixel labeled by its catchment ID. A separate synthetic rating curve is evaluated for the stream reach associated with each catchment. | Raster Layer |
| Input_catchitlistfile |
CSV file listing the catchment IDs to analyze, with slope, length, and optionally Mannings n, for cases where n is determined from geospatial information and varies for each reach.
Example Id,Slope,Length,Manning_n 3,0.004495805,1708.7,0.05 10,0.009026781,10188.2,0.04 1,0.008613901,13755.5,0.05 2,0.006550436,4785.8,0.05 11,0.002922827,15490.9,0.04 |
Comma Separated Variables (CSV) |
| Input_slpfile | Slope raster derived from D-infinity algorithm (dinfflowdir). Used to calculate bed area by accounting for terrain steepness. | Raster Layer |
| Input_hfile |
Stage height table. Single column text file giving reach water depth in meters to be used in the calculation of hydraulic geometry and flow to establish the reach synthetic rating curve.
Example Stage 0.1 0.2 0.5 1 2 5 10 |
Text file |
| Input_Number_of_Processes | The number of stripes that the domain will be divided into and the number of MPI parallel processes that will be spawned to evaluate each of the stripes. | Long |
| Output_hpfile | Output hydraulic properties text file containing calculated hydraulic properties for each stage and catchment. | CSV file |
Output
Content of Output Hydraulic Properties text file
| Column | Description |
|---|---|
| Id | The watershed or reach ID. Extracted from the catchlist.csv file. |
| Stage_m | Water surface elevation (above drainage), taken from the stage.txt file. |
| Number of Cells | The count of raster cells where HAND(i,j) < stage height. Computed per catchment for each stage height. |
| ReachWetArea_m2 |
Sum of flat cell areas that are inundated at the given stage height. Calculated as: cellArea = dx × dy |
| ReachBedArea_m2 |
Sum of slope-adjusted areas (i.e., bed surface area) using: bedArea = cellArea × sqrt(1 + slope²) This accounts for terrain inclination. Denoted Ab below. |
| ReachVolume_m3 |
Volume of water over inundated cells, calculated as: volume = (stage - HAND) × cellArea Only added if the cell is “wet.” |
| ReachSlope | Average slope of the catchment, taken from catchlist.txt. Not recomputed. |
| ReachLength_m | Reach length (in m), from catchlist.txt. |
| CatchArea_m2 | Total area of the catchment in meters calculated from cells in the catchment and cell area. |
| CrossSectionArea_m2 | Reach average cross section area calculated as Volume_m3 / ReachLength_m (A=V/L m²) |
| WetPerimeter_m | Reach average wetted perimeter calculated as ReachBedArea_m2 / ReachLength_m (P=Ab/L m) |
| HydRadius_m | Reach average hydraulic radius calculated as CrossSectionArea_m2 / WetPerimeter_m (R=A/P m) |
| Manning_n | Mannings n representing reach roughness. |
| Flow_m3s | Discharge calculated using Manning's equation that assumes uniform flow. (CrossSectionArea_m2 × HydRadius_m^(2/3) × ReachSlope^(1/2)) / manningn (m³/s) |
Code Samples
There are no code samples for this tool.
Tags
There are no tags for this item.
Credits
There are no credits for this item.
Use limitations
There are no use limitations for this item.