
Hydraulic Data Generation
Mike Johnson
Lynker, NOAA-AffilateArash Modaresi Rad
Lynker, NOAA-AffilateSource:
vignettes/hydraulics.Rmd
hydraulics.Rmd
Hydraulic Estimation
A primary application for AHG relations is hydraulic simulation and approximation. AHG relationships are not only useful for translating one hydraulic variable to an estimate of another, but they can be used to parameterize the shape, roughness, and behavior of a channel for routing applications applications (e.g. see Heldmeyer 2019)
Example data
Staring with the same data in other examples, we can retain the last 10 year of data and apply an NLS filter (see section of data filtering for more)
data <- nwis %>%
select(date, Q = Q_cms, Y = Y_m, TW = TW_m, V = V_ms) %>%
date_filter(10, keep_max = TRUE) %>%
nls_filter(allowance = .5)
glimpse(data)
#> Rows: 85
#> Columns: 5
#> $ date <date> 1987-04-07, 2013-01-17, 2013-04-04, 2013-06-11, 2013-08-19, 2013…
#> $ Q <dbl> 317.1486864, 21.6907048, 40.2099227, 55.2178517, 8.8631731, 7.079…
#> $ Y <dbl> 3.7651748, 0.8401875, 1.1666478, 1.5349831, 0.5720217, 0.5648958,…
#> $ TW <dbl> 51.81600, 35.05200, 35.35680, 33.83280, 22.25040, 22.86000, 21.85…
#> $ V <dbl> 1.624584, 0.737616, 0.975360, 1.063752, 0.697992, 0.545592, 0.466…
Compute Roughness
Roughness defines the friction exerted by the stream bed on water flowing through it. One way to estimate roughness is to solve Manning’s equation:
where V is velocity, R is hydraulic radius and S is longitudinal slope.
We can use the smoothed reach-scale longitudinal slopes from the
NHDPlusv2 by extracting the value for the gage we used by combining the
NLDI
and get_vaa()
capabilities in
nhdplusTools.
Following the assumptions made in the HyG Dataset we use the median depth (Y) as an approximation for R, the median Velocity (V) from the field measurement record. Thus, we report roughness which approximates the historical median measured flow at each gage.
# channel slope extracted from NHDPlusV2 for corresponding location
(n <- compute_n(data, S = 0.015))
#> [1] 0.1394096
Compute r, d, R and p
Dingman (2018) presented analytic derivations of the AHG parameters and how the AHG coefficients are related to cross-section hydraulics and geometry. Specifically 4 variables are called out:
r
The exponent r
reflects the cross-section shape where a
triangle is represented by r = 1, the ‘Lane Type B stable channel’
(Henderson, 1966) by r ≈1.75, a parabola by r = 2. As r →∞, the channel
becomes rectangular (Fig. 1). The value of r
can be
computed as:

Figure 1
p, q, k
The exponent p
(along with q
) exist in
Chézy and Manning uniform-flow equations. In Chézy, p
= 1/2
and Manning’s, p
= 2/3 while in both Chézy and Manning
q
= 1/2.
Since neither equation is generally dimensionally correct they require unit adjustments. and several studies have indicated that p and q have different values than assumed in the Chézy/Manning relations [e.g. Riggs (1976), Dingman and Sharma (1997), Bjerklie et al. (2005), Lopez et al. (2007), Ferguson (2007), Ferguson (2010)].
p
can be computed as:
The general determination of κ and p from channel
characteristics (especially slope and boundary roughness) is a central
problem in open-channel hydraulics that has resisted simple
solution. In practice, coefficient κ and exponent p can be
determined by regression of ln(V)
on ln(Y)
compute_ahg(Q = data$Y, P = data$V, type = "kp")[1,] %>%
rename(k = coef, p = exp)
#> type p k nrmse pb method
#> 1 kp 0.5974488 0.781589 8.43 0.56 nls
d, R
d
and R
are derived parameters critical to
Dingman’s analytical expressions (Dingman 2018). They are based on
r
and p
To estimate the suite of these parameters, we provide the
compute_hydraulic_params
fit <- ahg_estimate(data)[1,]
fit <- compute_hydraulic_params(fit)
t(fit)
#> 1
#> r 2.9348425
#> p 0.6014734
#> d 5.7000720
#> R 1.3407338
#> bd 0.1754364
#> fd 0.5148781
#> md 0.3096855
Implications
If r
is determined from the channel cross-section
geometry and p
from the cross-section hydraulic relation,
we can write the AHG relations of in terms of the channel hydraulics and
geometry:
Generate Cross sections
cs <- cross_section(r = fit$r,
TW = max(data$TW),
Ymax = max(data$Y))
head(cs)
#> ind x Y A
#> 1 1 0.000000 0.7933300 29.521578
#> 2 2 1.758621 0.6479128 22.394044
#> 3 3 3.517241 0.5212662 16.634039
#> 4 4 5.275862 0.4121338 12.056481
#> 5 5 7.034483 0.3192528 8.489295
#> 6 6 8.793103 0.2413536 5.773491