Implementation of the Soil Moisture Accounting module of the framework for hydrological modelling FUSE. This loss module is derived from the Fortran version of FUSE by Martyn Clark (2011).
fusesma.sim(DATA, mid, deltim, rferr_add = 0, rferr_mlt = 1, frchzne, fracten, maxwatr_1, percfrac, fprimqb, qbrate_2a, qbrate_2b, qb_prms, maxwatr_2, baserte, rtfrac1, percrte, percexp, sacpmlt, sacpexp, iflwrte, axv_bexp, sareamax, loglamb, tishape, qb_powr, fracstate0 = 0.25, absError = 10^(-4), relError = 10^(-4), StatesFluxes = FALSE)
DATA | This is a data.frame containing the observed time series (zoo objects). It is structured into three columns containing: precipitation (P), potential evapo-transpiration (E) and streamflow discharge (Q). |
---|---|
mid | This is the model identification number (see first column of |
deltim | This is the input time step (numeric value). By default deltim = 1 for daily steps. Other options: 1/24 (hourly time step), 1/(24*4) (15 min time step). |
rferr_add | Additive rainfall error, default is 0 (mm day-1). |
rferr_mlt | Multiplicative rainfall error, default is 1 (-). |
frchzne | Fraction of tension storage in recharge zone (-). |
fracten | Fraction total storage as tension storage (-). |
maxwatr_1 | Maximum total storage in upper soil layer (mm). |
percfrac | Fraction of percolation to tension storage in the lower layer (-). |
fprimqb | Fraction of storage in the first baseflow reservoir (-). |
qbrate_2a | Baseflow depletion rate in the first reservoir (day-1). |
qbrate_2b | Baseflow depletion rate in the second reservoir (day-1). |
qb_prms | Baseflow depletion rate (day-1). |
maxwatr_2 | Maximum total storage in lower soil layer (mm). |
baserte | Baseflow rate (mm day-1). |
rtfrac1 | Fraction of roots in the upper layer (-). |
percrte | Percolation rate (mm day-1). |
percexp | Percolation exponent (-). |
sacpmlt | Sacramento model percolation multiplier for dry soil layer (-). |
sacpexp | Sacramento model percolation exponent for dry soil layer (-). |
iflwrte | Interflow rate (mm day-1). |
axv_bexp | ARNO/VIC 'b' exponent (-). |
sareamax | Maximum saturated area (-). |
loglamb | Mean value of the log-transformed topographic index (m). |
tishape | Shape parameter for the topo index gamma distribution (-). |
qb_powr | Baseflow exponent (-). |
fracstate0 | Initial saturation of water storages, default is 0.25. |
absError | Absolute solver error, default is 10^(-4). |
relError | Relative solver error, default is 10^(-4). |
StatesFluxes | By default StatesFluxes = FALSE which means the function only output is the instantaneous runoff. If StatesFluxes=TRUE, the output also contains the list of fluxes and state variables. |
The function returns an array of simulated "instantaneous" discharges. If necessary, fuserouting.sim
can be run to obtain routed discharges using a two parameter Gamma distribution.
fusesma.sim() is a function to generate an ensemble of SOIL MOISTURE ACCOUNTING models. It is compatible with the HYDROMAD framework (see hydromad package: http://hydromad.catchment.org/). fusesma.sim() can simulate several model structures. The default list is modlist
contained in the data folder of this package. The parameter set varies depending on the selected model structure. Ranges of parameter values are in fusesma.ranges
. For more information on suggested parameter ranges see Clark et al. 2011. Also see GenerateFUSEParameters
. Flow can then be routed using the function fuserouting.sim
(which is based on the Gamma function) or any other routing function.
Clark M. P., SlaterA. G., Rupp D. E., Woods R. A., Vrugt J. A., Gupta H. V., Wagener T. and Hay L. E. (2008), Framework for Understanding Structural Errors (FUSE): A modular framework to diagnose differences between hydrological models, Water Resour. Res. 44 p. 91-94. Clark M. P., McMillan H. K., Collins D. B. G., Kavetski D. and Woods R. A. (2011), Hydrological field data from a modeller's perspective: Part 2: process-based evaluation of model hypotheses. Hydrological Processes, 25: 523-543. doi: 10.1002/hyp.7902
# NOT RUN { data(fuse_hydrological_timeseries) set.seed(123) parameters <- generateParameters(1) U <- fusesma.sim(fuse_hydrological_timeseries, 60, 1, parameters$rferr_add, parameters$rferr_mlt, parameters$frchzne, parameters$fracten, parameters$maxwatr_1, parameters$percfrac, parameters$fprimqb, parameters$qbrate_2a, parameters$qbrate_2b, parameters$qb_prms, parameters$maxwatr_2, parameters$baserte, parameters$rtfrac1, parameters$percrte, parameters$percexp, parameters$sacpmlt, parameters$sacpexp, parameters$iflwrte, parameters$axv_bexp, parameters$sareamax, parameters$loglamb, parameters$tishape, parameters$qb_powr) # }