TUWmodel {TUWmodel} | R Documentation |
Lumped hydrological model developed at the Vienna University of Technology for education purposes
Description
TUWmodel
is a lumped conceptual rainfall-runoff model, following the structure of the HBV model.
The model runs on a daily or shorter timestep and consists of a snow routine, a soil moisture routine and a flow routing routine.
See Parajka, J., R. Merz, G. Bloeschl (2007) Uncertainty and multiple objective calibration in regional water balance modelling: case study in 320 Austrian catchments, Hydrological Processes, 21, 435-446.
Usage
TUWmodel (prec, airt, ep, area=1,
param=c(1.2,1.2,2,-2,0,0.9,100,3.3,0.5,9,105,50,2,10,26.5),
incon=c(50,0,2.5,2.5), itsteps=NULL)
Arguments
prec |
vector/matrix of precipitation input [mm/timestep] ( |
airt |
vector/matrix of air temperatures [degC] |
ep |
vector/matrix of potential evapotranspiration [mm/timestep] |
area |
if more zones, vector of the percentage of area for each zone (or proportional to it, i.e., if the sum is different from 1, it will be rescaled to be 1) |
param |
vector/matrix of parameters (
|
incon |
vector/matrix of initial conditions for the model ( |
itsteps |
length of the output (if NULL all the time series are used) |
Details
More details about the model structure are given in the Appendix of
Parajka, J., R. Merz, G. Bloeschl (2007) Uncertainty and multiple objective calibration in regional water balance modelling: case study in 320 Austrian catchments, Hydrological Processes, 21, 435-446, doi:10.1002/hyp.6253.
An example of using TUWmodel
, including R scripts for automatic calibration, can be found in the Supplement of
Ceola, S., et al. (2015) Virtual laboratories: new opportunities for collaborative water science, Hydrology and Earth System Sciences, 19(4), 2101-2117, doi:10.5194/hess-19-2101-2015.
Value
TUWmodel
gives a vector of simulated runoff as q
[mm/timestep], and the following vector/matrices:
-
qzones
simulated runoff for each zone [mm/timestep]; -
q0
surface runoff [mm/timestep]; -
q1
subsurface runoff [mm/timestep]; -
q2
baseflow [mm/timestep]; -
rain
liquid precipitation [mm/timestep]; -
snow
solid precipitation [mm/timestep]; -
melt
snowmelt [mm/timestep]; -
moist
soil moisture [mm]; -
swe
snow water equivalent [mm]; -
eta
actual evapo-transpiration [mm/timestep]; -
suz
upper storage zone [mm]; -
slz
lower storage zone [mm];
Examples
## Load the data
data(example_TUWmodel)
## Simulate runoff and plot observed vs simulated series
## Lumped case (weighted means of the inputs)
simLump <- TUWmodel(prec=apply(P_Vils, 1, weighted.mean, w=areas_Vils),
airt=apply(T_Vils, 1, weighted.mean, w=areas_Vils),
ep=apply(PET_Vils, 1, weighted.mean, w=areas_Vils),
area=sum(areas_Vils),
param=c(1.02,1.70,2,0,-0.336,
0.934,121,2.52,
0.473,9.06,142,
50.1,2.38,10,25))
plot(as.Date(names(Q_Vils)), Q_Vils, type="l", xlab="", ylab="Discharges [mm/day]")
lines(as.Date(rownames(T_Vils)), simLump$q, col=2)
legend("topleft", legend=c("Observations","Simulations"), col=c(1,2), lty=1, bty="n")
plot(as.Date(rownames(SWE_Vils)), apply(SWE_Vils, 1, weighted.mean, w=areas_Vils),
type="l", xlab="", ylab="Snow Water Equivalent [mm]")
lines(as.Date(rownames(T_Vils)), simLump$swe, col=2)
## Distribute input case (6 zones)
simDist <- TUWmodel(prec=P_Vils, airt=T_Vils, ep=PET_Vils, area=areas_Vils/sum(areas_Vils),
param=c(1.02,1.70,2,0,-0.336,
0.934,121,2.52,
0.473,9.06,142,
50.1,2.38,10,25))
plot(as.Date(names(Q_Vils)), Q_Vils, type="l", xlab="", ylab="Discharges [mm/day]")
lines(as.Date(rownames(T_Vils)), simDist$q, col=2)
legend("topleft", legend=c("Observations","Simulations"), col=c(1,2), lty=1, bty="n")
plot(as.Date(rownames(SWE_Vils)), apply(SWE_Vils, 1, weighted.mean, w=areas_Vils),
type="l", xlab="", ylab="Snow Water Equivalent [mm]")
lines(as.Date(rownames(T_Vils)), apply(simDist$swe, 1, weighted.mean, w=areas_Vils), col=2)
## Distributed input and parameters case
parametri <- matrix(rep(c(1.02,1.70,2,0,-0.336,
0.934,121,2.52,
0.473,9.06,142,
50.1,2.38,10,25), 6), ncol=6)
parametri[2,] <- c(1.4, 1.7, 1.9, 2.2, 2.4, 3.0)
simDist2 <- TUWmodel(prec=P_Vils,
airt=T_Vils,
ep=PET_Vils,
area=areas_Vils/sum(areas_Vils),
param=parametri)
plot(as.Date(names(Q_Vils)), Q_Vils, type="l", xlab="", ylab="Discharges [mm/day]")
lines(as.Date(rownames(T_Vils)), simDist2$q, col=2)
legend("topleft", legend=c("Observations","Simulations"), col=c(1,2), lty=1, bty="n")