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:
-
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]; -
ssl
top 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")