Catchment Hydraulic Geometry

Title Catchment Hydraulic Geometry

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.