Skip to contents

StreamSegments: 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.

Value

List (matrix for BreachDepressions).

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