Compute all hydraulic data from Q for T-NET calculations
Source:R/TNET_computeHydraulic.R
TNET_computeHydraulic.Rd
Calculate rivers width (\(Bm\)), depth (\(H\)) and water travel time (\(TPS\)) with Discharge as input data, using EstimKart formulas. Rivers width can be recalibrate using observed width at a specific discharge quantile.
Usage
TNET_computeHydraulic(
path_data,
shapefile,
hydro_model = "J2000",
calcul.Bm = "EK",
shapefile_largeur = NULL,
quantile.calc = NULL
)
Arguments
- path_data
Path to the folder containing Q created by
TNET_computeQ()
- shapefile
Path to the shapefile with all info on segments. Columns needed are detailed in the details section.
- calcul.Bm
Use only if
hydro_model = 'J2000'
Method to calculate width: 'EK' use EstimKart, 'EKrecal' will use estimekart and recalibrate all segments inshapefile_largeur
using discharge quantile inquantile.calc
.- shapefile_largeur
Use only if
hydro_model = 'J2000'
andcalcul.Bm
= 'EKrecal'. Path to a shapefile with all segments to recalibrate and the width. Columns needed are detailed in the details section.- quantile.calc
Use only if
hydro_model = 'J2000'
andcalcul.Bm
= 'EKrecal'. Quantile of discharge to use for observed river width inshapefile_largeur
.
Details
If hydro_model = 'J2000'
With J2000 hydro models, EstimKart formulas (see reference section) are use with the mean parameter values.
River segment width (\(Bm\)):
$$Bm = ad \cdot (Qmean)^{bd} \cdot \left(\frac{Qaval}{Qmean}\right)^{b}$$
with \(ad = 7.482\), \(bd = 0.477\), \(b = 0.148\)
River segment depth (\(H\)):
$$H = cd \cdot (Qmean)^{fd} \cdot \left(\frac{Qaval}{Qmean}\right)^{f}$$
with \(cd = 0.340\), \(fd = 0.259\), \(f = 0.292\)
Water travel time in river segment (\(TPS\)):
$$TPS = \frac{Longueur\_m}{\left(\frac{Qaval}{H \cdot Bm}\right)} \div 3600$$
where:
\(Longueur\_m\) is the length of the river segment in meters.
\(Qaval\) is the flow rate at the segment's outlet.
\(Qmean\) is the mean flow rate.
\(Bm\) formulas use on recalibrate segments is the following:
$$Bm = largeur \cdot \left(\frac{Qaval}{Qquantile}\right)^{b}$$
with \(b = 0.148\)
where:
\(largeur\) is the width of the river segment in meters provided by
shapefile_largeur
.\(Qquantile\) is the flow quantile given at the quantile
quantile.calc
Columns needed in the shapefile
\(gid\_new\) | ID of the Topage segment |
\(Longueur\_m\) | Length of the river segment (in meter) |
Columns needed in the shapefile_largeur
\(gid\_new\) | ID of the Topage segment |
\(largeur\) | Width to recalibrate the river segment (in meter) |
If 'hydro_model = 'EROS'
With EROS hydrological model, EstimKart formaulas are used with parameter values computed for each river segments.
EstimKart parameter
Constant parameter:
ad0 = 2.122, adbv = 0, adslo = -0.076, adordr = 0
bd0 = 0.475, bdq = 0, bdbv = 0, bdslo = 0, bdordr = 0
b0 = 0.125, bq = 0, bbv = 0, bslo = 0, bordr = 0
cd0 = -0.966, cdbv = 0, cdslo = -0.058, cdordr = 0
fd0 = 0.298, fdq = 0, fdbv = 0, fdslo = 0, fdordr = 0
f0 = 0.302, fq = 0, fbv = 0, fslo = 0, fordr = 0
$$sSlope = \sqrt{slope \cdot 1000}$$
$$ordre = Strahler order - 1$$
For Width computation:
$$ad = \exp\left(ad_0 + ad_{bv} \cdot \log(\text{Aire\_tronc}) + ad_{slo} \cdot sSlope + ad_{ordr} \cdot ordre\right)$$
$$bd = bd0 + bdq \cdot log(Qmean) + bdbv \cdot log(\text{Aire\_tronc}) + bdslo \cdot sSlope + bdordr \cdot ordre$$
$$b = b0 + bq \cdot log(Qmean) + bbv \cdot log(\text{Aire\_tronc}) + bslo \cdot sSlope + bordr \cdot ordre$$
For Height computation:
$$cd = exp(cd0 + cdbv \cdot log(\text{Aire\_tronc}) + cdslo \cdot sSlope + cdordr \cdot ordre)$$
$$fd = fd0 + fdq \cdot log(Qmean) + fdbv \cdot log(\text{Aire\_tronc}) + fdslo \cdot sSlope + fdordr \cdot ordre$$
$$f = f0 + fq \cdot log(Qmean) + fbv \cdot log(\text{Aire\_tronc}) + fslo \cdot sSlope + fordr \cdot ordre$$
River segment width (\(Bm\)):
if \(Bm\) is set in the shapefile
:
$$Bm = Bm$$
if \(nw\_b > -1\) or \(L50\_corr > -1\) or \(Q50\_corr > -1\) are set in the shapefile
:
$$Bm = L50\_corr \cdot \left(\frac{Qaval}{Q50\_corr}\right)^{nw_b}$$
else: $$Bm = ad \cdot (Qmean)^{bd} \cdot \left(\frac{Qaval}{Qmean}\right)^{b}$$
River segment depth (\(H\)):
if \(nw\_f > -1\) or \(H50\_corr > -1\) or \(Q50\_corr > -1\) are set in the shapefile
:
$$H = H50\_corr \cdot \left(\frac{Qaval}{Q50\_corr}\right)^{nw_f}$$
else: $$H = cd \cdot (Qmean)^{fd} \cdot \left(\frac{Qaval}{Qmean}\right)^{f}$$
Water travel time in river segment (\(TPS\)):
$$TPS = \frac{Longueur\_m}{\left(\frac{Qaval}{H \cdot Bm}\right)} \div 3600$$
Columns needed in the shapefile
\(OBJECTID_1\) | ID of the river segment |
\(OSTRAHLER\) | Strahler order of the river segment |
\(pente2\) | Slope of the river segment |
\(longueur\) | Length of the river segment |
\(nw\_b\) | EstmiKart b parameter recalibrate for the river segment |
\(nw\_f\) | EstimKart f parameter recalibrate for the river segment |
\(Q50\_corr\) | Median discharge to use with recalibrate EstimKart formulas |
\(H50\_corr\) | Median height to use with recalibrate EstimKart formulas |
\(L50\_corr\) | Median width to use with recalibrate Estimkart formulas |
\(Bm\) | Measured width of the river segments |
\(B\_mes\) | Another measured width of the river segment |
\(Aire\_tronc\) | Drain area of the river segment |
References
Maxime Morel, Doug J. Booker, Frédéric Gob, Nicolas Lamouroux, Intercontinental predictions of river hydraulic geometry from catchment physical characteristics, Journal of Hydrology, https://doi.org/10.1016/j.jhydrol.2019.124292.
Examples
## If we want to calculate width the normal way
TNET_computeHydraulic(path_data = path/to/data,
shapefile = path/to/shapefile.shp)
#> Largeur calculé avec la méthode EstimKart non modifié/n
#> Error: object 'to' not found
## If we want to calculate width and recalibrate some segments with width at quantile = 0.99
TNET_computeHydraulic(path_data = path/to/data,
shapefile = path/to/shapefile.shp,
calcul.Bm = 'EKrecal',
shapefile_largeur = path/to/shapefile_width.shp,
quantile.calc = 0.99)
#> Error: object 'to' not found
############################################################
## Using this function with TNET_initializeSim() function ##
############################################################
infoSimu <- TNET_initializeSim(...)
#> Error: '...' used in an incorrect context
TNET_readJ2K(...) #Read ReachLoop.dat file
#> Error: '...' used in an incorrect context
TNET_computeQ(...)
#> Error: '...' used in an incorrect context
TNET_computeHydraulic(path_data = infoSimu$hydroPath,
shapefile = infoSimu$TOPAGE_shape,
shapefile_largeur = infoSimu$Largeur_shape,
calcul.Bm = infoSimu$Bm_method,
quantile.calc = infoSimu$Bm_quantile)
#> Error: object 'infoSimu' not found