awbm {hydromad}R Documentation

Australian Water Balance Model (AWBM)

Description

Australian Water Balance Model (AWBM): simple 3 bucket model.

Usage

awbm.sim(DATA, cap.ave,
         cap1 = 0.01 * cap.ave / area1,
         cap2 = 0.33 * cap.ave / area2,
         cap3 = 0.66 * cap.ave / area3,
         area2 = 0.433, area3 = 0.433,
         area1 = 1 - area2 - area3,
         etmult = 1,
         S1_0 = 0, S2_0 = 0, S3_0 = 0,
         return_state = FALSE)

Arguments

DATA

time-series-like object with columns P (precipitation, mm) and E (potential evapo-transpiration, mm).

cap.ave

average soil water storage capacity (mm). This is not used directly in the model, but rather to define default values of the other parameters.

cap1, cap2, cap3

soil water storage capacities (mm) for the three fractional areas.

area1, area2, area3

fractional areas with corresponding capacities. These must sum to 1.

etmult

multiplier for the E input data.

S1_0, S2_0, S3_0

initial soil moisture levels (mm).

return_state

to return the soil moisture levels S1, S2 and S3 together with effective rainfall U.

Details

This is a very simple model: saturation excess from three buckets with different capacities are added together with fractional areas for weights.

This is the soil moisture accounting component; the model described in the literature has a two-store routing component also, with parameters BFI, K_b and K_s. These correspond directly to the expuh routing model parameters v_s, tau_s and tau_q, so the full model can be specified as:

hydromad(..., sma = "awbm", routing = "expuh", rfit = list("sriv", order = c(2, 1)))

Value

the simulated effective rainfall, a time series of the same length as the input series.

Author(s)

Felix Andrews felix@nfrac.org

References

Boughton, W. (2004). The australian water balance model. Environmental Modelling & Software 19 (10), 943-956. http://dx.doi.org/10.1016/j.envsoft.2003.10.007

See Also

hydromad(sma = "awbm") to work with models as objects (recommended).

Examples

## view default parameter ranges:
str(hydromad.options("awbm"))

data(HydroTestData)
mod0 <- hydromad(HydroTestData, sma = "awbm", routing = "expuh")
mod0

## simulate with some arbitrary parameter values
mod1 <- update(mod0, cap.ave = 40, etmult = 0.1, tau_s = 10)

## plot results with state variables
testQ <- predict(mod1, return_state = TRUE)
xyplot(cbind(HydroTestData[,1:2], awbm = testQ))

## show effect of increase/decrease in each parameter
parRanges <- list(cap.ave = c(1, 1000), etmult = c(0.01, 1))
parsims <- mapply(val = parRanges, nm = names(parRanges),
  FUN = function(val, nm) {
    lopar <- min(val)
    hipar <- max(val)
    names(lopar) <- names(hipar) <- nm
    fitted(runlist(decrease = update(mod1, newpars = lopar),
                   increase = update(mod1, newpars = hipar)))
  }, SIMPLIFY = FALSE)

xyplot.list(parsims, superpose = TRUE, layout = c(1,NA),
            main = "Simple parameter perturbation example") +
  layer(panel.lines(fitted(mod1), col = "grey", lwd = 2))
[Package hydromad version 0.9-18 Index]