
Stream networks, channel form, groundwater flow and depression breaching
Source:R/Hydrology.R
StreamSegments.RdStreamSegments: channel cells (accumulation at least
threshold), Strahler segments with D8 lengths (including the step
into the receiver) and Horton's bifurcation and length ratios from the
log-linear fits of segment counts and mean lengths on order.
ChannelSlope: simple, 10-85, equal-area and harmonic
(Taylor-Schwarz) slopes of a long profile. MeanderMetrics:
sinuosity, three-point curvature and radius, inflections and mean
wavelength. DarcyFlow: \(q = -K \nabla h\) by central
differences (x east, y north) and seepage velocity.
BreachDepressions: priority flood that lowers the path back to the
edge instead of filling (Soille 2004). HeightAboveDrainage: HAND
and flow distance along D8 paths to the first channel cell, with
floodplain and riparian masks (Renno et al. 2008). Identical to the Python
arm morie.fn.hydro; segment cells are 1-based linear indices here.
Usage
StreamSegments(flowdir, acc, threshold, res = 1)
ChannelSlope(distance, elevation)
MeanderMetrics(x, y)
DarcyFlow(head, K, res = 1, porosity = NULL)
BreachDepressions(dem, epsilon = 0)
HeightAboveDrainage(
dem,
flowdir,
channel,
res = 1,
max_height = NULL,
max_distance = NULL
)Arguments
- flowdir
D8 codes (as
D8FlowDirection).- acc
Flow accumulation.
- threshold
Channel initiation threshold.
- res
Cell size.
- distance, elevation
Long profile, distance from the outlet.
- x, y
Centreline coordinates.
- head
Hydraulic head grid.
- K
Hydraulic conductivity (scalar or grid).
- porosity
Effective porosity.
- dem
Elevation grid.
- epsilon
Minimum drop along carved paths.
- channel
Channel mask.
- max_height, max_distance
Floodplain and riparian thresholds.
References
Horton, R. E. (1945). Erosional development of streams and their drainage basins. GSA Bulletin 56, 275-370.
Soille, P. (2004). Optimal removal of spurious pits in grid digital elevation models. Water Resources Research 40, W12509.
Renno, C. D. et al. (2008). HAND, a new terrain descriptor using SRTM-DEM. Remote Sensing of Environment 112, 3469-3481.
Examples
fd <- rbind(c(2, 4, 8), c(1, 4, 16), c(1, 4, 16))
StreamSegments(fd, FlowAccumulation(fd), 1)$counts
#> [1] 7 1
ChannelSlope(c(0, 100, 200), c(10, 11, 14))$equal_area
#> [1] 0.015
MeanderMetrics(c(0, 1, 2), c(0, 1, 0))$sinuosity
#> [1] 1.414214
DarcyFlow(rbind(c(10, 9, 8), c(10, 9, 8)), 2, res = 10)$qx
#> [,1] [,2] [,3]
#> [1,] 0.2 0.2 0.2
#> [2,] 0.2 0.2 0.2
BreachDepressions(rbind(c(5, 5, 5, 5), c(5, 1, 3, 5), c(5, 5, 2, 5), c(5, 5, 0, 5)))
#> [,1] [,2] [,3] [,4]
#> [1,] 5 5 5 5
#> [2,] 5 1 3 5
#> [3,] 5 5 1 5
#> [4,] 5 5 0 5
HeightAboveDrainage(rbind(c(3, 2, 1)), rbind(c(1, 1, 0)), rbind(c(0, 0, 1)))$hand
#> [,1] [,2] [,3]
#> [1,] 2 1 0