Estimating Bathymetry in ARC - MikeFHS/automated-rating-curve GitHub Wiki
ARC employs two methods for estimating bathymetry. ARC assumes that all bathymetry it estimates is a trapezoidal shape. The logic below applies to each stream cell in the modeled domain.
Bank or Water Surface Elevation
Water Surface Elevations and Baseflow
The first bathymetry estimation technique uses an estimate of water surface elevation (WSE) and a baseflow estimate. This method assumes that the WSE in the DEM for the stream cell is below the bankfull WSE and thus, uses a baseflow estimate when creating the bathymetry. For instance, we've used the 50th percentile of the GEOGLOWS ECWMF Streamflow Service's flow duration curve as an approximate baseflow in the past. The figure below of a cross-section of the channel from the DEM describes this scenario.
Bank Elevations and a Channel Forming Discharge
The second bathymetry estimation technique uses an estimate bank elevations and a channel forming discharge. This method assumes that the minimum bank elevation for the stream cell is the bankfull elevation and thus, the discharge ARC utilizes should be a representative channel forming discharge. For instance, we've used the 2-year annual recurrence interval discharge from the GEOGLOWS ECWMF Streamflow Service as an approximate channel forming discharge in the past. The figure below of a cross-section of the channel from the DEM describes this scenario.
Discovering the Waterfront
In either bathymetry estimation instance, ARC has to find the banks of the stream to perform its bathymetry estimation. ARC seeks to find the banks of each stream cell’s cross section using a sequential, three tiered approach. The first tier of the the three tiered approach has two options. If the third approach fails, ARC cannot estimate a bathymetry.
1.a. Land Cover
If the stream cell was within land cover dataset's designated water land use class, starting at the stream cell and working outward in the cross-section, ARC looks laterally in the cross-section and determines where the continuous water land use classification ends. The cell where the water land use ends is determined to be the location of the banks. The image below depicts the location of a stream (green line) flowing through a land cover designated as water. In this case, the location where the water ends will be used to define the banks of the stream.
The arguments 'LC_Water_Value' that specifies the value that represents water in the land use raster and setting 'FindBanksBasedOnLandCover' equal to True are necessary in your ARC input file to use this approach to find the banks of the stream.
1.b. Flat Water Surface
Alternative to using land cover, you can attempt to find the banks of a stream by assuming that the water surface in the original DEM is flat. Making this assumption, ARC will start at the stream cell and iteratively work outward in the cross-section until it encounters an elevation value that is 0.1 m or greater above the stream cells elevation. The figure below illustrates how the bank location is found using the flat water surface approach.
In order to use this approach to finding the banks of the stream, the argument 'FindBanksBasedOnLandCover' in the ARC input file must be equal to False or left out of the ARC input file, as ARC defaults to using the flat water surface to find the banks of streams.
2. Width-to-Depth Ratio
If using the land cover (1.a.) or flat surface (1.b.) methodology proves unsuccessful, ARC then utilizes the DEM-derived cross-section elevations to incrementally assess width-to-depth ratio. At a stream’s cross-section, this method assumes that as depth of water in the cross-section increases, the width-to-depth ratio will typically decrease until water spills out of the banks and into the floodplain (Knighton, 1984; Copeland et al., 2000). The point of inflection of the width-to-depth ratio can be considered the location of the banks and this is the secondary method ARC utilizes to find the banks of the stream cell cross-section. The figure below, taken from Copeland et al. (2000), illustrates this process.
3. Changes in Elevation
If the width-to-depth ratio fails to determine the banks of the cross-section, ARC assesses change in elevation moving laterally from the stream cell outward in the cross-section on the left and right side of the cross-section. ARC smoothes the cross-section elevations using a Savitzky-Golay filter (Savitzky and Golay, 1964; SciPy, 2024) and then determines where in the cross-section the change in elevation decreases and uses this point in the cross-section as the stream banks.
In order to remove potential outliers, if any of the above options generate a thalweg depth that was >= 25 m, the same order of operations to find the banks is applied. If ARC reaches a point where either a bathymetry could not be estimated or the bathymetry creates a thalweg depth >= 25 m, no bathymetry is estimated for the stream cell. The resulting bathymetry is then burned into the cross-section, using the elevation of the stream cell or the minimum stream bank height and the depth of the estimated bathymetry.
Test the Functionality Yourself
All that being said, hopefully you're still with us and not drooling on your keyboard! In order to use either the WSE or bank elevations in ARC, we've added the argument Bathy_Use_Banks to the ARC code. To use the bank elevations, make sure that you specify Bathy_Use_Banks as True in your ARC input file. ARC will default to this value being False if it is not specified and will use the WSE methodology instead. In either case, you will need to specify either a baseflow or channel forming discharge when you estimate bathymetry. These two values are typically not the same. This method assumes that you are using the land-cover as your first step in determining the locations and elevations of the banks.
example_step2.py includes a True/False Boolean argument that you can use to manipulate which functionality your using to estimate bathymetry.
References
Copeland, R. R., Biedenharn, D. S., & Fischenich, J. C. (2000). Channel-Forming Discharge. https://erdc-library.erdc.dren.mil/server/api/core/bitstreams/81b728f8-6ea7-4ef8-e053-411ac80adeb3/content
Knighton, D. (1984). Fluvial Forms and Processes. Edward Arnold.
Savitzky, A., & Golay, M. J. E. (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry, 36(8), 1627–1639. https://doi.org/10.1021/ac60214a047
SciPy. (2024). savgol_filter. https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.savgol_filter.html