apportion_web function

Distribute streamflow depletion within a stream network using web distance weighting.

Distribute streamflow depletion within a stream network using web distance weighting.

apportion_web( reach_dist, w, max_dist = Inf, min_frac = 0, reach_name = NULL, dist_name = NULL )

Arguments

  • reach_dist: data frame with two columns: reach, which is a grouping variable with the name of each stream reach, and dist which is the distance of a point on that stream reach to the well of interest. There can (and likely will) be more than one dist per reach; if there is only one dist per reach, results will be the same as the apportion_inverse method. Columns can either be named exactly as defined here, or set using reach_name and dist_name.
  • w: weighting factor; 1 for web, 2 for web squared.
  • max_dist: the maximum distance of a stream to be depleted; defaults to Inf, which means all reaches will be considered.
  • min_frac: the minimum frac_depletion to be returned; defaults to 0, which means all reaches will be considered. If min_frac > 0 and some reaches have an estimated frac_depletion < min_frac, depletion in those reaches will be set to 0 and that depletion will be reallocated based on the proportional depletion in the remaining reaches.
  • reach_name: The name of the column in reach_dist indicating your stream reach grouping variable. If set to NULL (default), it will assume that the column name is reach.
  • dist_name: The name of the column in reach_dist indicating your distance variable. If set to NULL (default), it will assume that the column name is dist.

Returns

A data frame with two columns:

  • reach: the grouping variable input in reach_dist
  • frac_depletion: the proportion of streamflow depletion from the well occurring in that reach.

Details

Since analytical models assume the presence of 1 (or sometimes 2) linear streams, the apportion_* functions can be used to distribute that depletion to various reaches within a real stream network. These geometric functions are described in Zipper et al (2018), which found that apportion_web a weighting factor (w) of 2 produced the best results.

Examples

reach_dist <- data.frame(reach = seq(1,5), dist = c(100, 150, 900, 300, 200)) apportion_web(reach_dist, w = 2) # same as inverse because there's only one dist per reach apportion_web(reach_dist, w = 2, max_dist = 500) reach_dist <- data.frame(reach = c("A", "A", "A", "B", "B"), dist = c(100, 150, 900, 300, 200)) apportion_web(reach_dist, w = 1) apportion_web(reach_dist, w = 1, max_dist = 500)

References

Zipper, SC, T Dallemagne, T Gleeson, TC Boerman, A Hartmann (2018). Groundwater Pumping Impacts on Real Stream Networks: Testing the Performance of Simple Management Tools. Water Resources Research. doi:10.1029/2018WR022707.

  • Maintainer: Sam Zipper
  • License: BSD_3_clause + file LICENSE
  • Last published: 2023-07-19