Learn R Programming

TUWmodel (version 0.1-2)

TUWmodel: 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 time step 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, 
           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/day) (ncol = number of zones)
airt
vector/matrix of air temperatures (degC)
ep
vector/matrix of potential evapotranspiration (mm/day)
area
catchment area (km2) (vector if more zones)
param
vector of parameters:
  1. SCFsnow correction factor (0.9-1.5);
  2. DDFdegree day factor (0.0-5.0 mm/degC/day);
  3. Trthreshold temperature above which precipitation is rain (1.0-3.0 degC);
  4. T
incon
initial conditions for the model: SSM0 soil moisture (mm); SWE0 snow water equivalent (mm); SUZ0 initial value for fast (upper zone) response storage (mm); SLZ0 initial value for slow (lower zone) respon
itsteps
length of the output (if NULL all the time series are used)

Value

  • TUWmodel gives a vector of simulated runoff as q (m3/s), and the following vector/matrices:
    1. qzonessimulated runoff for each zone (m3/s);
    2. swesnow water equivalent (mm);
    3. q0surface runoff (m3/s);
    4. q1subsurface runoff (m3/s);
    5. q2baseflow (m3/s);
    6. rmoistrelative soil moisture (between 0 and 1);
    7. rainliquid precipitation (mm/day)
    8. snowsolid precipitation (mm/day)
    9. etaactual evapotranspiration (mm/day)

Details

No details for now.

Examples

Run this code
## 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 case (6 zones)
simDist <- TUWmodel(prec=P_Vils, airt=T_Vils, ep=PET_Vils, area=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)

Run the code above in your browser using DataLab