L Is Flood User Manual
L Is Flood User Manual
European Commission
Directorate-General Joint Research Centre
Institute for Environment and Sustainability
Contact information
Address: Via E. Fermi, TP 261, 21020 Ispra (Va), Italy
E-mail: [email protected]
Tel.: + 39 0332 786 240
Fax: + 39 0332 786 653
http://ies.jrc.cec.eu.int
http://www.jrc.cec.eu.int
Legal Notice
Neither the European Commission nor any person acting on behalf of the
Commission is responsible for the use which might be made of this
publication.
(*) Certain mobile telephone operators do not allow access to 00 800 numbers or these calls may be billed.
JRC 44410
Printed in Italy
Disclaimer
Both the program code and this manual have been carefully inspected before
printing. However, no warranties, either expressed or implied, are made concerning
the accuracy, completeness, reliability, usability, performance, or fitness for any
particular purpose of the information contained in this manual, to the software
described in this manual, and to other material supplied in connection therewith. The
material is provided "as is". The entire risk as to its quality and performance is with
the user.
CONTENTS
1. Introduction ..............................................................................................................1
About LISFLOOD .....................................................................................................1
About this User Manual ............................................................................................1
2. Process descriptions ................................................................................................3
Overview...................................................................................................................3
Treatment of meteorological input variables.............................................................5
Rain and snow..........................................................................................................5
Frost index soil .........................................................................................................6
Interception...............................................................................................................7
Evaporation of intercepted water..............................................................................7
Treatment of built-up areas and water bodies ..........................................................8
Water available for infiltration and direct runoff ........................................................9
Water uptake by plant roots and transpiration........................................................10
Direct evaporation from the soil surface .................................................................11
Infiltration capacity..................................................................................................12
Preferential bypass flow .........................................................................................13
Actual infiltration and surface runoff .......................................................................13
Soil moisture redistribution .....................................................................................13
Groundwater...........................................................................................................15
Routing of surface runoff to channel.......................................................................16
Routing of sub-surface runoff to channel................................................................18
Channel routing ......................................................................................................18
Special simulation options ......................................................................................19
3. Installation of the LISFLOOD model ......................................................................21
System requirements..............................................................................................21
Installation on Windows systems............................................................................21
Installation on Linux systems..................................................................................22
Running the model .................................................................................................22
4. Model setup: input files ..........................................................................................23
Input maps..............................................................................................................23
Map location attributes and distance units..........................................................25
Role of “mask” and “channels” maps ..................................................................26
Naming of meteorological variable maps............................................................26
Input tables .............................................................................................................28
Organisation of input data ......................................................................................28
Generating input base maps ..................................................................................29
5. LISFLOOD setup: the settings file..........................................................................31
Layout of the settings file........................................................................................31
lfuser and and lfbinding elements .......................................................................32
Variables in the lfbinding element .......................................................................35
Variables in the lfuser element............................................................................37
lfoption element...................................................................................................37
Viewing available options....................................................................................38
Defining options ..................................................................................................38
6. Preparing the settings file.......................................................................................41
Time-related constants ...........................................................................................41
Parameters related to evapo(transpi)ration and interception .................................43
Parameters related to snow and frost.....................................................................44
Infiltration parameters.............................................................................................46
Groundwater parameters........................................................................................47
Routing parameters ................................................................................................47
Parameters related to numerics .............................................................................48
File paths ................................................................................................................49
Prefixes of meteo and vegetation related variables................................................50
Initial conditions ......................................................................................................52
Running the model .................................................................................................54
Using options..........................................................................................................55
7. Initialisation of LISFLOOD......................................................................................59
Introduction.............................................................................................................59
An example.............................................................................................................59
Setting up a LISFLOOD run with warm-up period ..................................................60
Initialisation of the lower groundwater zone ...........................................................61
Lower groundwater zone: steady state storage......................................................61
Steady-state storage in practice .............................................................................64
Procedure 1: prior estimate of average recharge ...............................................64
Procedure 2: use pre-run to calculate average recharge....................................65
Checking the lower zone initialisation .................................................................65
Using the ‘end’ maps of a previous run as initial conditions ...................................66
Summary of LISFLOOD initialisation procedure.....................................................67
8. Output generated by LISFLOOD............................................................................69
Default LISFLOOD output ......................................................................................69
Additional output.....................................................................................................70
References.................................................................................................................77
• Flood forecasting
• Assessing the effects of river regulation measures
• Assessing the effects of land-use change
• Assessing the effects of climate change
Although a wide variety of existing hydrological models are available that are suitable
for each of these individual tasks, few single models are capable of doing all these
jobs. Besides this, our objective requires a model that is spatially distributed and –at
least to a certain extent- physically-based. Also, the focus of our work is on European
catchments. Since several databases exist that contain pan-European information on
soils (King et al., 1997; Wösten et al., 1999), land cover (CEC, 1993), topography
(Hiederer & de Roo, 2003) and meteorology (Rijks et al., 1998), it would be
advantageous to have a model that makes the best possible use of these data.
Finally, the wide scope of our objective implies that changes and extensions to the
model will be required from time to time. Therefore, it is essential to have a model
code that can be easily maintained and modified. LISFLOOD has been specifically
developed to satisfy these requirements. The model is designed to be applied across
a wide range of spatial and temporal scales. LISFLOOD is grid-based, and
applications so far have employed grid cells of as little as 100 metres for medium-
sized catchments, up to 5000 metres for modelling the whole of Europe. Long-term
water balance can be simulated (using a daily time step), as well as individual flood
events (using hourly time intervals, or even smaller). The output of a “water balance
run” can be used to provide the initial conditions of a “flood run”. Although the
model’s primary output product is channel discharge, all internal rate and state
variables (soil moisture, for example) can be written as output as well. In addition, all
output can be written as grids, or time series at user-defined points or areas. The
user has complete control over how output is written, thus minimising any waste of
disk space or CPU time.
About LISFLOOD
The LISFLOOD model is implemented in the PCRaster Environmental Modelling
language (Wesseling et al., 1996), wrapped in a Python based interface. PCRaster is
a raster GIS environment that has its own high-level computer language, which
allows the construction of iterative spatio-temporal environmental models. The
Python wrapper of LISFLOOD enables the user to control the model inputs and
outputs and the selection of the model modules. This approach combines the power,
relative simplicity and maintainability of code written in the the PCRaster
Environmental Modelling language and the flexibility of Python. LISFLOOD runs on
any operating for which Python and PCRaster are available. Currently these include
32-bits Windows (e.g. Windows XP, Vista) and a number of Linux distributions.
1
de Roo et. al., 2003). The scope of this document is to give model users all the
information that is needed for successfully using LISFLOOD. Chapter 2 explains the
theory behind the model, including all model equations. The remaining chapters
cover all practical aspects of working with LISFLOOD. A series of Annexes at the end
of this document describe some optional features that can be activated when running
the model. Most model users will not need these features (which are disabled by
default), and for the sake of clarity we therefore decided to keep their description out
of the main text. The current document does not cover the calculation of the potential
evapo(transpi)ration rates that are needed as input to the model. A separate pre-
processor (LISVAP) exists that calculates these variables from standard (gridded)
meteorological observations. LISVAP is documented in a separate volume (van der
Knijff, 2006).
2
2. Process descriptions
Overview
Figure 2.1 gives an overview of the structure of the LISFLOOD model. Basically, the
model is made up of the following components:
The processes that are simulated by the model include snow melt (not shown in the
Figure), infiltration, interception of rainfall, leaf drainage, evaporation and water
uptake by vegetation, surface runoff, preferential flow (bypass of soil layer),
exchange of soil moisture between the two soil layers and drainage to the
groundwater, sub-surface and groundwater flow, and flow through river channels.
Each of these processes is described in more detail in the following.
3
Figure 2.1 Overview of the LISFLOOD model. P = precipitation; Int = interception;
EWint = evaporation of intercepted water; Dint = leaf drainage; ESa = evaporation from
soil surface; Ta = transpiration (water uptake by plant roots); INFact = infiltration; Rs =
surface runoff; D1,2 = drainage from top- to subsoil; D2,gw = drainage from subsoil to
upper groundwater zone; Dpref,gw = preferential flow to upper groundwater zone; Duz,lz
= drainage from upper- to lower groundwater zone; Quz = outflow from upper
groundwater zone; Ql = outflow from lower groundwater zone; Dloss = loss from lower
groundwater zone. Note that snowmelt is not included in the Figure (even though it is
simulated by the model).
4
Treatment of meteorological input variables
The meteorological conditions provide the driving forces behind the water balance.
LISFLOOD uses the following meteorological input variables:
Both precipitation and evaporation are internally converted from intensities [mm day-
1
] to quantities per time step [mm] by multiplying them with the time step, Δt (in days).
For the sake of consistency, all in- and outgoing fluxes will also be described as
quantities per time step [mm] in the following, unless stated otherwise. ET0, EW0
and ES0 can be calculated using standard meteorological observations. To this end
a dedicated pre-processing application has been developed (LISVAP), which is
documented in a separate volume (van der Knijff, 2006).
M = Cm (Tavg − Tm ) (2-1)
where M is the rate of snowmelt, Tavg is the average daily temperature, Tm is some
critical temperature and Cm is a degree-day factor [mm °C-1 day-1]. Speers et al.
(1979) developed an extension of this equation which accounts for accelerated
snowmelt that takes place when it is raining (cited in Young, 1985):
where R is the daily rainfall and both M and R are expressed in cm (rather than mm).
The equation is supposed to apply when rainfall is greater than 3 cm in 24 hours.
Moreover, although the equation is reported to work sufficiently well in forested
areas, it is not valid in areas that are above the tree line, where radiation is the main
energy source for snowmelt). Currently LISFLOOD uses a variation on the equation
of Speers et al. The modified equation simply assumes that for each mm of rainfall,
the rate of snowmelt increases with 1% (compared to a ‘dry’ situation). This yields the
following equation:
1
Note that the model needs daily average temperature values, even if the model is run on a
smaller time interval (e.g. hourly). This is because the routines for snowmelt and soil freezing
are use empirical relations which are based on daily temperature data. Just as an example,
feeding hourly temperature data into the snowmelt routine can result in a gross
overestimation of snowmelt. This is because even on a day on which the average
temperature is below Tm (no snowmelt), the instantaneous (or hourly) temperature may be
higher for a part of the day, leading to unrealistically high simulated snowmelt rates.
5
where M is the snowmelt per time step [mm], R is rainfall (not snow!) intensity [mm
day-1], and Δt is the time interval [days]. Tm has a value of 0 °C, and Cm is set to a
default value of 4.5 mm °C-1 day-1. However, it should be stressed that the value of
Cm can actually vary greatly both in space and time (e.g. see Martinec et al., 1998).
Therefore, in practice this parameter is often treated as a calibration constant. The
amount of snowmelt can never exceed the actual snow cover that is present on the
surface.
For large pixel sizes, there may be considerable sub-pixel heterogeneity in snow
accumulation and melt, which is a particular problem if there are large elevation
differences within a pixel. Because of this, snow melt and accumulation are modelled
separately for 3 separate elevation zones, which are defined at the sub-pixel level.
This is shown in Figure 2.2. The division in elevation zones is based on the maximum
elevation difference within a pixel, Δz. Assuming that the cumulative elevation within
each pixel follows a linear distribution, 3 elevation zones A, B, and C are defined.
Each zone occupies one third of the pixel surface. Assuming further that Tavg is valid
for the average pixel elevation, average temperature is extrapolated to the centroids
of the lower (A) and upper (C) elevation zones, using a fixed temperature lapse rate,
L, of 0.0065 °C per meter elevation difference. Snow, snowmelt and snow
accumulation are subsequently modelled separately for each elevation zone,
assuming that temperature can be approximated by the temperature at the centroid
of each respective zone.
Figure 2.2 Definition of sub-pixel elevation zones for snow accumulation and melt
modelling. Snowmelt and accumulation calculations in each zone are based on
elevation (and derived temperature) in centroid of each zone. L is the temperature
lapse rate.
6
index F is calculated. The equation is based on Molnau & Bissell (1983, cited in
Maidment 1993), and adjusted for variable time steps. The rate at which the frost
index changes is given by:
dF
= −(1 − A f ) F − Tav ⋅ e −0.04⋅K ⋅ds / wes (2-4)
dt
dF
F (t ) = F (t − 1) + Δt (2-5)
dt
Interception
Interception is estimated using the following storage-based equation (Aston, 1978,
Merriam, 1960):
where Int [mm] is the interception per time step, Smax [mm] is the maximum
interception, R is the rainfall intensity [mm day-1] and the factor k accounts for the
density of the vegetation. Smax is calculated using an empirical equation (Von
Hoyningen-Huene, 1981):
where LAI is the average Leaf Area Index [m2 m-2] of each model element (pixel). k is
estimated as:
The value of Int can never exceed the interception storage capacity, which is defined
as the difference between Smax and the accumulated amount of water that is stored
as interception, Intcum.
7
EWmax = EW 0 ⋅ [1 − exp(−κ gb ⋅ LAI )]Δt (2-9)
where EW0 is the potential evaporation rate from an open water surface [mm day-1],
and EWmax is in [mm] per time step. Constant κgb is the extinction coefficient for global
solar radiation [-]. Since evaporation is limited by the amount of water stored on the
leaves, the actual amount of evaporation from the interception store equals:
where EWint is the actual evaporation from the interception store [mm] per time step,
and EW0 is the potential evaporation rate from an open water surface [mm day-1]
It is assumed that on average all water in the interception store (Intcum) will have
evaporated or fallen to the soil surface as leaf drainage within one day. Leaf drainage
is therefore modelled as a linear reservoir with a time constant (or residence time) of
one day, i.e:
1
Dint = ⋅ Intcum Δt (2-11)
Tint
where Dint is the amount of leaf drainage per time step [mm] and Tint is a time
constant for the interception store [days], which is set to 1 day.
1. Any water that reaches the surface is added directly to surface runoff
2. The storage capacity of the soil is zero (i.e. no soil moisture storage in the
direct runoff fraction)
3. There is no groundwater storage
The same assumptions are made for open water bodies (e.g. lakes), which should be
included in fdr (large lakes that are in direct connection with major river channels can
be modelled using LISFLOOD’s lake option, which is described in Annex 5 of this
manual). Unless stated otherwise, the description of all soil- and groundwater-related
processes below (evaporation, transpiration, infiltration, preferential flow, soil
moisture redistribution and groundwater flow) are valid for the permeable domain of
each pixel only. However, if you activate any of LISFLOOD’s options for writing these
internal model fluxes to timeseries or maps (described in Chapter 8), the model will
report the pixel-average fluxes, which are simply the fluxes as described in this
manual, multiplied by the permeable fraction (1- fdr). Figure 2.3 illustrates this, using
the water uptake by plant roots as an example.
8
Figure 2.3 Simulation of impermeable areas in LISFLOOD. In this example, water
uptake by plant roots (transpiration, Ta ) is only simulated in the permeable fraction of
the pixel (1-fdr), whereas it is zero in the direct runoff fraction (fdr). Pixel-average
fluxes (which are reported by the model as output) are calculated by multiplying by
the permeable fraction.
where:
Since no infiltration can take place in each pixel’s ‘direct runoff fraction’, direct runoff
is calculated as:
Rd = f dr ⋅ Wav (2-13)
where Rd is in [mm] per time step. Note here that Wav is valid for the permeable
fraction only, whereas Rd is valid for the direct runoff fraction.
9
Water uptake by plant roots and transpiration
Water uptake and transpiration by vegetation and direct evaporation from the soil
surface are modelled as two separate processes. The approach used here is largely
based on Supit et al. (1994) and Supit & Van Der Goot (2000). The maximum
transpiration per time step [mm] is given by:
where ET0 is the potential (reference) evapotranspiration rate [mm day-1], and kcrop is
a crop coefficient. kcrop is 1 for most vegetation types, except for some excessively
transpiring crops like sugarcane. Note that the energy that has been ‘consumed’
already for the evaporation of intercepted water is simply subtracted here in order to
respect the overall energy balance. The actual transpiration rate is reduced when
the amount of moisture in the soil is small. In the model, a reduction factor is applied
to simulate this effect:
( w1 − wwp1 )
rWS = (2-15)
( wcrit1 − wwp1 )
where w1 is the amount of moisture in the upper soil layer [mm], wwp1 [mm] is the
amount of soil moisture at wilting point (pF 4.2) and wcrit1 [mm] is the amount of
moisture below which water uptake is reduced and plants start closing their stomata.
The critical amount of soil moisture is calculated as:
where wfc1 [mm] is the amount of soil moisture at field capacity and p is the soil water
depletion fraction. RWS varies between 0 and 1: negative values and values greater
than 1 are truncated to 0 and 1, respectively. p represents the fraction of soil
moisture between wfc1 and wwp1 that can be extracted from the soil without reducing
the transpiration rate. Its value is a function of both vegetation type and the potential
evapotranspiration rate. The procedure to estimate p is described in detail in Supit &
Van Der Goot (2003). Figure 2.4 further illustrates the relation between RWS, w, wcrit,
wfc, wwp and p.
10
Figure 2.4 Reduction of transpiration in case of water stress. Rws decreases linearly
to zero between wcrit and wwp.
The actual transpiration Ta is now calculated as:
Transpiration is set to zero when the soil is frozen (i.e. when frost index F exceeds its
critical threshold). The amount of moisture in the upper soil layer is updated after the
transpiration calculations:
w1 = w1 − Ta (2-18)
where ES0 is the potential evaporation rate from bare soil surface [mm day-1]. The
actual evaporation from the soil mainly depends on the amount of soil moisture near
the soil surface: evaporation decreases as the topsoil is drying. In the model this is
simulated using a reduction factor which is a function of the number of days since the
last rain storm (Stroosnijder, 1987, 1982):
11
ES a = ES max ⋅ ( Dslr − Dslr − 1) (2-20)
The variable Dslr represents the number of days since the last rain event. Its value
accumulates over time: if the amount of water that is available for infiltration (Wav)
remains below a critical threshold it increases by an amount of Δt [days] for each
time step. It is reset to 1 only if the critical amount of water is exceeded2. The actual
soil evaporation is always the smallest value out of the result of the equation above
and the available amount of moisture in the soil, i.e.:
where w1 [mm] is the amount of moisture in the upper soil layer and wres1 [mm] is the
residual amount of soil moisture. Like transpiration, direct evaporation from the soil is
set to zero if the soil is frozen. The amount of moisture in the upper soil layer is
updated after the evaporation calculations:
w1 = w1 − ES a (2-22)
Infiltration capacity
The infiltration capacity of the soil is estimated using the widely-used Xinanjiang (also
known as VIC/ARNO) model (e.g. Zhao & Lui, 1995; Todini, 1996). This approach
assumes that the fraction of a grid cell that is contributing to surface runoff (read:
saturated) is related to the total amount of soil moisture, and that this relationship can
be described through a non-linear distribution function. For any grid cell, if w1 is the
total moisture storage in the upper soil layer and ws1 is the maximum storage, the
corresponding saturated fraction As is approximated by the following distribution
function:
w1 b
As = 1 − (1 − ) (2-23)
ws1
where ws1 and w1 are the maximum and actual amounts of moisture in the upper soil
layer, respectively [mm], and b is an empirical shape parameter. In the LISFLOOD
implementation of the Xinanjiang model, As is defined as a fraction of the permeable
fraction of each pixel (i.e. as a fraction of (1-drf)). The infiltration capacity INFpot [mm]
is a function of ws and As:
b +1
w w
INFpot = s1 − s1 [1 − (1 − As ) b
] (2-24)
b +1 b +1
Note that the shape parameter b is related to the heterogeneity within each grid cell.
For a totally homogeneous grid cell b approaches zero, which reduces the above
equations to a simple ‘overflowing bucket’ model.
2
In the LISFLOOD settings file this critical amount is currently expressed as an intensity [mm
day-1]. This is because the equation was originally designed for a daily time step only.
Because the current implementation will likely lead to DSLR being reset too frequently, the
exact formulation may change in future versions (e.g. by keeping track of the accumulated
available water of the last 24 hours).
12
Preferential bypass flow
For the simulation of preferential bypass flow –i.e. flow that bypasses the soil matrix
and drains directly to the groundwater- no generally accepted equations exist.
Because ignoring preferential flow completely will lead to unrealistic model behaviour
during extreme rainfall conditions, a very simple approach is used in LISFLOOD.
During each time step, a fraction of the water that is available for infiltration is added
to the groundwater directly (i.e. without first entering the soil matrix). It is assumed
that this fraction is a power function of the relative saturation of the topsoil, which
results in an equation that is somewhat similar to the excess soil water equation used
in the HBV model (e.g. Lindström et al., 1997):
w1 c pref
D pref , gw = Wav ( ) (2-25)
ws1
where Dpref,gw is the amount of preferential flow per time step [mm], Wav is the
amount of water that is available for infiltration, and cpref is an empirical shape
parameter. fdr is the ‘direct runoff fraction’ [-], which is the fraction of each pixel that is
made up by urban area and open water bodies (i.e. preferential flow is only simulated
in the permeable fraction of each pixel) . The equation results in a preferential flow
component that becomes increasingly important as the soil gets wetter.
where Rd is the direct runoff (generated in the pixel’s ‘direct runoff fraction’). If the soil
is frozen (F > critical threshold) no infiltration takes place. The amount of moisture in
the upper soil layer is updated after the infiltration calculations:
w1 = w1 + INFact (2-28)
∂h(θ )
q = − K (θ )[ − 1] (2-29)
∂z
where q [mm day-1] is the flow rate out of the soil (e.g. upper soil layer, lower soil
layer); K(θ) [mm day-1] is the hydraulic conductivity (as a function of the volumetric
13
moisture content of the soil, θ [mm3 mm-3]) and ∂h(θ ) / ∂z is the matric potential
gradient. If we assume a matric potential gradient of zero, the equation reduces to:
q = K (θ ) (2-30)
This implies a flow that is always in downward direction, at a rate that equals the
conductivity of the soil. The relationship between hydraulic conductivity and soil
moisture status is described by the Van Genuchten equation (van Genuchten, 1980),
here re-written in terms of mm water slice, instead of volume fractions:
2
1/ 2 ⎧ ⎡ 1/ m m
⎤ ⎫
⎛ w − wr ⎞ ⎪ ⎛ w − wr ⎞ ⎪
K ( w) = K s ⎜⎜ ⎟⎟ ⎨1 − ⎢1 − ⎜⎜ ⎟⎟ ⎥ ⎬ (2-31)
⎝ ws − wr ⎠ ⎪⎩ ⎢⎣ ⎝ ws − wr ⎠ ⎥⎦ ⎪⎭
where Ks is the saturated conductivity of the soil [mm day-1], and w, wr and ws are the
actual, residual and maximum amounts of moisture in the soil respectively (all in
[mm]). Parameter m is calculated from the pore-size index, λ (which is related to soil
texture):
λ
m= (2-32)
λ +1
For large values of Δt (e.g. 1 day) the above equation often results in amounts of
outflow that exceed the available soil moisture storage, i.e:
In order to solve the soil moisture equations correctly an iterative procedure is used.
At the beginning of each time step, the conductivities for both soil layers [K1(w1),
K2(w2)] are calculated using the Van Genuchten equation. Multiplying these values
with the time step and dividing by the available moisture gives a Courant-type
numerical stability indicator for each respective layer:
K1 ( w1 ) ⋅ Δt
C1 = (2-34a)
w1 − wr1
K ( w ) ⋅ Δt
C2 = 2 2 (2-34b)
w2 − wr 2
A Courant number that is greater than 1 implies that the calculated outflow exceeds
the available soil moisture, resulting in loss of mass balance. Since we need a stable
solution for both soil layers, the ‘overall’ Courant number for the soil moisture routine
is the largest value out of C1 and C2:
In principle, rounding Csoil up to the nearest integer gives the number sub-steps
needed for a stable solution. In practice, it is often preferable to use a critical Courant
number that is lower than 1, because high values can result in unrealistic ‘jumps’ in
the simulated soil moisture pattern when the soil is near saturation (even though
mass balance is preserved). Hence, making the critical Courant number a user-
defined value Ccrit, the number of sub-steps becomes:
14
Csoil
SubSteps = roundup( ) (2-36)
Ccrit
Δt
Δ' t = (2-37)
SubSteps
In brief, the iterative procedure now involves the following steps. First, the number of
sub-steps and the corresponding sub-time-step are computed as explained above.
The amounts of soil moisture in the upper and lower layer are copied to temporary
variables w’1 and w’2. Two variables, D1,2 (flow from upper to lower soil layer) and
D2,gw (flow from lower soil layer to groundwater) are initialized (set to zero). Then, for
each sub-step, the following sequence of calculations is performed:
2. compute flux from upper to lower soil layer for this sub-step (D’1,2, can never
exceed storage capacity in lower layer):
3. compute flux from lower soil layer to groundwater for this sub-step (D’2,gw, can
never exceed available water in lower layer):
If the soil is frozen (F > critical threshold), both D1,2 and D2,gw are set to zero. After the
iteration loop, the amounts of soil moisture in both layers are updated as follows:
w1 = w1 − D1, 2 (2-40)
w2 = w2 + D1, 2 − D2, gw (2-41)
Groundwater
Groundwater storage and transport are modelled using two parallel linear reservoirs,
similar to the approach used in the HBV-96 model (Lindström et al., 1997). The upper
zone represents a quick runoff component, which includes fast groundwater and
subsurface flow through macro-pores in the soil. The lower zone represents the slow
groundwater component that generates the base flow. The outflow from the upper
zone to the channel, Quz [mm] equals:
1
Quz = ⋅ UZ Δt (2-42)
Tuz
15
where Tuz is a reservoir constant [days] and UZ is the amount of water that is stored
in the upper zone [mm. Similarly, the outflow from the lower zone is given by:
1
Qlz = ⋅ LZ Δt (2-43)
Tlz
Here, Tlz is again a reservoir constant [days], and LZ is the amount of water that is
stored in the lower zone [mm]. The values of both Tuz and Tlz are obtained by
calibration. The upper zone also provides the inflow into the lower zone. For each
time step, a fixed amount of water percolates from the upper to the lower zone:
Here, GWperc [mm day-1] is a user-defined value that can be used as a calibration
constant. For many catchments it is quite reasonable to treat the lower groundwater
zone as a system with a closed lower boundary (i.e. water is either stored, or added
to the channel). However, in some cases the closed boundary assumption makes it
impossible to obtain realistic simulations. Because of this, it is possible to treat of
fixed fraction of Qlz as a loss, Dloss, out of the lower zone, i.e.:
The loss fraction, floss [-], equals 0 for a completely closed lower boundary. If floss is
set to 1, all outflow from the lower zone is treated as a loss. Water that flows out of
the lower zone through Dloss is quite literally ‘lost’ forever. Physically, the loss term
could represent water that is either lost to deep groundwater systems (that do not
necessarily follow catchment boundaries), or even groundwater extraction wells.
When using the model, it is suggested to use foss with some care; start with a value of
zero, and only use any other value if it is impossible to get satisfactory results by
adjusting the other calibration parameters.
At each time step, the amounts of water in the upper and lower zone are updated for
the in- and outgoing fluxes, i.e.:
Note that these equations are again valid for the permeable fraction of the pixel only:
storage in the direct runoff fraction equals 0 for both UZ and LZ.
∂Qsr ∂Asr
+ = qsr (2-48)
∂x ∂t
16
where Qsr is the surface runoff [m3 s-1], Asr is the cross-sectional area of the flow [m2]
and qsr is the amount of lateral inflow per unit flow length [m2 s-1]. The momentum
equation is defined as:
ρ gAsr ( S0 − S f ) = 0 (2-49)
where ρ is the density of the flow [kg m-3], g is the gravity acceleration [m s-2], S0 is
the topographical gradient and Sf is the friction gradient. From the momentum
equation it follows that S0= Sf, which means that for the kinematic wave equations it
is assumed that the water surface is parallel to the topographical surface. The
continuity equation can also be written in the following finite-difference form (please
note that for the sake of readability the ‘sr’ subscripts are omitted here from Q, A and
q):
where j is a time index and i a space index (such that i=1 for the most upstream cell,
i=2 for its downstream neighbour, etcetera). The momentum equation can also be
expressed as (Chow et al., 1988):
βk
Asr = α k ,sr ⋅ Qsr (2-51)
Substituting the right-hand side of this expression in the finite-difference form of the
continuity equation gives a nonlinear implicit finite-difference solution of the kinematic
wave:
Δt j +1 j +1 β k Δt j +1 βk qij++11 + qij+1
Qi +1 + α k (Qi +1 ) = Qi + α k (Qi +1 ) + Δt (
j
) (2-52)
Δx Δx 2
If αk,sr and βk are known, this non-linear equation can be solved for each pixel and
during each time step using an iterative procedure. This numerical solution scheme is
available as a built-in function in the PCRaster software. The coefficients αk,sr and βk
are calculated by substituting Manning's equation in the right-hand side of Equation
2-51:
2
n ⋅ Psr 3 3 5 3
Asr = ( ) ⋅ Qsr 5 (2-53)
S0
2
n ⋅ Psr 3 0.6
α k ,sr = ( ) ; β k = 0.6 (2-54)
S0
At present, LISFLOOD uses values for αk,sr which are based on a static (reference)
flow depth, and a flow width that equals the pixel size, Δx. For each time step, all
runoff that is generated (Rs) is added as side-flow (qsr). For each flowpath, the routing
stops at the first downstream pixel that is part of the channel network. In other words,
17
the routine only routes the surface runoff to the nearest channel; no runoff through
the channel network is simulated at this stage (runoff- and channel routing are
completely separated).
Channel routing
Flow through the channel is simulated using the kinematic wave equations. The basic
equations and the numerical solution are identical to those used for the surface runoff
routing:
∂Qch ∂Ach
+ = qch (2-55)
∂x ∂t
where Qch is the channel discharge [m3 s-1], Ach is the cross-sectional area of the flow
[m2] and qch is the amount of lateral inflow per unit flow length [m2 s-1]. The
momentum equation then becomes:
18
ρ gAch ( S0 − S f ) = 0 (2-56)
where S0 now equals the gradient of the channel bed, and S0= Sf. As with the surface
runoff, values for parameter αk,ch are estimated using Manning’s equation:
2
n ⋅ Pch 3 0.6
α k ,ch = ( ) ; β k = 0.6 (2-57)
S0
At present, LISFLOOD uses values for αk,ch which are based on a static (reference)
channel flow depth (half bankfull) and measured channel dimensions. The term qch
(sideflow) now represents the runoff that enters the channel per unit channel length:
Here, Qsr, Quz and Qlz denote the contributions of surface runoff, outflow from the
upper zone and outflow from the lower zone, respectively. Qin is the inflow from an
external inflow hydrograph; by default its value is 0, unless the ‘inflow hydrograph’
option is activated (see Annex 2). Qres is the water that flows out of a reservoir into
the channel; by default its value is 0, unless the ‘reservoir’ option is activated (see
Annex 1). Qsr, Quz, Qlz, Qin and Qres are all expressed in [m3] per time step. Lch is the
channel length [m], which may exceed the pixel size (Δx) in case of meandering
channels. The kinematic wave channel routing can be run using a smaller time-step
than the over simulation timestep, Δt, if needed.
19
20
3. Installation of the LISFLOOD model
System requirements
Currently LISFLOOD is available on both Linux and 32-bit Windows systems. Either
way, the model requires that a recent version of the PCRaster software is available,
or at least PCRaster’s ‘pcrcalc’ application and all associated libraries. LISFLOOD
versions October 3 2007 and later require ‘pcrcalc’ version October 2, 2007, or more
recent. Older ‘pcrcalc’ versions will either not work at all, or they might produce
erroneous results. Unless you are using a ‘sealed’ version of LISFLOOD (i.e. a
version in which the source code is made unreadable), you will also need a licensed
version of ‘pcrcalc’. For details on how to install PCRaster we refer to the PCRaster
documentation.
<mastercode>d:\Lisflood\beta\mastercode\lisflood.xml</mastercode>
<lfconfig>
</lfconfig>
The lisflood executable is a command-line application which can be called from the
command prompt (‘DOS’ prompt). To make life easier you may include the full path
to ‘lisflood.exe’ in the ’Path’ environment variable. In Windows XP you can do this by
selecting ‘settings’ from the ‘Start’ menu; then go to ‘control panel’/’system’ and go to
the ‘advanced’ tab. Click on the ‘environment variables’ button. Finally, locate the
21
‘Path’ variable in the ‘system variables’ window and click on ‘Edit’ (this requires local
Administrator privileges).
http://www.python.org/
The installation process is largely identical to the Windows procedure: unzip the
contents of ‘lisflood_llinux.zip’ to an empty directory. Check if the file ‘lisflood’ is
executable. If not, make it executable using:
Then update the paths in the configuration file. The configuration file will look
something like this:
<lfconfig>
</lfconfig>
switches:
-s : keep temporary script after simulation
22
4. Model setup: input files
In the current version of LISFLOOD, all model input is provided as either maps (grid
files in PCRaster format) or tables. This chapter describes all the data that are
required to run the model. Files that are specific to optional LISFLOOD features (e.g.
inflow hydrographs, reservoirs) are not listed here; they are described in the
documentation for each option.
Input maps
All input maps roughly fall into any of the following six categories:
All maps that are needed to run the model are listed in the following table3:
3
The file names listed in the table are not obligatory. However, it is suggested to stick to the
default names suggested in the table. This will make both setting up the model for new
catchments as well as upgrading to possible future LISFLOOD versions much easier.
23
Table 4.1 LISFLOOD input maps (continued on next page)
GENERAL
Map Default name Description
MaskMap area.map Boolean map that defines model boundaries
TOPOGRAPHY
Map Default name Description
Ldd ldd.map local drain direction map (with value 1-9); this file
contains flow directions from each cell to its
steepest downslope neighbour. Ldd directions
are coded according to the following diagram:
24
Table 4.1 LISFLOOD input maps (continued from previous page)
CHANNEL GEOMETRY
Map Default name Description
Channels chan.map Map with Boolean 1 for all channel pixels, and
Boolean 0 for all other pixels on MaskMap
ChanGrad changrad.map Channel gradient [m m-1]
ChanMan chanman.map Manning’s roughness coefficient for channels
ChanLength chanleng.map Channel length [m] (can exceed grid size, to
account for meandering rivers)
ChanBottomWidth chanbw.map Channel bottom width [m].
ChanSdXdY chans.map Channel side slope [m m-1] Important: currently
defined as horizontal distance divided by vertical
distance (dx/dy); this may be confusing because
slope is usually defined the other way round (i.e.
dy/dx)!!
ChanDepthThreshold chanbnkf.map Bankfull channel depth [m]
METEOROLOGICAL VARIABLES
Map Default prefix Description
PrecipitationMaps pr Precipitation rate [mm day-1]
TavgMaps ta Average daily temperature [°C]
E0Maps e Daily potential evaporation rate, free water
surface [mm day-1]
ES0Maps es Daily potential evaporation rate, bare soil
[mm day-1]
ET0Maps et Daily potential evapotranspiration rate,
reference crop [mm day-1]
DEVELOPMENT OF VEGETATION OVER TIME
Map Default prefix Description
LAIMaps lai Pixel-average Leaf Area Index [m2 m-2]
DEFINITION OF INPUT/OUTPUT TIMESERIES
Map Default name Description
Gauges outlets.map Nominal map with locations at which discharge
timeseries are reported (usually correspond to
gauging stations)
Sites sites.map Nominal map with locations (individual pixels or
areas) at which timeseries of intermediate state
and rate variables are reported (soil moisture,
infiltration, snow, etcetera)
25
Table 4.2 Optional maps that define grid size
Both maps should be stored in the same directory where all other input maps are.
The values on both maps may vary in space. A limitation is that a pixel is always
represented as a square, so length and width are considered equal (no rectangles).
In order to tell LISFLOOD to ignore the default location attributes and use the maps
instead, you need to activate the special option “gridSizeUserDefined”, which
involves adding the following line to the LISFLOOD settings file:
LISFLOOD settings files and the use of options are explained in detail in Chapter 5 of
this document.
LISFLOOD can handle two types of stacks. First, there are regular stacks, in which a
map is defined for each time step. For instance, the following 10-step stack is a
regular stack:
26
t map name
1 pr000000.001
2 pr000000.002
3 pr000000.003
4 pr000000.004
5 pr000000.005
6 pr000000.006
7 pr000000.007
8 pr000000.008
9 pr000000.009
10 pr000000.010
t map name
1 pr000000.001
2 -
3 -
4 pr000000.004
5 -
6 -
7 pr000000.007
8 -
9 -
10 -
Here, maps are defined only for time steps 1, 4 and 7. In this case, LISFLOOD will
use the map values of pr000000.001 during time steps 1, 2 and 3, those of
pr000000.004 during time steps 4, 5 and 6, and those of pr000000.007 during time
steps 7, 8, 9 and 10. Since both regular and sparse stacks can be combined within
one single run, sparse stacks can be very useful to save disk space. For instance,
LISFLOOD always needs the average daily temperature, even when the model is run
on an hourly time step. So, instead of defining 24 identical maps for each hour, you
can simply define 1 for the first hour of each day and leave out the rest, for instance:
t map name
1 ta000000.001
2 -
: :
: :
25 ta000000.025
: :
: :
49 ta000000.049
: :
27
Input tables
In addition to the maps and time series above, a number of model parameters are
read through tables that are linked to the classes on the land use and soil (texture)
maps. The following table gives a complete overview:
28
Figure 4.1 Suggested file structure for LISFLOOD
29
30
5. LISFLOOD setup: the settings file
In LISFLOOD, all file and parameter specifications are defined in a settings file. The
purpose of the settings file is to link variables and parameters in the model to in- and
output files (maps, time series, tables) and numerical values. In addition, the settings
file can be used to specify several options. The settings file has a special (XML)
structure. In the next sections the general layout of the settings file is explained.
Although the file layout is not particularly complex, a basic understanding of the
general principles explained here is essential for doing any successful model runs.
The settings file has an XML (‘Extensible Markup Language’) structure. You can edit
it using any text editor (e.g. Notepad, Editpad, Emacs, vi). Alternatively, you can also
use a dedicated XML editor such as XMLSpy.
• The settings file is made up of the elements ‘lfuser’, ‘lfoptions’ and ‘lfbinding’;
in addition, there is a ‘prolog’ element (but this will ultimately disappear in
future LISFLOOD versions)
• The start of each element is indicated by the element’s name wrapped in
square brackets, e.g. <element>
• The end of each element is indicated by a forward slash followed by the
element’s name, all wrapped in square brackets, e.g. </element>
31
• All elements are part of a ‘root’ element called ‘<lfsettings>’.
lfuser : definition of paths to all in- and output files, and main model
parameters (calibration + time-related)
lfbinding : definition of all individual in- and output files, and model parameters
lfoptions : switches to turn specific components of the model on or off
The following sections explain the function of each element in more detail. This is
mainly to illustrate the main concepts and how it all fits together. A detailed
description of all the variables that are relevant for setting up and running LISFLOOD
is given in Chapter 6.
<lfsettings>
<lfuser>
</lfuser>
<lfoptions>
</lfoptions>
<lfbinding>
</lfbinding>
</lfsettings>
In the example two input files (maps) are defined. Both maps are in the same
directory. Instead of entering the full file path for every map, we define a variable
called PathMaps in the ‘lfuser’ element. This variable can then be used in the
‘lfbinding’ element. Note that in the ‘lfbinding’ element you should always wrap user-
defined variables in brackets and add a leading dollar sign, e.g. $(PathMaps). Since
the names of the in- and output files are usually the same for each model run, the
32
use of user-defined variables greatly simplifies setting up the model for new
catchments. In general, it is a good idea to use user-defined variables for everything
that needs to be changed on a regular basis (paths to input maps, tables,
meteorological data, parameter values). This way you only have to deal with the
variables in the ‘lfuser’ element, without having to worry about anything in ‘lfbinding’
at all.
33
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE lfsettings SYSTEM "lisflood.dtd">
<lfsettings>
<lfuser>
<comment>
**************************************************************
CALIBRATION PARAMETERS
**************************************************************
</comment>
<comment>
**************************************************************
FILE PATHS
**************************************************************
</comment>
<comment>
**************************************************************
PREFIXES OF METEO VARIABLES
**************************************************************
</comment>
</lfuser>
<lfoptions> </lfoptions>
<lfbinding>
</lfbinding>
</lfsettings>
From this example, note that anything can be defined with ‘lfuser’ variables, whether
it be paths, file prefixes or parameter value. At first sight it might seem odd to define
model parameter like UpperZoneTimeConstant as a text variable when it is already
34
defined in the ‘lfbinding’ element. However, in practice it is much easier to have all
the important variables defined in the same element: in total the model needs around
200 variables, parameters and file names. By specifying each of those in the
‘lfbinding’ element you need to specify each of them separately. Using the ‘lfuser’
variables this can be reduced to about 50, which greatly simplifies things. You should
think of the ‘lfbinding’ element as a low-level way of describing the model in- and
output structure: anything can be changed and any file can be in any given location,
but the price to pay for this flexibility is that the definition of the input structure will
take a lot of work. By using the ‘lfuser’ variables in a smart way, custom template
settings files can be created for specific model applications (calibration, scenario
modelling, operational flood forecasting). Typically, each of these applications
requires its own input structure, and you can use the ‘lfuser’ variables to define this
structure. Also, note that the both the name and value of each variable must be
wrapped in (single or double) quotes. Dedicated XML-editors like XmlSpy take care
of this automatically, so you won’t usually have to worry about this.
NOTES:
<textvar name="PathInit"
value="//cllx01/floods2/knijfjo/test/init">
<comment>
Path to initial conditions maps
</comment>
</textvar>
</lfuser>
1. Single map
Example:
35
<textvar name="LandUse" value="$(PathMaps)/landuse.map">
<comment>
Land Use Classes
</comment>
</textvar>
2. Table
Example:
3. Stack of maps
Example:
<textvar name="PrecipitationMaps"
value="$(PathMeteo)/$(PrefixPrecipitation)">
<comment>
precipitation [mm/day]
</comment>
</textvar>
Note:
Taking -as an example- a prefix that equals “pr”, the name of each map in the stack
starts with “pr”, and ends with the number of the time step. The name of each map is
made up of a total of 11 characters: 8 characters, a dot and a 3-character suffix. For
instance:
To avoid unexpected behaviour, do not use numbers in the prefix! For example:
<textvar name="PrecipitationMaps"
value="$(PathMeteo)/pr10 ">
<comment>
precipitation [mm/day]
</comment>
</textvar>
For the first time step this yields the following file name:
pr100000.001
Example:
36
<textvar name="DisTS" value="$(PathOut)/dis.tss">
<comment>
Reported discharge [cu m/s]
</comment>
</textvar>
Example:
<textvar name="UpperZoneTimeConstant"
value="$(UpperZoneTimeConstant)">
<comment>
Time constant for water in upper zone [days]
</comment>
</textvar>
<lfuser>
</lfuser>
<lfbinding>
</lfbinding>
lfoption element
The ‘lfoption’ element effectively allows you to switch certain parts of the model on or
off. Within LISFLOOD, there are two categories of options:
1. Options to activate the reporting of additional output maps and time series
(e.g. soil moisture maps)
2. Options that activate special LISFLOOD features, such as inflow hydrographs
and the simulation of reservoirs
37
Viewing available options
You can view all options by running LISFLOOD with the --listoptions flag. For each
option, the following information is listed:
‘OptionName’ -as you might have guessed already- simply is the name of the option.
‘Choices’ indicates the possible values of the option, and ‘DefaultValue’ describes the
default behaviour. For instance, if you look at the reservoir option:
you see that the value of this option is either 0 (off) or 1 (on), and that the default
value is 0 (off, i.e. do not simulate any reservoirs).
The information on the reporting options is a little bit different (and slightly confusing).
Looking at the option for reporting discharge maps:
By default, discharge maps are not reported, so you would expect something like
“default=0”. However, due to the way options are defined internally in the model, in
this case we have no default value, which means it is switched off.4 Report options
that are switched on by default look like this:
This is all a bit confusing, and the displaying of option information may well change in
future LISFLOOD versions.
Defining options
Within the ‘lfoptions’ element of the settings file, each option is defined using a
‘setoption’ element, which has the attributes ‘name’ and ‘choice’ (i.e. the actual
value). For example:
<lfoptions>
<setoption choice="1" name="inflow" />
</lfoptions>
4
The reason why –listoptions produces “default=0” for the reservoirs option, is that –internally
within the model- the reservoir option consists of two blocks of code: one block is the actual
reservoir code, and another one is some dummy code that is activated if the reservoirs option
is switched off (the dummy code is needed because some internal model variables that are
associated with reservoirs need to be defined, even if no reservoirs are simulated). Both
blocks are associated with “simulateReservoirs=1” and “simulateReservoirs=0”, respectively,
where the “simulateReservoirs=0” block is marked as the default choice. In case of the
“repDischargeMaps” option, there is no block of code that is associated with
“repDischargeMaps=0”, hence formally there is no default value.
38
You are not obliged to use any options: if you leave the ‘lfoptions’ element empty,
LISFLOOD will simply run using the default values (i.e. run model without optional
modules; only report most basic output files). However, the ‘lfoptions’ element itself
(i.e. <lfoptions> </lfoptions>) has to be present, even if empty!
39
40
6. Preparing the settings file
This chapter describes how to prepare your own settings file. Instead of writing the
settings file completely from scratch, we suggest to use the settings template that is
provided with LISFLOOD as a starting point. In order to use the template, you should
make sure the following requirements are met:
• All input maps and tables are named according to default file names (see
Chapter 4)
• All base maps are in one directory
• All tables are in one directory
• All meteo input is in one directory
• All Leaf Area Index input is in one directory
• An (empty) directory where all model data can be written exists
If this is all true, the settings file can be prepared very quickly by editing the items in
the ‘lfuser’ element. The following is a detailed description of the different sections of
the ‘lfuser’ element. The present LISFLOOD version contains 24 process-related
parameters (not taking into account the parameters that are defined through the base
maps and lookup tables). These are all defined in the ‘lfuser’ element, and default
values are given for each of them. Even though any of these parameters can be
treated as calibration constants, doing so for all of them would lead to serious over-
parameterisation problems. In the description of these parameters we will therefore
provide some suggestions as to which parameters should be used for calibration,
and which one are better left untouched.
Time-related constants
The ‘lfuser’ section starts with a number of constants that are related to the
simulation period and the time interval used. These are all defined as single values.
41
<comment>
**************************************************************
TIME-RELATED CONSTANTS
**************************************************************
</comment>
DtSec is the simulation time interval in seconds. It has a value of 86400 for a
daily time interval, 3600 for an hourly interval, etcetera
StepStart is the number of the first time step in your simulation. It is normally
set to 1. Other (larger) values can be used if you want to run LISFLOOD for
only a part of the time period for which you have meteo and LAI maps.
ReportSteps defines the time step number(s) at which the model state (i.e. all
maps that you would need to define the initial conditions of a succeeding
model run) is written. You can define this parameter as a (comma separated)
list of time steps. For example:
will result in state maps being written at time steps 10, 20 and 40. For the last
time step of a model run you can use the special ‘endtime’ keyword, e.g.:
<textvar name="ReportSteps" value="endtime">
42
Alternatively, in some cases you may need the state maps at regular
intervals. In that case you can use the following syntax:
For instance, in the following example state maps are written every 5th time
step, starting at time step 10, until the last time step:
<comment>
**************************************************************
PARAMETERS RELATED TO EVAPO(TRANSPI)RATION AND INTERCEPTION
**************************************************************
</comment>
kdf is the average extinction for the diffuse radiation flux (Goudriaan, 1977). it
is used to calculate the extinction coefficient for global radiation, κgb ,which is
used in Equations 2-9, 2-14 and 2-19 [-]
43
originally developed for daily timesteps only, the threshold is currently defined
(somewhat confusingly) as an equivalent intensity in [mm day-1]
44
<comment>
**************************************************************
SNOW AND FROST RELATED PARAMETERS
**************************************************************
</comment>
45
SnowMeltCoef (Cm in Eq 2-3) is the degree-day factor that controls the rate
of snowmelt [mm °C-1 day-1]
TempMelt (Tm in Eq 2-3) is the average temperature above which snow starts
to melt [°C]
Afrost (A in Eq 2-4) is the frost index decay coefficient [day-1]. It has a value in
the range 0-1.
FrostIndexThreshold is the critical value of the frost index (Eq 2-5) above
which the soil is considered frozen [°C day-1]
Infiltration parameters
The following two parameters control the simulation of infiltration and preferential
flow. Both are empirical parameters that are treated as calibration constants, and
both can be defined as single values or maps.
<comment>
**************************************************************
INFILTRATION PARAMETERS
**************************************************************
</comment>
46
Groundwater parameters
The following parameters control the simulation shallow and deeper groundwater.
GwLossFraction should be kept at 0 unless prior information clearly indicates that
groundwater is lost beyond the catchment boundaries (or to deep groundwater
systems). The other parameters are treated as calibration constants. All these
parameters can be defined as single values or maps.
<comment>
**************************************************************
GROUNDWATER RELATED PARAMETERS
**************************************************************
</comment>
Routing parameters
These parameters are all related to the routing of water in the channels as well as the
routing of surface runoff. The multiplier CalChanMan can be used to fine-tune the
timing of the channel routing, and it may be defined as either a single value or a map.
All other parameters should be kept at their default values.
47
<comment>
**************************************************************
ROUTING PARAMETERS
**************************************************************
</comment>
beta is routing coefficient βk in Equations 2-51, 2-52, 2-54 and 2-57 [-]
OFDepRef is a reference flow depth from which the flow velocity of the
surface runoff is calculated [mm]
GradMin is a lower limit for the slope gradient used in the calculation of the
surface runoff flow velocity [m m-1]
ChanGradMin is a lower limit for the channel gradient used in the calculation
of the channel flow velocity [m m-1]
48
<comment>
**************************************************************
PARAMETERS RELATED TO NUMERICS
**************************************************************
</comment>
CourantCrit (Ccrit in Eq 2-36) is the critical Courant number which controls the
numerical accuracy of the simulated soil moisture fluxes [-]. Any value
between 0 and 1 can be used, but using values that are too high can lead to
unrealistic “jumps” in the simulated soil moisture, whereas very low values
result in reduced computational performance (because many iterations will be
necessary to obtain the required accuracy). Values above 1 should never be
used, as they will result in a loss of mass balance. In most cases the default
value of 0.4 results in sufficiently realistic simulations using just a few
iterations.
File paths
Here you can specify where all the input files are located, and where output should
be written. Note that you can use both forward and backward slashes on both
Windows and Linux-based systems without any problem (when LISFLOOD reads the
settings file it automatically formats these paths according to the conventions used by
the operating system used). The default settings template contains relative paths,
which in most cases allows you to run the model directly without changing these
settings (assuming that you execute LISFLOOD from the root directory of your
catchment).
49
<comment>
**************************************************************
FILE PATHS
**************************************************************
</comment>
PathOut is the directory where all output files are written. It must be an
existing directory (if not you will get an error message)
PathMaps is the directory where all input base maps are located
PathMeteo is the directory where all maps with meteorological input are
located (rain, evapo(transpi)ration, temperature)
PathLAI is the directory where you Leaf Area Index maps are located
50
<comment>
**************************************************************
PREFIXES OF METEO AND VEGETATION RELATED VARIABLES
**************************************************************
</comment>
Each variable is read as a stack of maps. The name of each map starts with
prefix, and ends with the number of the time step. All characters in between
are filled with zeroes. The name of each map is made up of a total of 11
characters: 8 characters, a dot and a 3-character suffix. For instance, using a
prefix ‘pr’ we get:
PrefixRain=pr10
For the first time step this yields the following file name:
pr100000.001
51
PrefixPrecipitation is the prefix of the precipitation maps
Initial conditions
As with the calibration parameters you can use both maps and single values to
define the catchment conditions at the start of a simulation. Note that a couple of
variables can be initialized internally in the model (explained below). Also, be aware
that the initial conditions define the state of the model at t=(StepStart -1). As long as
StepStart equals 1 this corresponds to t=0, but for larger values of StepStart this is
(obviously) not the case!
<group>
<comment>
**************************************************************
INITIAL CONDITIONS
(maps or single values)
**************************************************************
</comment>
52
<textvar name="CumIntInitValue" value="0">
<comment>
cumulative interception [mm]
</comment>
</textvar>
</group>
<group>
<comment>
**************************************************************
The following variables can also be initialized in the model
internally. if you want this to happen set them to bogus value
of -9999
**************************************************************
</comment>
53
WaterDepthInitValue is the initial amount of water on the soil surface [mm]
FrostIndexInitValue (F in Eq 2-5) is the initial value of the frost index [°C day-
1
]
DSLRInitValue (Dslr in Eq 2-20) is the initial number of days since the last
rainfall event [days]
LZInitValue is the initial storage in the lower groundwater zone [mm]. In order
to avoid initialization problems it is possible to let the model calculate a
‘steady state’ storage that will usually minimize any initialization problems.
This feature is described in detail in Chapter 7 of this User Manual. To
activate it, simply set LZInitValue to -9999.
ThetaInit1Value is the initial moisture content [mm3 mm-3] of the upper soil
layer. A value of -9999 will set the initial soil moisture content to field capacity.
ThetaInit2Value is the initial moisture content [mm3 mm-3] of the lower soil
layer. A value of -9999 will set the initial soil moisture content to field capacity
lisflood settings.xml
54
LISFLOOD version October 3 2007
Water balance and flood simulation model for large catchments
Created: X:\test\txlGsbMlbr.tmp
pcrcalc version: Oct 3 2007 (win32)
Executing timestep 1
Using options
As explained in Chapter 5, the ‘lfoptions’ element gives you additional control over
what LISFLOOD is doing. Using options it is possible to switch certain parts of the
model on or off. This way you can tell the model exactly which output files are
reported and which ones aren’t. Also, they can be used to activate a number of
additional model features, such as the simulation of reservoirs and inflow
hydrographs.
The table below lists all currently implemented options and their corresponding
defaults. All currently implemented options are switches (1= on, 0=off). You can set
as many options as you want (or none at all). Table 6.1 lists all currently implemented
options5. Note that each option generally requires additional items in the settings file.
For instance, using the inflow hydrograph option requires an input map and time
series, which have to be specified in the settings file. If you want to report discharge
maps at each time step, you will first have to specify under which name they will be
written. The template settings file that is provided with LISFLOOD always contains
file definitions for all optional output maps and time series. The use of the output
options is described in detail in Chapter 8.
5
Actually, the –listoptions switch will show you a couple of options that are not listed in Table
6.1. These are either debugging options (which are irrelevant to the model user) or
experimental features that may not be completely finalised (and thus remain undocumented
here until they are)
55
Table 6.1 LISFLOOD options (continued on next page)
SIMULATION OPTIONS
Option Description Default
Get grid size attributes (length, area) from user-defined
gridSizeUserDefined maps (instead of using map location attributes directly) 0
Simulate retention and hydropower reservoirs (kin. wave
simulateReservoirs only) 0
simulateLakes Simulate unregulated lakes (kin. wave only) 0
simulatePolders Simulate flood protection polders (dyn. wave only) 0
inflow Use inflow hydrographs 0
dynamicWave Perform dynamic wave channel routing 0
simulateWaterLevels Simulate water levels in channel 0
6
This option can only be used in combination with the ‘simulateWaterLevels’ option!
56
Table 6.1 LISFLOOD options (continued from previous page)
OUTPUT, MAPS, DISCHARGE
Option Description Default
repDischargeMaps Report maps of discharge (for each time step) 0
repWaterLevelMaps7 Report maps of water level in channel (for each time step) 0
7
This option can only be used in combination with the ‘simulateWaterLevels’ option!
8
Deprecated; this feature may not be supported in forthcoming LISFLOOD releases. Use
repStateMaps instead, which gives you the same maps with the added possibility to report
them for any required time step(s).
57
Table 6.1 LISFLOOD options (continued from previous page)
OUTPUT, MAPS, RATE VARIABLES
Option Description Default
repRainMaps Report maps of rain (excluding snow!) (for each time step) 0
repSnowMaps Report maps of snow (for each time step) 0
repSnowMeltMaps Report maps of snowmelt (for each time step) 0
repInterceptionMaps Report maps of interception (for each time step) 0
repLeafDrainageMaps Report maps of leaf drainage (for each time step) 0
repTaMaps Report maps of actual transpiration (for each time step) 0
repESActMaps Report maps of actual soil evaporation (for each time step) 0
Report maps of actual evaporation of intercepted water (for
repEWIntMaps each time step) 0
repInfiltrationMaps Report maps of infiltration (for each time step) 0
repPrefFlowMaps Report maps of preferential flow (for each time step) 0
Report maps of percolation from upper to lower soil layer
repPercolationMaps (for each time step) 0
Report maps of seepage from lower soil layer to ground
repSeepSubToGWMaps water (for each time step) 0
Report maps of percolation from upper to lower ground
repGwPercUZLZMaps water zone (for each time step) 0
Report maps of loss from lower ground water zone (for
repGwLossMaps each time step) 0
repSurfaceRunoffMaps Report maps of surface runoff (for each time step) 0
repUZOutflowMaps Report maps of upper zone outflow (for each time step) 0
repLZOutflowMaps Report maps of lower zone outflow (for each time step) 0
Report maps of total runoff (surface + upper + lower zone)
repTotalRunoffMaps (for each time step) 0
58
7. Initialisation of LISFLOOD
Introduction
Just as any other hydrological model, LISFLOOD needs to have some estimate of
the initial state (i.e. amount of water stored) of its internal state variables. Two
situations can occur:
1. The initial state of all state variables is known (for example, the “end maps” of
a daily water balance run are used to define the initial conditions of an hourly
flood-event run)
2. The initial state of all state variables is unknown
The second situation is the most common one, and this chapter presents an in-depth
look at the initialisation of LISFLOOD. First the effect of the model’s initial state on
the results of a simulation is demonstrated using a simple example. Then,
LISFLOOD’s various initialisation options are discussed. Most of this chspter focuses
on the initialisation of the lower groundwater zone, as this is the model storage
component that is the most difficult to in initialise.
An example
To better understand the impact of the initial model state on simulation results, let’s
start with a simple example. Figure 7.1 shows 3 LISFLOOD simulations of soil
moisture for the upper soil layer. In the first simulation, it was assumed that the soil is
initially completely saturated. In the second one, the soil was assumed to be
completely dry (i.e. at residual moisture content). Finally, a third simulation was done
where the initial soil moisture content was assumed to be in between these two
extremes.
Figure 7.1 Simulation of soil moisture in upper soil layer for a soil that is initially at
saturation (s), at residual moisture content (r) and in between ([s+r]/2)
59
What is clear from the Figure is that the initial amount of moisture in the soil only has
a marked effect on the start of each simulation; after a couple of months the three
curves converge. In other words, the “memory” of the upper soil layer only goes back
a couple of months (or, more precisely, for time lags of more than about 8 months the
autocorrelation in time is negligible).
In theory, this behaviour provides a convenient and simple way to initialise a model
such as LISFLOOD. Suppose we want to do a simulation of the year 1995. We
obviously don’t know the state of the soil at the beginning of that year. However, we
can get around this by starting the simulation a bit earlier than 1995, say one year. In
that case we use the year 1994 as a warm-up period, assuming that by the start of
1995 the influence of the initial conditions (i.e. 1-1-1994) is negligible. The very
same technique can be applied to initialise LISFLOOD’s other state variables, such
as the amounts of water in the lower soil layer, the upper groundwater zone, the
lower groundwater zone, and in the channel.
For the remaining state variables, initialisation is somewhat less straightforward. The
amount of water in the channel (defined by TotalCrossSectionAreaInitValue) is highly
spatially variable (and limited by the channel geometry). The amount of water that
can be stored in the upper and lower soil layers (ThetaInit1Value, ThetaInit2Value) is
limited by the soil’s porosity. The lower groundwater zone poses special problems
because of its overall slow response (discussed in a separate section below).
Because of this, LISFLOOD provides the possibility to initialise these variables
internally, and these special initialisation methods can be activated by setting the
initial values of each of these variables to a special ‘bogus’ value of -9999. Table 7.1
summarises these special initialisation methods:
*) These special initialisation methods are activated by setting the value of each respective variable to
a ‘bogus’ value of “-9999”
Note that the “-9999” ‘bogus’ value can only be used with the variables in Table 7.1;
for all other variables they will produce nonsense results! The initialisation of the
lower groundwater zone will be discussed in the next sections.
60
Initialisation of the lower groundwater zone
Even though the use of a sufficiently long warm-up period usually results in a correct
initialisation, a complicating factor is that the time needed to initialise any storage
component of the model is dependent on the average residence time of the water in
it. For example, the moisture content of the upper soil layer tends to respond almost
instantly to LISFLOOD’s meteorological forcing variables (precipitation,
evapo(transpi)ration). As a result, relatively short warm-up periods are sufficient to
initialise this storage component. At the other extreme, the response of the lower
groundwater zone is generally very slow (especially for large values of Tlz).
Consequently, to avoid unrealistic trends in the simulations, very long warm-up
periods may be needed. Figure 7.2 shows a typical example for an 8-year simulation,
in which a decreasing trend in the lower groundwater zone is visible throughout the
whole simulation period. Because the amount of water in the lower zone is directly
proportional to the baseflow in the channel, this will obviously lead to an unrealistic
long-term simulation of baseflow. Assuming the long-term climatic input is more or
less constant, the baseflow (and thus the storage in the lower zone) should be free of
any long-term trends (although some seasonal variation is normal). In order to avoid
the need for excessive warm-up periods, LISFLOOD is capable of calculating a
‘steady-state’ storage amount for the lower groundwater zone. This steady state
storage is very effective for reducing the lower zone’s warm-up time. In the next
sections the concept of steady state is first explained, and it is shown how it can be
used to speed up the initialisation of a LISFLOOD run.
Figure 7.2 8-year simulation of lower zone storage. Note how the influence of the
initial storage persists throughout the simulation period.
61
Duz ,lz = min(GW perc , UZ / Δt ) (7-1)
Here, GWperc [mm day-1] is a user-defined value (calibration constant), and UZ is the
amount of water available in the upper groundwater zone [mm]. The rate of flow out
of the lower zone [mm day-1] equals:
1
Qlz = ⋅ LZ (7-2)
Tlz
where Tlz is a reservoir constant [days], and LZ is the amount of water that is stored
in the lower zone [mm].
Now, let’s do a simple numerical experiment: assuming that Duz,lz is a constant value,
we can take some arbitrary initial value for LZ and then simulate (e.g. in a
spreadsheet) the development over LZ over time. Figure 7.3 shows the results of 2
such experiments. In the upper Figure, we start with a very high initial storage (1500
mm). The inflow rate is fairly small (0.2 mm/day), and Tlz is quite small as well (which
means a relatively short residence time of the water in the lower zone). What is
interesting here is that, over time, the storage evolves asymptotically towards a
constant state. In the lower Figure, we start with a much smaller initial storage (50
mm), but the inflow rate is much higher here (1.5 mm/day) and so is Tlz (1000 days).
Here we see an upward trend, again towards a constant value. However, in this case
the constant ‘end’ value is not reached within the simulation period, which is mainly
because Tlz is set to a value for which the response is very slow.
At this point it should be clear that what you see in these graphs is exactly the same
behaviour that is also apparent in the ‘real’ LISFLOOD simulation in Figure 7.2. Being
able to know the ‘end’ storages in Figure 7.3 in advance would be very helpful,
because it would eliminate any trends. As it happens, this can be done very easily
from the model equations. A storage that is constant over time means that the in- and
outflow terms balance each other out. This is known as a steady state situation, and
the constant ‘end’ storage is in fact the steady state storage. The rate of change of
the lower zone’s storage at any moment is given by the continuity equation:
dLZ
= I (t ) − O(t ) (7-3)
dt
where I is the (time dependent) inflow (i.e. groundwater recharge) and O is the
outflow rate. For a situation where the storage remains constant, we can write:
dLZ
=0 ⇔ I (t ) − O(t ) = 0 (7-4)
dt
62
Figure 7.3 Two 10-year simulations of lower zone storage with constant inflow.
Upper Figure: high initial storage, storage approaches steady-state storage (dashed)
after about 1500 days. Lower Figure: low initial storage, storage doesn’t reach
steady-state within 10 years.
1
I (t ) − ⋅ LZ = 0 (7-5)
Tlz
63
LZ ss = Tlz ⋅ I (t ) (7-6)
Tlz I LZss
250 0.2 50
1000 1.5 1500
What happens now is that LISFLOOD computes the initial state of LZ, assuming that
the average recharge can be approximated by LZAvInflowEstimate. In general,
initialising LISFLOOD like this is quite risky, and the simulated development of the
lower zone will often still show (strong) long-term trends.
9
If you want to base your steady-state storage estimate on the assumption of an average
recharge that equals the value of GWperc, you can do this by simply setting
LZAvInflowEstimate to any ridiculously large value (e.g. 1000).
64
Procedure 2: use pre-run to calculate average recharge
Here, we first do a “pre-run” that is used to calculate the average inflow into the lower
zone. This average inflow can be reported as a map, which is then used in the actual
run. This involves the following steps:
In this case, the initial state of LZ is computed for the correct average inflow, and the
simulated storage in the lower zone throughout the simulation will not show any
systematic (long-term) trends. The obvious price to pay for this is that the pre-run
doubles the computational load. However, as long as the simulation period for the
actual run and the pre-run are identical, the procedure gives a 100% guarantee that
the development of the lower zone storage will be free of any systematic bias. Since
the computed recharge values are dependent on the model parameterisation used, in
a calibration setting the whole procedure must be repeated for each parameter set!
This tells the model to write the values of all state variables (averages, upstream of
contributing area to each gauge) to time series files. The default name of the lower
zone time series is ‘lzUps.tss’. Figure 7.4 shows an example of an 8-year simulation
that was done both without (dashed line) and with a pre-run. The simulation without
the pre-run shows a steady decreasing trend throughout the 8-year period, whereas
the simulation for which the pre-run was used doesn’t show this long-term trend
(although in this specific case a modest increasing trend is visible throughout the first
6 years of the simulation, but this is related to trends in the meteorological input).
65
Figure 7.4 Initialisation of lower groundwater zone with and without using a pre-run.
Note the strong decreasing trend in the simulation without pre-run.
In any case, you should be aware that values of some internal state variables of the
model (especially lower zone storage) are very much dependent on the
parameterisation used. Hence, suppose we have ‘end maps’ that were created using
some parameterisation of the model (let’s say parameter set A), then these maps
should not be used as initial conditions for a model run with another parameterisation
(parameter set B). If you decide to do this anyway, you are likely to encounter serious
initialisation problems (but these may not be immediately visible in the output!). If you
do this while calibrating the model (i.e. parameter set B is the calibration set), this will
render the calibration exercise pretty much useless (since the output is the result of a
mix of different parameter sets). However, for SnowCoverInitAValue,
SnowCoverInitBValue, SnowCoverInitCValue, FrostIndexInitValue and
DSLRInitValue it is perfectly safe to use the ‘end maps’, since the values of these
maps do not depend on any calibration parameters (that is, only if you do not
calibrate on any of the snow or frost-related parameters!). If you need to calibrate for
individual events (i.e.hourly), you should apply each parameterisation on both the
(daily) pre-run and the ‘event’ run! This may seem awkward, but there is no way of
getting around this (except from avoiding event-based calibration at all, which may be
a good idea anyway).
66
Summary of LISFLOOD initialisation procedure
From the foregoing it is clear that the initialisation of LISFLOOD can be done in a
number of ways. Figure 7.5 gives an overview. As already stated in the introduction
section, any LISFLOOD simulation will fall into either of the following two categories:
1. The initial state of all state variables is known and defined by the end state of
a previous run. In this case you can use the ‘end’ maps of the previous run’s
state variables as the initial conditions of you current run. Note that this
requires that both simulations are run using exactly the same parameter set!
Mixing parameter sets here will introduce unwanted artefacts into your
simulation results.
2. The initial state of all state variables is unknown. In this case you should run
the model with a sufficient warm-up period (one year will usually do), using
the available special initialisation methods to initialise soil moisture, lower
zone storage and the amount of water in the channel. In addition, you should
first do a “pre-run” to calculate the average recharge into the lower zone. The
average recharge map that is generated from the pre-run can subsequently
be used as the average lower zone inflow estimate (LZAvInflowEstimate) in
the actual simulation, which will avoid any initialisation problems of the lower
groundwater zone.
67
68
8. Output generated by LISFLOOD
NUMERICAL CHECKS
Description Units File name
cumulative mass balance error m3 mbError.tss
cumulative mass balance error, expressed as mm mbErrorMm.tss
mm water slice (average over catchment)
number of sub-steps needed for gravity-based - steps.tss
soil moisture routine
In addition to these time series, by default LISFLOOD reports maps of all state
variables at the last timestep of a simulation. These maps can be used to define the
initial conditions of a succeeding simulation. For instance, you can do a 1-year
simulation on a daily time step, and use the ‘end maps’ of this simulation to simulate
a flood event using an hourly time step. Table 8.2 lists all these maps. Note that
some state variables are valid for the whole pixel, whereas others are only valid for a
sub-domain of each pixel. This is indicated in the last column of the table.
69
Table 8.2 LISFLOOD default state variable output maps. These maps can be used to define the initial
conditions of another simulation
DEFAULT OUTPUT MAPS LISFLOOD (option repStateMaps)
Description Units File name10 Domain
waterdepth at last time step mm wdepth00.xxx whole pixel
channel cross-sectional area at last time step m2 chcross0.xxx channel
days since last rain variable at last time step days dslr0000.xxx whole pixel
snow cover zone A at last time step mm scova000.xxx snow zone A (1/3rd pixel)
snow cover zone B at last time step mm scovb000.xxx snow zone B (1/3rd pixel)
snow cover zone C at last time step mm scovc000.xxx snow zone C (1/3rd pixel)
frost index at last time step degree-days frost000.xxx whole pixel
cumulative interception at last time step mm cumint00.xxx whole pixel
soil moisture upper layer at last time step mm3/mm3 thtop000.xxx permeable fraction pixel
soil moisture lower layer at last time step mm3/mm3 thsub000.xxx permeable fraction pixel
water in lower zone at last time step mm lz000000.xxx permeable fraction pixel
water in upper zone at last time step mm uz000000.xxx permeable fraction pixel
Additional output
Apart from the default output, the model can –optionally- generate some additional
time series and maps. Roughly this additional output falls in either of the following
categories:
10
xxx represents the number of the last time step; e.g. or a 730-step simulation the end map
of ‘waterdepth’ will be ‘wdepth00.730’, and so on.
70
In addition, some additional maps and time series may be reported for debugging
purposes. In general these are not of any interest to the LISFLOOD user, so they
remain undocumented here.
71
Table 8.3 LISFLOOD optional output time series (continued)
72
Table 8.3 LISFLOOD optional output time series (continued)
WATER LEVEL IN CHANNEL (option repWaterLevelTs)
By default, the names of the reported discharge maps start with the prefix ‘dis’ and
end with the time step number (the naming conventions are identical to the ones
used for the input maps with meteorological variables, which is explained in Chapter
4). Table 8.4 summarises all options to report additional output maps. The previous
remarks related to the domains foe which the state variable values are valid also
apply to the maps listed in Table 8.4.
73
Table 8.4 LISFLOOD optional series of output maps (all units identical to the ones listed in Table 8.3)
DISCHARGE
Description Option Settings variable Prefix
discharge repDischargeMaps DischargeMaps dis
water level repWaterLevelMaps WaterLevelMaps wl
STATE VARIABLES
Description Option Settings variable Prefix
depth of water on soil surface repWaterDepthMaps WaterDepthMaps wdep
depth of snow cover on soil surface repSnowCoverMaps SnowCoverMaps scov
depth of interception storage repCumInterceptionMaps CumInterceptionMaps cumint
soil moisture content upper layer (*) repTheta1Maps Theta1Maps thtop
soil moisture content lower layer (*) repTheta2Maps Theta2Maps thsub
storage in upper groundwater zone (*) repUZMaps UZMaps uz
storage in lower groundwater zone (*) repLZMaps LZMaps lz
number of days since last rain repDSLRMaps DSLRMaps dslr
frost index repFrostIndexMaps FrostIndexMaps frost
RATE VARIABLES
Description Option Settings variable Prefix
rain (excluding snow) repRainMaps RainMaps rain
snow repSnowMaps SnowMaps snow
snow melt repSnowMeltMaps SnowMeltMaps smelt
actual evaporation repESActMaps ESActMaps esact
actual transpiration repTaMaps TaMaps tact
rainfall interception repInterceptionMaps InterceptionMaps int
evaporation of intercepted water repEWIntMaps EWIntMaps ewint
leaf drainage repLeafDrainageMaps LeafDrainageMaps ldra
infiltration repInfiltrationMaps InfiltrationMaps inf
preferential (bypass) flow repPrefFlowMaps PrefFlowMaps pflow
percolation upper to lower soil layer repPercolationMaps PercolationMaps to2su
percolation lower soil layer to subsoil repSeepSubToGWMaps SeepSubToGWMaps su2gw
surface runoff repSurfaceRunoffMaps SurfaceRunoffMaps srun
outflow from upper zone repUZOutflowMaps UZOutflowMaps quz
outflow from lower zone repLZOutflowMaps LZOutflowMaps qlz
total runoff repTotalRunoffMaps TotalRunoffMaps trun
percolation upper to lower zone repGwPercUZLZMaps GwPercUZLZMaps uz2lz
loss from lower zone rep GwLossMaps GwLossMaps loss
(*): Valid only for permeable fraction of pixel, (1- fdr). All other variables are pixel-averages
74
Finally, some additional output options exist that don’t fit in any of the above
categories. They are listed in Table 8.5:
75
76
References
Aston, A.R., 1979. Rainfall interception by eight small trees. Journal of Hydrology 42,
383-396.
Chow, V.T., Maidment, D.R., Mays, L.M., 1988. Applied Hydrology, McGraw-Hill,
Singapore, 572 pp.
De Roo, A., Thielen, J., Gouweleeuw, B., 2003. LISFLOOD, a Distributed Water-
Balance, Flood Simulation, and Flood Inundation Model, User Manual version
1.2. Internal report, Joint Research Center of the European Communities,
Ispra, Italy, 74 pp.
Goudriaan, J., 1977. Crop micrometeorology: a simulation study. Simulation
Monographs. Pudoc, Wageningen.
Lindström, G., Johansson, B., Persson, M., Gardelin, M., Bergström, S., 1997.
Development and test of the distributed HBV-96 hydrological model. Journal
of Hydrology 201, 272-288.
Maidment, D.R. (ed.), 1993. Handbook of Hydrology, McGraw-Hill.
Martinec, J., Rango, A., Roberts, R.T., 1998. Snowmelt Runoff Model (SRM) User's
Manual (Updated Edition 1998, Version 4.0). Geographica Bernensia,
Department of Geography - University of Bern, 1999. 84pp.
Merriam, R.A., 1960. A note on the interception loss equation. Journal of
Geophysical Research 65, 3850-3851.
Molnau, M., Bissell, V.C., 1983. A continuous frozen ground index for flood
forecasting. In: Proceedings 51st Annual Meeting Western Snow Conference,
109-119.
Speers, D.D. , Versteeg, J.D., 1979. Runoff forecasting for reservoir operations – the
past and the future. In: Proceedings 52nd Western Snow Conference, 149-
156.
Stroosnijder, L., 1982. Simulation of the soil water balance. In: Penning de Vries,
F.W.T., Van Laar, H.H. (eds), Simulation of Plant Growth and Crop
Production, Simulation Monographs, Pudoc, Wageningen, pp. 175-193.
Stroosnijder, L., 1987. Soil evaporation: test of a practical approach under semi-arid
conditions. Netherlands Journal of Agricultural Science 35, 417-426.
Supit I., A.A. Hooijer, C.A. van Diepen (eds.), 1994. System Description of the
WOFOST 6.0 Crop Simulation Model Implemented in CGMS. Volume 1:
Theory and Algorithms. EUR 15956, Office for Official Publications of the
European Communities, Luxembourg.
Supit, I. , van der Goot, E. (eds.), 2003. Updated System Description of the
WOFOST Crop Growth Simulation Model as Implemented in the Crop Growth
Monitoring System Applied by the European Commission, Treemail,
Heelsum, The Netherlands, 120 pp.
Todini, E., 1996. The ARNO rainfall––runoff model. Journal of Hydrology 175, 339-
382.
Van der Knijff, J., 2006. LISVAP– Evaporation Pre-Processor for the LISFLOOD
Water Balance and Flood Simulation Model, User Manual. EUR 22639 EN,
Office for Official Publications of the European Communities, Luxembourg, 31
pp.
Van Der Knijff, J., De Roo, A., 2006. LISFLOOD – Distributed Water Balance and
Flood Simulation Model, User Manual. EUR 22166 EN, Office for Official
Publications of the European Communities, Luxembourg, 88 pp.
Van Genuchten, M.Th., 1980. A closed-form equation for predicting the hydraulic
conductivity of unsaturated soils. Soil Science Society of America Journal 44,
892-898.
Von Hoyningen-Huene, J., 1981. Die Interzeption des Niederschlags in
landwirtschaftlichen Pflanzenbeständen (Rainfall interception in agricultural
77
plant stands). In: Arbeitsbericht Deutscher Verband für Wasserwirtschaft und
Kulturbau, DVWK, Braunschweig, p.63.
World Meteorological Organization, 1986. Intercomparison of models of snowmelt
runoff. Operational Hydrology Report No. 23.
Young, G.J. (ed), 1985. Techniques for prediction of runoff from glacierized areas.
IAHS Publication 149, Institute of Hydrology, Wallingford.
Zhao, R.J., Liu, X.R., 1995. The Xinanjiang model. In: Singh, V.P. (ed.), Computer
Models of Watershed Hydrology, pp. 215-232.
78
Annex 1: Simulation of reservoirs
Introduction
This annex describes the LISFLOOD reservoirs routine, and how it is used. The
simulation of reservoirs is optional, and it can be activated by adding the following
line to the ‘lfoptions’ element:
Depending on the relative filling of the reservoir, outflow (Ores, [m3 s-1]) is calculated
as:
1
Ores = min(Omin , F ⋅ S) F ≤ 2 Lc
Δt
( F − 2 Lc )
Ores = Omin + (Onorm − Omin ) Ln ≥ F > 2 Lc
( Ln − 2 Lc )
( F − Ln )
Ores = Onorm + ⋅ max{( I res − Onorm ), (Ond − Onorm )} L f ≥ F > Ln
( L f − Ln )
(F − Lf )
Ores = max( S , Ond ) F > Lf
Δt
with:
79
Onorm : Normal outflow [m3 s-1]
Ond : Non-damaging outflow [m3 s-1]
Ires : Reservoir inflow [m3 s-1]
In order to prevent numerical problems, the reservoir outflow is calculated using a
user-defined time interval (or Δt, if it is smaller than this value).
When you create the map with the reservoir sites, pay special attention to the
following: if a reservoir is on the most downstream cell (i.e. the outflow point, see
Figure A1.1), the reservoir routine may produce erroneous output. In particular, the
mass balance errors cannot be calculated correctly in that case. The same applies if
you simulate only a sub-catchment of a larger map (by selecting the subcatchment in
the mask map). This situation can usually be avoided by extending the mask map by
one cell in downstream direction.
80
Figure A1.1 Placement of the reservoirs: reservoirs on the outflow point (left) result
in erroneous behavior of the reservoir routine.
<group>
<comment>
**************************************************************
RESERVOIR OPTION
**************************************************************
</comment>
</group>
The value -9999 tells the model to set the initial reservoir fill to the normal storage
limit. Note that this value is completely arbitrary. However, if no other information is
available this may be a reasonable starting point.
81
Finally, you have to tell LISFLOOD that you want to simulate reservoirs! To do this,
add the following statement to the ‘lfoptions’ element:
Now you are ready to run the model. If you want to compare the model results both
with and without the inclusion of reservoirs, you can switch off the simulation of
reservoirs either by:
Both have exactly the same effect. You don’t need to change anything in either
‘lfuser’ or ‘lfbinding’; all file definitions here are simply ignored during the execution of
the model.
82
Table A1.2 Output of reservoir routine
Note that you can use the map with the reservoir fill at the last time step to define the
initial conditions of a succeeding simulation, e.g.:
11
xxx represents the number of the last time step; e.g. for a 730-step simulation the name will
be ‘rsfil000.730’, and so on.
83
84
Annex 2: Inflow hydrograph option
Introduction
This annex describes the LISFLOOD inflow hydrograph routine, and how it is used.
Inflow hydrographs are optional, and can be activated by adding the following line to
the ‘lfoptions’ element:
1. Create a (nominal) PCRaster map with unique identifiers that point to the
location(s) where you want to insert the inflow hydrograph(s)
85
IMPORTANT: PCRaster assumes that the first data series in the time series file (i.e. the
second column, since the first column contains the time step number) corresponds to unique
identifier 1 on the InflowPoints map; the second series to unique identifier 2, and so on. So,
even if your InflowPoints map only contains (as an example) identifiers 3 and 4, you still
need to include the columns for identifiers 1 and 2!! The best thing to do in such a case is to
fill any unused columns with zeroes (0). Also, your inflow hydrograph time series should
always start at t=1, even if you set StepStart to some higher value. For more info on time
series files please have a look at the PCRaster documentation.
3. Make sure that the names of the map and time series are defined in the
settings file
In the ‘lfuser’ element (replace the file paths/names by the ones you want to use):
<group>
<comment>
**************************************************************
INFLOW HYDROGRAPH (OPTIONAL)
**************************************************************
</comment>
<textvar name="InflowPoints"
value="/floods2/yourhomedir/yourcatchment/maps/inlets.map">
<comment>
OPTIONAL: nominal map with locations of (measured)
inflow hydrographs [cu m / s]
</comment>
</textvar>
<textvar name="QInTS"
value="/floods2/yourhomedir/yourcatchment/inflow/inflow.tss">
<comment>
OPTIONAL: observed or simulated input hydrographs as
time series [cu m / s]
Note that identifiers in time series correspond to
InflowPoints map (also optional)
</comment>
</textvar>
</group>
Now you are ready to run the model with the inflow hydrograph.
86
these to represent the inflow into the more downstream part. Figure A2.1 shows an
example, where we have measured discharge of subcatchment A (just before it
enters the main river). In this case it is important to pay special attention to two
issues.
Figure A2.1 Using the inflow hydrograph using measured discharge of subcatchment
A. MaskMap must have boolean(0) (or missing value) for subcatchment
A, see text for explanation.
Make sure your inflow points are where you need them
If you already have all gauge locations on a PCRaster map, these mostly cannot be
used directly as inflow hydrograph locations. The reason is simple: suppose –in our
previous example– we know the outflow point of subcatchment A. This point is the
most downstream point within that subcatchment. However, the flow out of
subcatchment A is actually added to the main river one cell downstream! Also, if we
exclude subcatchment A from our simulation (as explained in the foregoing), this
means we also exclude the outflow point of that subcatchment. Because of this,
inflow points into the main river are usually located one pixel downstream of the
87
outflow points of the corresponding subcatchment. If you already have a (nominal)
map of of your subcatchments, a PCRaster script exists that automatically calculates
the corresponding out- and inflow points.
88
Annex 3: Dynamic wave option
Introduction
This annex describes the LISFLOOD dynamic wave routine, and how it is used. The
current implementation of the dynamic wave function in PCRaster is not a complete
dynamic wave formulation according to the summary of the Saint Venant equations
as discussed in Chow (1988). The implementation currently consists of the friction
force term, the gravity force term and the pressure force term and should therefore
be correctly characterised as a diffusion wave formulation. The equations are solved
as an explicit, finite forward difference scheme. A straightforward iteration using an
Euler solution scheme is used to solve these equations. Dynamic wave routing is
optional, and can be activated by adding the following line to the ‘lfoptions’ element:
where ∆’tdyn is the sub-step for the dynamic wave [seconds], ∆x is the length of one
channel element (pixel) [m], V is the flow velocity [m s-1] and cd is dynamic wave
celerity [m s-1]. The dynamic wave celerity can be calculated as (Chow, 1988):
c d = gy
where g is the acceleration by gravity [m s-2] and y is the depth of flow [m]. For a
cross-section of a regular geometric shape, y can be calculated from the channel
dimensions. Since the current dynamic wave routine uses irregularly shaped cross-
section data, we simply assume than y equals the water level above the channel bed.
The flow velocity is simply:
V = Qch / A
where Qch is the discharge in the channel [m3 s-1], and A the cross-sectional area
[m2].
The Courant number for the dynamic wave, Cdyn, can now be computed as:
(V + c d )Δt
C dyn =
Δx
where ∆t is the overall model time step [s]. The number of sub-steps is then given by:
89
C dyn
SubSteps = max(1, roundup( ))
C dyn,crit
where Cdyn,crit is the critical Courant number. The maximum value of the critical
Courant number is 1; in practice it is safer to use a somewhat smaller value (although
if you make it too small the model becomes excessively slow). It is recommended to
stick to the default value (0.4) that is used the settings file template.
Input data
A number of addition input files are necessary to use the dynamic wave option. First,
the channel stretches for which the dynamic wave is to be used are defined on a
Boolean map. Next, a cross-section identifier map is needed that links the (dynamic
wave) channel pixels to the cross-section table (see further on). A channel bottom
level map describes the bottom level of the channel (relative to sea level). Finally, a
cross-section table describes the relationship between water height (H), channel
cross-sectional area (A) and wetted perimeter (P) for a succession of H levels.
ID H A P
As an example:
90
167 0 0 0
167 1.507 103.044 114.183
167 3.015 362.28 302.652
167 4.522 902.288 448.206
167 6.03 1709.097 600.382
167 6.217 1821.849 609.433
167 6.591 2049.726 615.835
167 6.778 2164.351 618.012
167 6.965 2279.355 620.14
167 7.152 2395.037 626.183
167 7.526 2629.098 631.759
167 7.713 2746.569 634.07
167 7.9 2864.589 636.93
167 307.9 192201.4874 5225.165294
Note here that the first H-level is always 0, for which A and P are (of course) 0 as
well. For the last line for each cross-section it is recommended to use some very (i.e.
unrealistically) high H-level. The reason for doing this is that the dynamic wave
routine will crash if during a simulation a water level (or cross-sectional area) is
simulated which is beyond the range of the table. This can occur due to a number of
reasons (e.g. if the measured cross-section is incomplete, or during calibration of the
model). To estimate the corresponding values of A and P one could for example
calculate dA/dH and dP/dH over the last two ‘real’ (i.e. measured) H-levels, and
extrapolate the results to a very high H-level.
The number of H/A/P combinations that are used for each cross section is user-
defined. LISFLOOD automatically interpolates in between the table values.
<group>
<comment>
**************************************************************
DYNAMIC WAVE OPTION
**************************************************************
</comment>
</group>
91
92
Annex 4: Polder option
Introduction
This annex describes the LISFLOOD polder routine, and how it is used. The
simulation of polders is optional, and it can be activated by adding the following line
to the ‘lfoptions’ element:
Polders can be simulated on channel pixels where dynamic wave routing is used.
The routine does not work for channel stretches where the kinematic wave is used!
From the Figure, it is easy to see that there can be three situations:
1. hc > hp: water flows out of the channel, into the polder. The flow rate, qc,p, is
calculated using:
3
qc , p = μcb 2 g hc 2 ;
16 (A4.1)
⎡h ⎤
c = 1− ⎢ p ⎥
⎣ hc ⎦
where b is the outflow width [m], g is the acceleration due to gravity (9.81 m s-
2
) and μ is a weir constant which has a value of 0.49. Furthermore qc,p is in
[m3 s-1].
93
2. hc < hp: water flows out of the polder back into the channel. The flow rate, qp,c,
is now calculated using:
3
q p ,c = μcb 2 g hp 2 ;
16
⎡h ⎤ (A4.2)
c = 1− ⎢ c ⎥
⎢⎣ h p ⎥⎦
3. hc = hp: no water flowing into either direction (note here that the minimum
value of hc is zero). In this case both qc,p and qp,c are zero.
94
Figure A4.2 Simulation of a regulated polder. Polder is closed (inactive) until
user-defined opening time, after which it fills up to its capacity
(flow rate according to Eq A4.1). Water stays in polder until user-
defined release time, after which water is released back to the
channel (flow rate according to Eq A4.2).
95
Table A4.1 Input requirements polder routine
Note that the polder opening- and release times are both defined a time step
numbers (not days or hours!!). For unregulated polders, set both parameters to a
bogus value of -9999, i.e.:
10 -9999
15 -9999
16 -9999
17 -9999
96
<group>
<comment>
**************************************************************
POLDER OPTION
**************************************************************
</comment>
</group>
To switch on the polder routine, add the following line to the ‘lfoptions’ element:
Now you are ready to run the model. If you want to compare the model results both
with and without the inclusion of polders, you can switch off the simulation of polders
either by:
Both have exactly the same effect. You don’t need to change anything in either
‘lfuser’ or ‘lfbinding’; all file definitions here are simply ignored during the execution of
the model.
97
Table A4.2 Output of polder routine
Note that you can use the map with the polder level at the last time step to define the
initial conditions of a succeeding simulation, e.g.:
Limitations
For the moment, polders can be simulated on channel pixels where dynamic wave
routing is used. For channels where the kinematic wave is used, the routine will not
work and may lead to numerical instabilities or even model crashes. This limitation
may be resolved in future model versions.
12
xxx represents the number of the last time step; e.g. for a 730-step simulation the name will
be ‘hpol0000.730’, and so on.
98
Annex 5: Simulation of lakes
Introduction
This annex describes the LISFLOOD lake routine, and how it is used. The simulation
of lakes is optional, and it can be activated by adding the following line to the
‘lfoptions’ element:
Lakes can be simulated on channel pixels where kinematic wave routing is used. The
routine does not work for channel stretches where the dynamic wave is used!
Olake = A( H − H 0 ) B
99
Both H and H0 can be defined relative to an arbitrary reference level. Since the
outflow is a function of the difference between both levels, the actual value of this
reference level doesn’t matter if H > H0. However, it is advised to define both H and
H0 relative to the average bottom level of the lake. This will result in more realistic
simulations during severe drought spells, when the water level drops below H0 (in
which case lake outflow ceases). The value of constant A can be approximated by
the width of the lake outlet in meters, and B is within the range 1.5-2 (reference?).
Lake evaporation occurs at the potential evaporation rate of an open water surface.
dVl
= I (t ) − O(t )
dt
where I and O are the in- and outflow rates, respectively. For a steady-state situation
the storage remains constant, so:
dVl
=0 ⇔ I (t ) − O(t ) = 0
dt
I l − EWl − A( H − H 0 ) B = 0
where Il is the inflow into the lake and EWl the lake evaporation (both expressed in
m3 s-1). Re-arranging gives the steady-state lake level:
1
⎛ I − EWl ⎞ B
H ss = H 0 + ⎜ l ⎟
⎝ A ⎠
100
Table A5.1: Calculation of average net lake inflow
Lake characteristics
lake area: 215•106 m2
mean annual discharge downstream of lake: 293 m3 s-1
mean annual discharge upstream of lake: 300 m3 s-1
mean annual evaporation: 1100 mm yr-1
When you create the map with the lake locations, pay special attention to the
following: if a lake is located on the most downstream cell (i.e. the outflow point, see
Figure A5.2), the lake routine may produce erroneous output. In particular, the mass
balance errors cannot be calculated correctly in that case. The same applies if you
simulate only a sub-catchment of a larger map (by selecting the subcatchment in the
mask map). This situation can usually be avoided by extending the mask map by one
cell in downstream direction.
101
Table A5.2 Input requirements lake routine
Figure A5.2 Placement of the lakes: lakes on the outflow point (left) result in
erroneous behavior of the lake routine.
102
<group>
<comment>
**************************************************************
LAKE OPTION
**************************************************************
</comment>
</group>
Finally, you have to tell LISFLOOD that you want to simulate lakes! To do this, add
the following statement to the ‘lfoptions’ element:
Now you are ready to run the model. If you want to compare the model results both
with and without the inclusion of lakes, you can switch off the simulation of lakes
either by:
Both have exactly the same effect. You don’t need to change anything in either
‘lfuser’ or ‘lfbinding’; all file definitions here are simply ignored during the execution of
the model.
103
Table A5.3 Output of lake routine
Note that you can use the map with the lake level at the last time step to define the
initial conditions of a succeeding simulation, e.g.:
13
xxx represents the number of the last time step; e.g. for a 730-step simulation the name will
be ‘lakh0000.730’, and so on.
104
Annex 6: Simulation and reporting of water levels
Introduction
Within LISFLOOD it is possible to simulate and report water levels in the channel.
The simulation of water levels is optional, and it can be activated by adding the
following line to the ‘lfoptions’ element:
If the option is switched on, water levels are calculated for channel pixels where
either kinematic or dynamic wave routing is used. Using this option does not
influence the actual model results in any way, and it is included only to allow the
model user to report water levels. The actual reporting of the simulated water levels
(as time series or maps) can be activated using two separate options.
105
In order to calculate water levels, LISFLOOD needs a map with the with of the
floodplain in [m], which is defined by ‘lfbinding’ variable FloodPlainWidth (the default
name of this map is chanfpln.map).
To generate a time series, add the following line to the ‘lfoptions’ element of your
settings file:
Time series:
Map stack:
106
Annex 7: Simulation and reporting of soil moisture as
pF values
Introduction
LISFLOOD offers the possibility to calculate pF values from the moisture content of
both soil layers. The calculation of pF values is optional, and it can be activated by
adding the following line to the ‘lfoptions’ element:
Using this option does not influence the actual model results in any way, and it is
included only to allow the model user to report pF time series or maps. The actual
reporting of the computed pF values (as time series or maps) can be activated using
separate options (which are discussed further on).
Calculation of pF
A soil’s pF is calculated as the logarithm of the capillary suction head, h:
pF = log10 (h)
with h in [cm] (positive upwards). Values of pF are typically within the range 1.0 (very
wet) to 5.0 (very dry). The relationship between soil moisture status and capillary
suction head is described by the Van Genuchten equation (here again re-written in
terms of mm water slice, instead of volume fractions):
1/ n
1 ⎡⎛ w − wr ⎤
1/ m
⎞
h = ⎢⎜⎜ s ⎟⎟ − 1⎥
α ⎢⎝ w − wr ⎠ ⎥⎦
⎣
where h is the suction head [cm], and w, wr and ws are the actual, residual and
maximum amounts of moisture in the soil respectively (all in [mm]). Parameter α is
related to soil texture. Parameters m and n are calculated from the pore-size index, λ
(which is related to soil texture as well):
λ
m=
λ +1
n = λ +1
If the soil contains no moisture at all (w=0), h is set to a fixed (arbitrary) value of 1·107
cm.
107
Reporting of pF
pF can be reported as time series (at the locations defined on the “sites” map or as
average values upstream each gauge location), or as maps. To generate time series
at the “sites”, add the following line to the ‘lfoptions’ element of your settings file:
For maps, use the following lines instead (for the upper and lower soil layer,
respectively):
In either case, the reporting options should be used in addition to the ‘simulatePF’
option. If you do not include the ‘simulatePF’ option, there will be nothing to report
and LISFLOOD will exit with an error message.
Time series:
<comment>
PF TIMESERIES, VALUES AT SITES
</comment>
<comment>
PF TIMESERIES, AVERAGE VALUES UPSTREAM OF GAUGES
</comment>
108
Map stacks:
<comment>
PF MAPS
</comment>
109
European Commission
EUR 22166 EN/2 –Joint Research Centre –Institute for Environment and Sustainability
Title: LISFLOOD - Distributed Water Balance and Flood Simulation Model. Revised User Manual
Authors: Johan van der Knijff, Ad de Roo
Luxembourg: Office for Official Publications of the European Communities
2008 – 109 pp. – 21 x 27.9 cm
EUR - Scientific and Technical Research series; ISSN 1018-5593
Abstract
The revised LISFLOOD User Manual documents the LISFLOOD water balance and flood simulation
model. The first part of this document gives a detailed description of the characteristics of the LISFLOOD
model, focusing on process descriptions and the governing equations. The second part covers all practical
LISFLOOD issues, such as installing the model, setting up the necessary input data and running it.
How to obtain EU publications
The Publications Office has a worldwide network of sales agents. You can obtain their
contact details by sending a fax to (352) 29 29-42758.
EUR–22166–EN/2
The mission of the JRC is to provide customer-driven scientific and technical support for the
conception, development, implementation and monitoring of EU policies. As a service of the
European Commission, the JRC functions as a reference centre of science and technology
for the Union. Close to the policy-making process, it serves the common interest of the
Member States, while being independent of special interests, whether private or national.