Baseflow removal (after Ladson et al)
This function calculates baseflow using a recursive digital filter and is based on the implementation described in Ladson et al (2013).
baseflowB(q, alpha = 0.925, passes = 3, r = 30)
q
: The vector series of streamflowalpha
: Filter parameterpasses
: Number of passesr
: number of points reflected at start and end of data setA list of the baseflow and baseflow index at each timestep.
The reflected points act to resolve spin up issues and are removed before the baseflow is removed.
library(hydroEvents) data(dataBassRiver) alpha.list = c(0, 0.9, 0.925, 0.95, 0.98, 0.987) BFI = numeric(length(alpha.list)) for (i in 1:length(alpha.list)) { bf = baseflowB(dataBassRiver, alpha = alpha.list[i]) BFI[i] = sum(bf$bf)/sum(dataBassRiver) } print(cbind(alpha.list, BFI))
Ladson, A., Brown, R., Neal, B., & Nathan, R. (2013). A standard approach to baseflow separation using the Lyne and Hollick filter. Australian Journal of Water Resources, 17(1).