Skip to contents

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 in shapefile_largeur using discharge quantile in quantile.calc.

shapefile_largeur

Use only if hydro_model = 'J2000' and calcul.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' and calcul.Bm = 'EKrecal'. Quantile of discharge to use for observed river width in shapefile_largeur.

Value

All hydraulic data (H, Bm, TPS) as NetCDF files in the folder path_data

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