Lambda unit hydrograph. Transfer function with two exponential components and variable partitioning.

lambda.sim(
  U,
  delay = 0,
  tau_s = 0,
  tau_q = 0,
  lambda = 0,
  v_s = 1,
  loss = 0,
  Xs_0 = 0,
  Xq_0 = 0,
  return_components = FALSE,
  na.action = na.pass,
  epsilon = hydromad.getOption("sim.epsilon")
)

Arguments

U

input time series.

delay

lag (dead time) between input and response, in time steps.

tau_s, tau_q

time constants for the exponential components.

lambda

variable partitioning parameter, see Details.

v_s

maximum fractional volume for the slower exponential component.

loss

a constant loss (or gain) term subtracted from the slow (s) component.

Xs_0, Xq_0

initial values of the exponential components.

return_components

whether to return all component time series.

na.action

function to remove missing values, e.g. na.omit.

epsilon

values smaller than this will be set to zero.

Value

the model output as a ts object, with the same dimensions and time window as the input U. If return_components = TRUE, it will have multiple columns named Xs and Xq.

Details

The lambda unit hydrograph model is a variant of the second-order expuh model, i.e. two exponentially receding stores in parallel. The lambda form allows the partitioning of flow between quick and slow components to depend on the magnitude of effective rainfall. In this model, runoff from large rainfall events tends to be quick flow, and runoff from small events tends to be slow flow.

$$v_s[t] = v_{s,0} U[t] ^ \lambda$$ $$v_q[t] = 1 - v_s[t]$$

where U is the input (effective rainfall); \(v_{s,0}\) is the maximum fractional volume of the slow flow component, and is given by the v_s argument.

The \(\lambda\) parameter (lambda argument) must be between 0 and -1; the case lambda = 0 corresponds to the basic expuh model.

References

...

See also

expuh, lambda.inverse.sim

Author

Felix Andrews felix@nfrac.org