IHACRES.CMD.model {hydromad}  R Documentation 
The Catchment Moisture Deficit (CMD) effective rainfall model for IHACRES. It is a conceptualtype model, where input rainfall is partitioned explicitly into drainage, evapotranspiration, and changes in catchment moisture.
cmd.sim(DATA, f, e, d, shape = 0, M_0 = d/2, return_state = FALSE)
DATA 
a

f 
CMD stress threshold as a proportion of 
e 
temperature to PET conversion factor. 
d 
CMD threshold for producing flow. 
shape 
defines form of the dU/dP relationship:

M_0 
starting CMD value. 
return_state 
to return state variables as well as the effective rainfall. 
The mass balance step is:
M[t] = M[t1]  P[t] + E_T[t] + U[t]
where M represents catchment moisture deficit (CMD), constrained below by 0 (the nominal fully saturated level). P is catchment areal rainfall, E_T is evapotranspiration, and U is drainage (effective rainfall). All are, typically, in units of mm per time step.
Rainfall effectiveness (i.e. drainage proportion) is a simple instantaneous function of the CMD, with a threshold at M = d. In the default linear form this is:
dU/dP = 1  min(1, M/d)
The trigonometric form is
dU/dP = 1  min(1, sin^2(pi M / 2d))
The power form is
dU/dP = 1  min(1, (M/d)^b)
The actual drainage each time step involves the integral of these relations.
Evapotranspiration is also a simple function of the CMD, with a threshold at M = f * d:
E_T[t] = e E[t] \min(1, \exp(2(1  M_f / (fd))))
Note that the evapotranspiration calculation is based on M_f, which is the CMD after precipitation and drainage have been accounted for.
cmd.sim
returns the modelled time series of effective rainfall,
or if return_state = TRUE
, a multivariate time series with named
columns U
(effective rainfall), CMD
and
ET
(evapotranspiration E_T).
Normally compiled C code is used for simulation, but if
return_state = TRUE
a slower implementation in R is used.
Felix Andrews felix@nfrac.org
Croke, B.F.W. and A.J. Jakeman (2004), A Catchment Moisture Deficit module for the IHACRES rainfallrunoff model, Environmental Modelling and Software, 19(1): 15.
Croke, B.F.W. and A.J. Jakeman (2005), Corrigendum to “A Catchment Moisture Deficit module for the IHACRES rainfallrunoff model” [Environ. Model. Softw. 19 (1) (2004) 15], Environmental Modelling and Software, 20(7): 977.
hydromad(sma = "cmd")
to work with models as objects (recommended).
## view default parameter ranges: str(hydromad.options("cmd")) data(Canning) x < cmd.sim(Canning[1:1000,], d = 200, f = 0.7, e = 0.166, return_state = TRUE) xyplot(x) data(HydroTestData) mod0 < hydromad(HydroTestData, sma = "cmd", routing = "expuh") mod0 ## simulate with some arbitrary parameter values mod1 < update(mod0, d = 200, f = 0.5, e = 0.1, tau_s = 10) ## plot results with state variables testQ < predict(mod1, return_state = TRUE) xyplot(cbind(HydroTestData[,1:2], cmd = testQ)) ## show effect of increase/decrease in each parameter parlist < list(d = c(50, 550), f = c(0.01, 3), e = c(0.01, 1.5)) parsims < mapply(val = parlist, nm = names(parlist), 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))