| TUWmodel_dual {TUWmodel} | R Documentation |
Lumped dual layer hydrological model developed at the Vienna University of Technology for education purposes
Description
TUWmodel_dual is a lumped conceptual rainfall-runoff model with dual representation of soil layer developed at the TUW,
following the structure of the HBV model. The dual soil layer consists of a skin soil layer which represents the layer observed
by satellite soil moisture sensors and a root zone soil storage which is identical with the original TUWmodel concept.
The model runs on a daily or shorter timestep and has similar structure as the original TUWmodel function.
More information about the dual layer concept and its implementation can be found in Parajka, J., V. Naeimi, G. Bloeschl
and J. Komma (2009) Matching ERS scatterometer based soil moisture patterns with simulations of a conceptual dual layer
hydrologic model over Austria, Hydrol. Earth Syst. Sci., 13, 259-271.
Usage
TUWmodel_dual (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,1,0.8,10),
incon=c(50,0,2.5,2.5,0), 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
Parajka, J., V. Naeimi, G. Bloeschl and J. Komma (2009) Matching ERS scatterometer based soil moisture patterns with simulations of a conceptual dual layer hydrologic model over Austria, Hydrol. Earth Syst. Sci., 13, 259-271.
Value
TUWmodel_dual gives a vector of simulated runoff as q [mm/timestep], and the following vector/matrices:
-
qzonessimulated runoff for each zone [mm/timestep]; -
q0surface runoff [mm/timestep]; -
q1subsurface runoff [mm/timestep]; -
q2baseflow [mm/timestep]; -
rainliquid precipitation [mm/timestep]; -
snowsolid precipitation [mm/timestep]; -
meltsnowmelt [mm/timestep]; -
moistsoil moisture [mm]; -
swesnow water equivalent [mm]; -
etaactual evapo-transpiration [mm/timestep]; -
suzupper storage zone [mm]; -
slzlower storage zone [mm]; -
ssltop soil skin layer storage [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_dual(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,1,0.8,10))
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_dual(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,1,0.8,10))
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,1,0.8,10), 6), ncol=6)
parametri[2,] <- c(1.4, 1.7, 1.9, 2.2, 2.4, 3.0)
simDist2 <- TUWmodel_dual(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")