4. Setup of the model

Setup

Requirements

Python version

Requirements are a 64 bit Python 2.7.x version

Warning

a 32 bit version is not able to handle the data requirements!

Libraries

These external libraries are needed:

Windows

Three libraries can be installed with pip or downloaded at Unofficial Windows Binaries for Python Extension Packages

PCRaster

And the PCRASTER library from Faculty of Geosciences, Utrecht University, The Netherlands - Webpage of PCRaster

Reference:
Karssenberg, D., Schmitz, O., Salamon, P., de Jong, K., and Bierkens, M. F. P.: A software framework for construction of process-based stochastic spatio-temporal models and data assimilation, Environmental Modelling & Software 25(4), 489-502, 2010. doi: 10.1016/j.envsoft.2009.10.004

PCRaster installation

CWATM is using the PCRaster Python framwork of PCRaster but not the GIS commands.
But nevertheless it is quite usefull to install a full PCRaster version:

Note

If it is not possible to install a full version of PCRaster! Copy following files

From: PCRasterFolder\python\pcraster\framework

dynamicBase.py
dynamicFramework.py
dynamicPCRasterBase.py
frameworkBase.py
shellscript.py

To: CWATM/source/pcraster2

C++ libraries

For the computational time demanding parts e.g. routing, CWATM comes with a C++ library

Compiled versions

Windows and CYGWIN_NT-6.1
a compiled version is provided and CWATM is detecting automatically which system is running and which compiled version is needed
Linux
For Cygwin linux a compiled version t5cyg.so is provided in ../source/hydrological_modules/routing_reservoirs/ for version CYGWIN_NT-6.1.
If you use another cygwin version please compile it by yourself and name it t5_linux.so

For Linux Ubuntu a compiled version is provided as t5_linux.so. The file is in ../source/hydrological_modules/routing_reservoirs/

Note

If you use another Linux version or the compiled version is not working or you have a compiler which produce faster executables please compile a version on your own.

Compiling a version

C++ sourcecode is in ../source/hydrological_modules/routing_reservoirs/t5.cpp

Windows

A compiled version is provided, but maybe you have a faster compiler than the “Minimalist GNU for Windows” or “Microsoft Visual Studio 14.0” we used.

To compile with g++:

..\g++ -c -fPIC -Ofast t5.cpp -o t5.o
..\g++ -shared -Ofast -Wl,-soname,t5.so -o t5.so  t5.o

To compile with Microsoft Visual Studio 14.0:

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64/vcvars64.bat"
cl /LD /O2 t5.cpp

Note

We used Visual Studio, because it seems to be computational faster
the libray used with Windows is named t5.dll, if you generate a libray t5.so the filename in ../source/management_modules/globals.py has to be changed!

Linux

To compile with g++:

..\g++ -c -fPIC -Ofast t5.cpp -o t5_linux.o
..\g++ -shared -Ofast -Wl,-soname,t5_linux.so -o t5_linux.so  t5_linux.o

    or

    ..\g++ -c -Ofast t5.cpp -o t5_linux.o
..\g++ -shared -Ofast -Wl,-soname,t5_linux.so -o t5_linux.so  t5_linux.o

Warning

Please rename your compiled version to t5_linux.so! At the moment the file t5_linux.so is compiled with Ubuntu Linux

Test the model

Windows and Linux

python <modelpath>/cwatm.py

The output should be:

Running under platform:  Windows  **(or Linux etc)**
CWatM - Community Water Model
Authors: ...
Version: ...
Date: ...

Warning

If python is not set in the environment path, the full path of python has to be used

Running the model

Start the model

Warning

The model needs a settings file as an argument. See: Settings file

Windows

python <modelpath>/cwatm.py settingsfile flags

example:

python cwatm.py settings1.ini
or with more information and an overview of computational runtime
python cwatm.py settings1.ini -l -t

Warning

If python is not set in the environment path, the full path of python has to be used

Linux

<modelpath>/cwatm.py settingsfile flags

example:

cwatm.py settings1.ini -l -t

Flags

Flags can be used to change the runtime output on the screen

example:

-q --quiet       output progression given as .
-v --veryquiet   no output progression is given
-l --loud        output progression given as time step, date and discharge
-c --check       input maps and stack maps are checked, output for each input map BUT no model run
-h --noheader    .tss file have no header and start immediately with the time series
-t --printtime   the computation time for hydrological modules are printed
    -w --warranty    copyright and warranty information

Settings file

The setup of the setings file is shown in the next chapter.

NetCDF meta data

The format for spatial data for output data is netCDF. In the meta data file information can be added e.g. a description of the parameter

Note

It is not necessary to change this file! This is an option to put additional information into output maps

Settings file

The settings file is controlling the CWATM run

1
2
3
4
5
6
7
8
9
######## ##          ##  ####  ######  ##    ##
##       ##          ## ##  ##   ##   ####  ####
##        ##        ##  ##  ##   ##   ## #### ##
##        ##   ##   ## ########  ##  ##   ##   ##
##         ## #### ##  ##    ##  ##  ##        ##
##         ####  #### ##      ## ## ##          ##
##########  ##    ##  ##      ## ## ##          ##

# Community Water Model Version 0.99

Components of the settings file

General flags

General flags are set in the first paragraph For example: If Temperature data are in unit ° Celsius ot Kelvin

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#-------------------------------------------------------
# OPTION - to switch on/off
#-------------------------------------------------------

[OPTIONS]
#-----------------------------------------------

# Data otions
# if temperature is stored in Kelvin instead Celsius
TemperatureInKelvin = True
# if lat/lon the area has to be user defined = precalculated
gridSizeUserDefined = True

#-----------------------------------------------
# Evaporation: calculate pot. evaporation (True) or use precalculated pot.evaporation map stacks (False)
calc_evaporation = True

#-----------------------------------------------
# Irrigation

# if irragation is included 
includeIrrigation = True
# if irrigation area can vary from your to year
dynamicIrrigationArea = True

# Water demand
# if water demand from industry and domestic is included
includeWaterDemandDomInd = False
# Water allocation
# if water demand and availability is calculated for region to compare demand vs. avail
usingAllocSegments = False
# limit abstraction to availale groundwater (False) include fossil groundwater (True)
limitAbstraction = False

#-----------------------------------------------
# Soil 
# use preferential flow, that bypasses the soil matrix and drains directly to the groundwater (not for irrPaddy)
preferentialFlow = True
# Capillar rise
CapillarRise = True

#-----------------------------------------------
# Routing

# if runoff concentration to the edge of a cell is included
includeRunoffConcentration = True
# Waterbodies like lakes and reservoirs
includeWaterBodies = True
# kinematic wave routing, if False no routing is calculated
includeRouting = True

# Inflow from outside of the modelled area
inflow = False

# --- Reporting & Debugging -------------------
# ----------------------------------------------
# Reporting options
writeNetcdfStack = True
reportMap = True
reportTss = True

#-----------------------------------------------
# Checking water balance
calcWaterBalance = False
sumWaterBalance = False

# calculate Budyko coefficient for calibration
budyko = False

# use additional PCRaster GIS commands
PCRaster = False

NetCDF meta data

The format for spatial data for input and output data is netCDF. For output data the basic information are given in the settingsfile

102
103
104
105
[NETCDF_ATTRIBUTES]
institution = IIASA
title = Global Water Model - WATCH WDFEI
metaNetcdfFile = $(BASICS:PathRoot)/CWATM/source/metaNetcdf.xml

For each output file the specific information about units, variable name, displayed variable name is given in the metaNetcdf.xml. See: Output Meta NetCDF information

Path of data, output

Note

Further on the pathes can be used as placeholders

 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
#-------------------------------------------------------
# BASIC DEFINITIONS
#-------------------------------------------------------
[BASICS]
PathRoot = C:/work

#-------------------------------------------------------
[FILE_PATHS]
#-------------------------------------------------------

PathOut = $(BASICS:PathRoot)/output2
PathMaps = M:/cwatm_inputNetcdf
PathMeteo = M:/climate/Isi-Mip2/wfdei

Defining the modeling area

In general the input data are stored and used at global scale. The modeling area can be defined by:

  • a mask map
  • coordinates

Note

The mask map can be a .tif, PCraster or a netCDF format | The coordinates have the format: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y

108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#-------------------------------------------------------
# AREA AND OUTLETS
#-------------------------------------------------------
[MASK_OUTLET]

# Area mask
# A pcraster map, tif or netcdf map e.g.  $(BASICS:PathRoot)/data/areamaps/area_indus.map
# or a retancle: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y 
MaskMap = $(BASICS:PathRoot)/data/areamaps/lobith.tif

#-------------------------------------------------------
# Station data
# either a map e.g. $(BASICS:PathRoot)/data/areamaps/area3.map
# or a location coordinates (X,Y) e.g. 5.75 52.25 9.25 49.75 )

# Lobith/Rhine
Gauges  = 6.25 51.75 6.25 48.25

# if .tif file for gauges, this is a flag if the file is global or local
# e.g. Gauges = $(BASICS:PathRoot)/data/areamaps/gaugesRhine.tif
GaugesLocal = True

Defining the time

The start and end time have to be defined. Spin-up time is the time for warming up (results will be stored after the spin-up time)

Note

The time can be given as date: dd/mm/yyyy or as relative date: number (but then CalendarDayStart has to be defined)

Note

Spin-up time can be given as date or number

130
131
132
133
134
135
136
137
138
139
140
141
142
#-------------------------------------------------------
[TIME-RELATED_CONSTANTS]
#-------------------------------------------------------

# StepStart and Stepend either dates e.g. 01/06/1990
# or numbers (but then CalendarDayStart has to be defined) 
# SpinUp: from this date output is generated (up to this day: warm up)
CalendarDayStart = 01/01/1990

StepStart = 01/01/1990
#SpinUp =  01/01/1995 
SpinUp = NONE
StepEnd =  31/12/2010

Initial conditions

Initial conditions can be stored and be loaded in order to initialise a warm start of the model

Note

Initial conditions are store as one netCDF file with all necessary variables

145
146
147
148
149
150
151
152
153
154
155
156
157
158
#-------------------------------------------------------
[INITITIAL CONDITIONS]
#-------------------------------------------------------

# for a warm start initial variables a loaded
# e.g for a start on 01/01/2010 load variable from 31/12/2009
load_initial = False
initLoad = $(BASICS:PathRoot)/init/Rhine_20030131.nc

# saving variables from this run, to initiate a warm start next run
# StepInit = saving date, can be more than one: 10/01/1973 20/01/1973
save_initial = True
initSave = $(BASICS:PathRoot)/init/Rhine
StepInit = 31/12/1995 31/12/2010

Initial conditions can be put directly into the settings file. Either as numbers or references to maps (.tif, PCraster or netCDF)

Warning

The values here (if not set to NONE) will overwrite the initial conditions of the general initial condition netCDF file

332
333
334
#--------------------------------------------------------------
# INITIAL CONDITIONS (None either 0 or use init file)
FrostIndexIni = NONE

Output

Output can be spatial/time as netCDF4 map stacks
and/or time series at specified points

Note

For additional information see Model Output

Output can be as maps and time series:

  • per day
  • total month, average month, end of month
  • total year, average year, end of year

For each of the following sections output can be defined for different variables:

  • Meteo
  • Snow
  • Soil for different land cover (forest, grassland, irrigated land, paddy irrigated)
  • Water demand
  • Groundwater
  • River routing
  • Lakes and reservoirs

Or output can be dined in the section [output]

An output directory can be defined and for each sort of output the variable(s) can be set As example output for precipitation, temperature and discharge is shown here:

# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
OUT_MAP_Daily =
OUT_MAP_MonthEnd =
OUT_MAP_MonthTot = Precipitation, Tavg
OUT_MAP_MonthAvg =

OUT_TSS_MonthTot = Precipitation, Tavg
# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
OUT_MAP_Daily = discharge
OUT_MAP_MonthEnd =
OUT_MAP_MonthTot =

OUT_TSS_Daily = discharge
OUT_TSS_MonthEnd = discharge
OUT_TSS_AnnualEnd = discharge

Note

For each variable the meta data information can be defined in Output Meta NetCDF information

Reading information

Information will be read in from values in the settings file Here the value definitions for [SNOW] is shown:

283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
#-------------------------------------------------------
[SNOW]
#-------------------------------------------------------

# Number of vertical Snow layers
NumberSnowLayers = 7
# up to which layer the ice melt is calculated with the middle temperature
GlacierTransportZone = 3

# Temperature lapse rate with altitude [deg C / m]
TemperatureLapseRate = 0.0065 
# Multiplier applied to precipitation that falls as snow
SnowFactor = 1.0
# Range [m C-1 d-1] of the seasonal variation, SnowMeltCoef is the average value
SnowSeasonAdj = 0.001
# Average temperature at which snow melts
TempMelt =1.0
# Average temperature below which precipitation is snow
TempSnow = 1.0
# Snow melt coefficient: default: 4.0 
# SRM: 0.0045 m/C/day ( = 4.50 mm/C/day), Kwadijk: 18 mm/C/month (= 0.59 mm/C/day)  
# See also Martinec et al., 1998.

# use in CALIBRATION -> copied to CALIBRATION
#SnowMeltCoef = 0.004
IceMeltCoef  = 0.007

#--------------------------------------------------------------
# INITIAL CONDITIONS - Initial snow depth in snow zone 1-7 [mm]
# here only 1 layer is shown, but there are up to 7
SnowCoverIni = NONE

OUT_Dir = $(FILE_PATHS:PathOut)

Note

TemperatureLapseRate = 0.0065 | for the variable TemperatureLapseRate the value of 0.0065 is set

Variables can also be defined by spatial maps or map stacks

tanslope = $(PathTopo)\tanslope.map
forest_coverFractionNC   = $(PathForest)\coverFractionInputForest366days.nc

Note

suffix can be .map, but if there is no PCraster map it will look automatically for netCDF .nc

Warning

in most cases values can be replaced by map

____________________________________________________________________________________________________________

Sections of information

  • Snow

  • Frost

  • General information on land cover types

  • Soil

  • Information for each of the six land cover types
    • Forest
    • Grassland
    • Paddy irrigated area
    • Irrigated area
    • Sealed area
    • Water covered area
  • Interflow

  • Groundwater

  • Water demand

  • Runoff concentration

  • Routing

  • Lakes and reservoirs

  • Inflow

Complete settings file

Example of a settings file:

# ------------------------------------------------

######## ##          ##  ####  ######  ##    ##
##       ##          ## ##  ##   ##   ####  ####
##        ##        ##  ##  ##   ##   ## #### ##
##        ##   ##   ## ########  ##  ##   ##   ##
##         ## #### ##  ##    ##  ##  ##        ##
##         ####  #### ##      ## ## ##          ##
##########  ##    ##  ##      ## ## ##          ##

# Community Water Model Version 0.99
# SETTINGS FILE
# ------------------------------------------------

#-------------------------------------------------------
# OPTION - to switch on/off
#-------------------------------------------------------

[OPTIONS]
#-----------------------------------------------

# Data otions
# if temperature is stored in Kelvin instead Celsius
TemperatureInKelvin = True
# if lat/lon the area has to be user defined = precalculated
gridSizeUserDefined = True

#-----------------------------------------------
# Evaporation: calculate pot. evaporation (True) or use precalculated pot.evaporation map stacks (False)
calc_evaporation = True

#-----------------------------------------------
# Irrigation

# if irragation is included 
includeIrrigation = True
# if irrigation area can vary from your to year
dynamicIrrigationArea = True

# Water demand
# if water demand from industry and domestic is included
includeWaterDemandDomInd = False
# Water allocation
# if water demand and availability is calculated for region to compare demand vs. avail
usingAllocSegments = False
# limit abstraction to availale groundwater (False) include fossil groundwater (True)
limitAbstraction = False

#-----------------------------------------------
# Soil 
# use preferential flow, that bypasses the soil matrix and drains directly to the groundwater (not for irrPaddy)
preferentialFlow = True
# Capillar rise
CapillarRise = True

#-----------------------------------------------
# Routing

# if runoff concentration to the edge of a cell is included
includeRunoffConcentration = True
# Waterbodies like lakes and reservoirs
includeWaterBodies = True
# kinematic wave routing, if False no routing is calculated
includeRouting = True

# Inflow from outside of the modelled area
inflow = False

# --- Reporting & Debugging -------------------
# ----------------------------------------------
# Reporting options
writeNetcdfStack = True
reportMap = True
reportTss = True

#-----------------------------------------------
# Checking water balance
calcWaterBalance = False
sumWaterBalance = False

# calculate Budyko coefficient for calibration
budyko = False

# use additional PCRaster GIS commands
PCRaster = False


#-------------------------------------------------------
# BASIC DEFINITIONS
#-------------------------------------------------------
[BASICS]
PathRoot = C:/work

#-------------------------------------------------------
[FILE_PATHS]
#-------------------------------------------------------

PathOut = $(BASICS:PathRoot)/output2
PathMaps = M:/cwatm_inputNetcdf
PathMeteo = M:/climate/Isi-Mip2/wfdei
#-------------------------------------------------------
[NETCDF_ATTRIBUTES]
institution = IIASA
title = Global Water Model - WATCH WDFEI
metaNetcdfFile = $(BASICS:PathRoot)/CWATM/source/metaNetcdf.xml


#-------------------------------------------------------
# AREA AND OUTLETS
#-------------------------------------------------------
[MASK_OUTLET]

# Area mask
# A pcraster map, tif or netcdf map e.g.  $(BASICS:PathRoot)/data/areamaps/area_indus.map
# or a retancle: Number of Cols, Number of rows, cellsize, upper left corner X, upper left corner Y 
MaskMap = $(BASICS:PathRoot)/data/areamaps/lobith.tif

#-------------------------------------------------------
# Station data
# either a map e.g. $(BASICS:PathRoot)/data/areamaps/area3.map
# or a location coordinates (X,Y) e.g. 5.75 52.25 9.25 49.75 )

# Lobith/Rhine
Gauges  = 6.25 51.75 6.25 48.25

# if .tif file for gauges, this is a flag if the file is global or local
# e.g. Gauges = $(BASICS:PathRoot)/data/areamaps/gaugesRhine.tif
GaugesLocal = True

#-------------------------------------------------------
[TIME-RELATED_CONSTANTS]
#-------------------------------------------------------

# StepStart and Stepend either dates e.g. 01/06/1990
# or numbers (but then CalendarDayStart has to be defined) 
# SpinUp: from this date output is generated (up to this day: warm up)
CalendarDayStart = 01/01/1990

StepStart = 01/01/1990
#SpinUp =  01/01/1995 
SpinUp = NONE
StepEnd =  31/12/2010
StepEnd =  5

#-------------------------------------------------------
[INITITIAL CONDITIONS]
#-------------------------------------------------------

# for a warm start initial variables a loaded
# e.g for a start on 01/01/2010 load variable from 31/12/2009
load_initial = False
initLoad = $(BASICS:PathRoot)/init/Rhine_20030131.nc

# saving variables from this run, to initiate a warm start next run
# StepInit = saving date, can be more than one: 10/01/1973 20/01/1973
save_initial = True
initSave = $(BASICS:PathRoot)/init/Rhine
StepInit = 31/12/1995 31/12/2010

#-------------------------------------------------------
# CALIBARTION PARAMETERS
#-------------------------------------------------------
[CALIBRATION]

# These are parameter which are used for calibration
# could be any parameter, but for an easier overview, tehey are collected here
# in the calibration template a placeholder (e.g. %arnoBeta) instead of value

# Snow  
SnowMeltCoef = 0.0037
# Cropf factor correction  
crop_correct =  1.73
#Soil
soildepth_factor = 1.60
#Soil preferentialFlowConstant = 4.0, arnoBeta_factor = 1.0
preferentialFlowConstant = 4.75
arnoBeta_factor = 0.62
# groundwater recessionCoeff_factor = 1.0
recessionCoeff_factor = 0.84
# runoff concentration factor runoffConc_factor = 1.0
runoffConc_factor = 0.89
#Routing manningsN Factor to Manning's roughness = 1.0
manningsN = 1.5
# reservoir  normal storage limit (fraction of total storage, [-]) [0.15 - 0.85] default 0.5
normalStorageLimit = 0.5
# lake parameter - factor to alpha: parameter of of channel width and weir coefficient  [0.33 - 3.] dafault 1.
lakeAFactor = 1.0

#-------------------------------------------------------
# TOPOGRAPHY MAPS
#-------------------------------------------------------
[TOPOP]
# local drain direction map (1-9)
Ldd = $(FILE_PATHS:PathMaps)/routing/ldd.map

# For water demand vs. availability: areas have to be aggregated
# Allocation map
Catchment = $(FILE_PATHS:PathMaps)/routing/catchment.map
#  region of interest e.g. Rhine
CatchmentNo = 650

# Elevation standard deviation [m], i.e. altitude difference elevation within pixel.
# Used for sub-pixel modelling of snow accumulation and melt
ElevationStD = $(FILE_PATHS:PathMaps)/landsurface/topo/elvstd.map
# Length of pixel [m]
# CellLength = $(FILE_PATHS:PathMaps)/others/pixleng.map
# Area of pixel [m2]
CellArea = $(FILE_PATHS:PathMaps)/routing/cellarea.map

#-------------------------------------------------------
# INPUT METEOROLOGICAL TIMESERIES AS MAPS
#-------------------------------------------------------
[METEO]
# precipitation [kg m-2 s-1]
PrecipitationMaps =  $(FILE_PATHS:PathMeteo)/pr.nc
# average daily temperature [K]
TavgMaps = $(FILE_PATHS:PathMeteo)/tavg.nc

# ----------------------------------------
# This is used if calc_evaporation = False

# daily reference evaporation (free water) 
E0Maps = $(FILE_PATHS:PathMeteo)/EWRef_daily.nc
# daily reference evapotranspiration (crop) 
ETMaps = $(FILE_PATHS:PathMeteo)/ETRef_daily.nc

# --------------------------------
# from kg m-2s-1 to m : 86.4
precipitation_coversion = 86.4

evaporation_coversion = 1.00

# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
#OUT_MAP_Daily = 
#OUT_MAP_MonthEnd = Precipitation
#OUT_MAP_MonthTot = Precipitation
#OUT_MAP_MonthAvg = 

#OUT_TSS_Daily = Precipitation


#-------------------------------------------------------
# CALCULATE EVAPORATION - PENMAN - MONTEITH
#-------------------------------------------------------
[EVAPORATION]

# This is used if calc_evaporation = True
# use albedo maps
albedo = True
albedoMaps = $(FILE_PATHS:PathMaps)/landsurface/albedo/albedo.nc 

# if not albedo maps use fixed albedo
# Albedo of bare soil surface (Supit et. al.)
AlbedoSoil = 0.15
# Albedo of water surface (Supit et. al.)
AlbedoWater = 0.05
# Albedo of vegetation canopy (FAO,1998)
AlbedoCanopy = 0.23

# use specific humidity (TRUE) QAir,  or relative humidity (FALSE) - rhs
useHuss = False

# map stacks Temperature [K}]
TminMaps = $(FILE_PATHS:PathMeteo)/tmin.nc
TmaxMaps = $(FILE_PATHS:PathMeteo)/tmax.nc
# Instantaneous surface pressure[Pa]
PSurfMaps = $(FILE_PATHS:PathMeteo)/ps.nc
# 2 m istantaneous specific humidity[kg /kg] (QAir) or relative humidity [%] (rhs)
RhsMaps = $(FILE_PATHS:PathMeteo)/hurs.nc
# wind speed maps at 10m [m/s]
WindMaps = $(FILE_PATHS:PathMeteo)/wind.nc
# radiation surface downwelling shortwave maps  [W/m2]
RSDSMaps = $(FILE_PATHS:PathMeteo)/rsds.nc
# radiation surface downwelling longwave maps [W/m2] [W/m2]
RSDLMaps = $(FILE_PATHS:PathMeteo)/rlds.nc

# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
#OUT_MAP_Daily = Precipitation, runoff
#OUT_MAP_Daily = ETRef, EWRef
#OUT_TSS_Daily = Tavg, ETRef


#-------------------------------------------------------
[SNOW]
#-------------------------------------------------------

# Number of vertical Snow layers
NumberSnowLayers = 7
# up to which layer the ice melt is calculated with the middle temperature
GlacierTransportZone = 3

# Temperature lapse rate with altitude [deg C / m]
TemperatureLapseRate = 0.0065 
# Multiplier applied to precipitation that falls as snow
SnowFactor = 1.0
# Range [m C-1 d-1] of the seasonal variation, SnowMeltCoef is the average value
SnowSeasonAdj = 0.001
# Average temperature at which snow melts
TempMelt =1.0
# Average temperature below which precipitation is snow
TempSnow = 1.0
# Snow melt coefficient: default: 4.0 
# SRM: 0.0045 m/C/day ( = 4.50 mm/C/day), Kwadijk: 18 mm/C/month (= 0.59 mm/C/day)  
# See also Martinec et al., 1998.

# use in CALIBRATION -> copied to CALIBRATION
#SnowMeltCoef = 0.004
IceMeltCoef  = 0.007

#--------------------------------------------------------------
# INITIAL CONDITIONS - Initial snow depth in snow zone 1-7 [mm]
# here only 1 layer is shown, but there are up to 7
SnowCoverIni = NONE

OUT_Dir = $(FILE_PATHS:PathOut)
#OUT_MAP_Daily = SnowCover
#OUT_TSS_Daily  = SnowCover

[FROST]
# Snow water equivalent, (based on snow density of 450 kg/m3) (e.g. Tarboton and Luce, 1996)
SnowWaterEquivalent = 0.45
# Daily decay coefficient, (Handbook of Hydrology, p. 7.28)
Afrost = 0.97
# Snow depth reduction coefficient, [cm-1], (HH, p. 7.28)
Kfrost = 0.57
# Degree Days Frost Threshold (stops infiltration, percolation and capillary rise)
# Molnau and Bissel found a value 56-85 for NW USA.
FrostIndexThreshold = 56

#--------------------------------------------------------------
# INITIAL CONDITIONS (None either 0 or use init file)
FrostIndexIni = NONE



[LandCover]
PathLandcover = $(FILE_PATHS:PathMaps)/landsurface

coverTypes = forest, grassland, irrPaddy, irrNonPaddy, sealed, water
coverTypesShort = f, g, i, n, s, w
fractionLandcover = $(PathLandcover)/fractionLandcover.nc

# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
#OUT_TSS_Daily = runoff

#-------------------------------------------------------
[SOIL]
#-------------------------------------------------------

PathTopo = $(FILE_PATHS:PathMaps)/landsurface/topo
PathSoil = $(FILE_PATHS:PathMaps)/landsurface/soil

# Topography mapsNetcdf/maps
# tangent slope, slope length and orographybeta 
tanslope = $(PathTopo)/tanslope.map
slopeLength = $(PathTopo)/slopeLength.map
orographyBeta = $(PathTopo)/orographyBeta.map
# maps of relative elevation above flood plains
relativeElevation = $(PathTopo)/dzRel_hydro1k.nc

# Soil hydraulic properties
airEntryValue1 = $(PathSoil)/airEntry1.map
airEntryValue2 = $(PathSoil)/airEntry2.map
poreSizeBeta1 = $(PathSoil)/poreSizeBeta1.map
poreSizeBeta2 = $(PathSoil)/poreSizeBeta2.map
resVolWC1 = $(PathSoil)/resVolWC1.map
resVolWC2 = $(PathSoil)/resVolWC2.map
satVolWC1 = $(PathSoil)/satVolWC1.map
satVolWC2 = $(PathSoil)/satVolWC2.map
KSat1 = $(PathSoil)/KSat1.map
KSat2 = $(PathSoil)/KSat2.map
percolationImp = $(PathSoil)/percolationImp.map

clappAddCoeff   = 3.0
matricSuctionFC = 1.0
matricSuction50 = 3.33
matricSuctionWP = 156.0
maxGWCapRise    = 5.0

# Soil depth
StorDepth1 = $(PathSoil)/StorageDepth1.map
StorDepth2 = $(PathSoil)/storageDepth2.map
soilWaterStorageCap1 = $(PathSoil)/soilWaterStorageCap1.map
soilWaterStorageCap2 = $(PathSoil)/soilWaterStorageCap2.map

# preferential flow (between 1.0 and 8.0)
# used in CALIBRATION -> copied to CALIBRATION
#preferentialFlowConstant = 4.0

[forest]
PathForest = $(FILE_PATHS:PathMaps)/landcover/forest

# Parameters for the Arno's scheme:
forest_arnoBeta = 0
# If arnoBeta is defined, the soil water capacity distribution is based on this.
# If arnoBeta is NOT defined, maxSoilDepthFrac must be defined such that arnoBeta will be calculated based on maxSoilDepthFrac and minSoilDepthFrac.

# other paramater values
forest_minTopWaterLayer = 0.0
forest_minCropKC        = 0.2
forest_minInterceptCap  = 0.001
forest_cropDeplFactor   = 0.0

forest_fracVegCover  = $(PathForest)/fracVegCover.map
forest_rootFraction1 = $(PathForest)/rootFraction1.map
forest_rootFraction2 = $(PathForest)/rootFraction2.map
forest_maxRootDepth  = $(PathForest)/maxRootDepth.map
forest_minSoilDepthFrac = $(PathForest)/minSoilDepthFrac.map
forest_maxSoilDepthFrac = $(PathForest)/maxSoilDepthFrac.map

forest_cropCoefficientNC = $(PathForest)/CropCoefficientForest_10days.nc
forest_interceptCapNC    = $(PathForest)/interceptCapForest10days.nc

# initial conditions:
forest_interceptStorIni = NONE
forest_topWaterLayerIni = NONE
forest_soilStor[0]Ini   = NONE
forest_soilStor[1]Ini   = NONE
forest_soilStor[2]Ini   = NONE
forest_interflowIni     = NONE


[grassland]
PathGrassland = $(FILE_PATHS:PathMaps)/landcover/grassland

# Parameters for the Arno's scheme:
grassland_arnoBeta = 0
# If arnoBeta is defined, the soil water capacity distribution is based on this.
# If arnoBeta is NOT defined, maxSoilDepthFrac must be defined such that arnoBeta will be calculated based on maxSoilDepthFrac and minSoilDepthFrac.

# other paramater values
grassland_minTopWaterLayer = 0.0
grassland_minCropKC        = 0.2
grassland_minInterceptCap  = 0.001
grassland_cropDeplFactor   = 0.0

grassland_fracVegCover  = $(PathGrassland)/fracVegCover.map
grassland_rootFraction1 = $(PathGrassland)/rootFraction1.map
grassland_rootFraction2 = $(PathGrassland)/rootFraction2.map
grassland_maxRootDepth  = $(PathGrassland)/maxRootDepth.map
grassland_minSoilDepthFrac = $(PathGrassland)/minSoilDepthFrac.map
grassland_maxSoilDepthFrac = $(PathGrassland)/maxSoilDepthFrac.map

grassland_cropCoefficientNC = $(PathGrassland)/CropCoefficientGrassland_10days.nc
grassland_interceptCapNC    = $(PathGrassland)/interceptCapGrassland10days.nc

# initial conditions:
grassland_interceptStorIni = NONE
grassland_topWaterLayerIni = NONE
grassland_soilStor[0]Ini   = NONE
grassland_soilStor[1]Ini   = NONE
grassland_soilStor[2]Ini   = NONE
grassland_interflowIni     = NONE


[irrPaddy]
PathIrrPaddy = $(FILE_PATHS:PathMaps)/landcover/irrPaddy

# Parameters for the Arno's scheme:
irrPaddy_arnoBeta = 0
# If arnoBeta is defined, the soil water capacity distribution is based on this.
# If arnoBeta is NOT defined, maxSoilDepthFrac must be defined such that arnoBeta will be calculated based on maxSoilDepthFrac and minSoilDepthFrac.

# other paramater values
irrPaddy_minTopWaterLayer = 0.0
irrPaddy_minCropKC        = 0.2
irrPaddy_minInterceptCap  = 0.001
irrPaddy_cropDeplFactor   = 0.0

irrPaddy_fracVegCover  = $(PathIrrPaddy)/fracVegCover.map
irrPaddy_rootFraction1 = $(PathIrrPaddy)/rootFraction1.map
irrPaddy_rootFraction2 = $(PathIrrPaddy)/rootFraction2.map
irrPaddy_maxRootDepth  = $(PathIrrPaddy)/maxRootDepth.map
irrPaddy_minSoilDepthFrac = $(PathIrrPaddy)/minSoilDepthFrac.map
irrPaddy_maxSoilDepthFrac = $(PathIrrPaddy)/maxSoilDepthFrac.map

irrPaddy_cropCoefficientNC = $(PathIrrPaddy)/CropCoefficientirrPaddy_10days.nc



# initial conditions:
irrPaddy_interceptStorIni = NONE
irrPaddy_topWaterLayerIni = NONE
irrPaddy_soilStor[0]Ini   = NONE
irrPaddy_soilStor[1]Ini   = NONE
irrPaddy_soilStor[2]Ini   = NONE
irrPaddy_interflowIni     = NONE


[irrNonPaddy]
PathIrrNonPaddy = $(FILE_PATHS:PathMaps)/landcover/irrNonPaddy

# Parameters for the Arno's scheme:
irrNonPaddy_arnoBeta = 0
# If arnoBeta is defined, the soil water capacity distribution is based on this.
# If arnoBeta is NOT defined, maxSoilDepthFrac must be defined such that arnoBeta will be calculated based on maxSoilDepthFrac and minSoilDepthFrac.

# other paramater values
irrNonPaddy_minTopWaterLayer = 0.0
irrNonPaddy_minCropKC        = 0.2
irrNonPaddy_minInterceptCap  = 0.001
irrNonPaddy_cropDeplFactor   = 0.0

irrNonPaddy_fracVegCover  = $(PathIrrNonPaddy)/fracVegCover.map
irrNonPaddy_rootFraction1 = $(PathIrrNonPaddy)/rootFraction1.map
irrNonPaddy_rootFraction2 = $(PathIrrNonPaddy)/rootFraction2.map
irrNonPaddy_maxRootDepth  = $(PathIrrNonPaddy)/maxRootDepth.map
irrNonPaddy_minSoilDepthFrac = $(PathIrrNonPaddy)/minSoilDepthFrac.map
irrNonPaddy_maxSoilDepthFrac = $(PathIrrNonPaddy)/maxSoilDepthFrac.map

irrNonPaddy_cropCoefficientNC = $(PathIrrNonPaddy)/CropCoefficientirrNonPaddy_10days.nc



# initial conditions:
irrNonPaddy_interceptStorIni = NONE
irrNonPaddy_topWaterLayerIni = NONE
irrNonPaddy_soilStor[0]Ini   = NONE
irrNonPaddy_soilStor[1]Ini   = NONE
irrNonPaddy_soilStor[2]Ini   = NONE
irrNonPaddy_interflowIni     = NONE


[sealed]
PathSealed = $(FILE_PATHS:PathMaps)/landcover/sealed

sealed_minInterceptCap  = 0.001

# initial conditions:
sealed_interceptStorIni = NONE

[open_water]
PathWater = $(FILE_PATHS:PathMaps)/landcover/water

water_minInterceptCap  = 0.0


#-------------------------------------------------------
[INTERFLOW]
#-------------------------------------------------------
interflowTimeconstant = 10.0


#-------------------------------------------------------
[GROUNDWATER]
#-------------------------------------------------------

PathGroundwater = $(FILE_PATHS:PathMaps)/groundwater

recessionCoeff = $(PathGroundwater)/recessionCoeff.map
specificYield = $(PathGroundwater)/specificYield.map
kSatAquifer = $(PathGroundwater)/kSatAquifer.map

#--------------------------------------------------------------
# INITIAL CONDITIONS
storGroundwaterIni = NONE

#-------------------------------------------------------
[WATERDEMAND]
#-------------------------------------------------------

PathWaterdemand = $(FILE_PATHS:PathMaps)/landsurface/waterDemand

allocSegments = $(PathWaterdemand)/catchx.nc

domesticWaterDemandFile = $(PathWaterdemand)/domesticWaterDemand.nc
industryWaterDemandFile = $(PathWaterdemand)/industryWaterDemand.nc
historicalIrrigationArea = $(PathWaterdemand)/irrigationArea.nc


#-------------------------------------------------------
# RUNOFF CONCENTRATION
#-------------------------------------------------------
[RUNOFF_CONCENTRATION]

# using triagular weigthning method
# the bigger the factor, more lag time 
forest_runoff_peaktime = 1.0
grassland_runoff_peaktime = 0.5
irrPaddy_runoff_peaktime = 0.5
irrNonPaddy_runoff_peaktime = 0.5
sealed_runoff_peaktime = 0.15 
water_runoff_peaktime = 0.01

interflow_runoff_peaktime = 1.0
baseflow_runoff_peaktime = 2.0

# initial conditions:
# here only 1 layer is shown, but there are up to 10
runoff_concIni = NONE


#-------------------------------------------------------
# ROUTING MAPS and PARAMETERSD
#-------------------------------------------------------
[ROUTING]

PathRouting = $(FILE_PATHS:PathMaps)/routing





# Number of substep per day
# should be 10 for 0.5 deg but 24 for 0.1 deg

NoRoutingSteps = 10
#kinematic wave parameter: 0.6 is for broad sheet flow
chanBeta = 0.6

# Channel gradient (fraction, dy/dx)
chanGrad = $(PathRouting)/kinematic/changrad.nc
# Minimum channel gradient (for kin. wave: slope cannot be 0)
chanGradMin = 0.0001

#Channel Manning's n
chanMan = $(PathRouting)/kinematic/chanman.nc
#Channel length [meters]
chanLength = $(PathRouting)/kinematic/chanleng.nc
#Channel bottom width [meters]
chanWidth = $(PathRouting)/kinematic/chanbw.nc
#Bankfull channel depth [meters]
chanDepth = $(PathRouting)/kinematic/chanbnkf.nc

# initial conditions:
channelStorageIni        = NONE
riverbedExchangeIni      = NONE
dischargeIni             = NONE


OUT_Dir = $(FILE_PATHS:PathOut)
#OUT_MAP_Daily = discharge
#OUT_MAP_Daily = runoff
#OUT_MAP_MonthAvg = discharge
#OUT_TSS_Dailyq = runoff

OUT_TSS_Daily = discharge
#OUT_TSS_MonthEnd = discharge
#OUT_TSS_MonthTot = discharge
#OUT_TSS_MonthAvg = discharge
#OUT_TSS_AnnualAvg = discharge
#OUT_TSS_AnnualEnd = discharge


#-------------------------------------------------------
# LAKES AND RESERVOIRS
#-------------------------------------------------------
[LAKES_RESERVOIRS]

PathLakesRes = $(FILE_PATHS:PathMaps)/routing/lakesreservoirs

# ID of every lake, reservoir from HydroLakes database
waterBodyID = $(PathLakesRes)/lakesResID.nc
# 1 for lake, 2 for reservoir, 3 for lake and reservoir
waterBodyTyp = $(PathLakesRes)/lakesResType.nc
# Avergae discharge from HydroLakes Database
waterBodyDis = $(PathLakesRes)/lakesResDis.nc

# Lakes surface area from HydroLakes Database 
waterBodyArea = $(PathLakesRes)/lakesResArea.nc
# a factor to scale the outlet of a lake
#lakeAFactor = 1.0  -> calibration

# Reservoirs
# reservoir volume from HydroLakes database
waterBodyVolRes = $(PathLakesRes)/lakesResVolRes.nc
# reservoir starting year from HydroLakes database 
waterBodyYear = $(PathLakesRes)/lakesResYear.nc

#  Conservative, normal and flood storage limit (fraction of total storage, [-])
conservativeStorageLimit = 0.1
#normalStorageLimit = 0.5   # --> put into calibration
floodStorageLimit = 0.9
# adjusting the balance between normal and flood storage
# [0 ..1]  0: NormalstorageLimit      1: (= closer to flood) results in keeping the normal qoutflow longer constant
adjust_Normal_Flood = 0.5

# Minimum, Normal and Non-damaging reservoir outflow  (fraction of average discharge, [-])
MinOutflowQ = 0.2
NormalOutflowQ = 1.0
NonDamagingOutflowQ = 4.0


# initial conditions:
lakeInflowIni        = NONE
lakeStorageIni       = NONE
outLakeIni           = NONE
lakeOutflowIni       = NONE
reservoirStorageIni  = NONE


#-------------------------------------------------------
[INFLOW]
#-------------------------------------------------------

# if option inflow = true
# the inflow from outside is added at inflowpoints

# OPTIONAL: nominal map with locations of (measured)inflow hydrographs [cu m / s]
InflowPoints = $(FILE_PATHS:PathMaps)/others/inflowpoints.map
# OPTIONAL: observed or simulated input hydrographs as time series [cu m / s]
#Note that identifiers in time series correspond to InflowPoints
QInTS = nile_assiut.tss



NetCDF meta data

Output Meta NetCDF information

The metaNetcdf.xml includes information on the output netCDF files e.g. description of the parameter, unit ..

Example of a metaNetcdf.xml file:

<CWATM>
# METADATA for NETCDF OUTPUT DATA

# varname: name of the variable in the CWAT code
# unit: unit of the varibale
# long name# standard name

# Discharge maps 
<metanetcdf varname="discharge" unit="m3/s"  standard_name="Discharge" long_name="Discharge in cubic meter per second"  title="1st Demo CWATM" author="PB" />

# others
<metanetcdf varname="soilmoisture" unit="mm"  standard_name="soil moisture" long_name="Soil moisture"  title ="1st Demo CWATM" author="PB" />

# Initial condition Files
<metanetcdf varname="initcondition"  purpose ="Initial Conditions CWATM" author="PB" />
<metanetcdf varname="SnowCover1" unit="mm"  standard_name="SnowCover1" long_name="Snow cover top layer"  />
<metanetcdf varname="SnowCover2" unit="mm"  standard_name="SnowCover2" long_name="Snow cover middle layer"  />
<metanetcdf varname="SnowCover3" unit="mm"  standard_name="SnowCover3" long_name="Snow cover lower layer"  />
<metanetcdf varname="FrostIndex" unit="degree/days"  standard_name="FrostIndex" long_name="Frost index based on Molnau, Bissel (1983)"  />
</CWATM>

Name and location of the NetCDF meta data file

In the settings file the name and location of the metadata file is given.

#-------------------------------------------------------
[NETCDF_ATTRIBUTES]
institution = IIASA
title = Global Water Model - WATCH WDFEI
metaNetcdfFile = $(FILE_PATHS:PathRoot)/CWATM/source/metaNetcdf.xml

Initialisation

CWATM needs to have estimates of the initial state of the internal storage variables, e.g. the amount of water stored in snow, soil, groundwater etc.

There are two possibilities:

  1. The initial state of the internal storage variables are unknown and a first guess has to be used e.g. all storage variables are half filled.
  2. The initial state is known from a previous run, where the variables are stored at a certain time step. This is called warm start

The the warm start is usful for:

  • using a long pre-run to find the steady-state storage of the groundwater storage and use it as initial value
  • using the stored variables to shorten the warm-up period
  • using the stored variables to restart every day with the values from the pre3vious day (forecasting mode)

Example of soil moisture

The next figure shows the impact of different initial condition on the soil moisture of the lower soil. In one of the simulations the soil is initially almost ompletely saturated. In another simulation the soil is completely dry and the third simulation starts with initial conditions in between the two extremes.

In the beginning the effect of different initial condition can be seen clearly. But after one year the three curves converge. The memory of the lower soil goes back for about one year.

For all the initial condition apart from groundwater the memory is about 12 month. That means practically a spin-up of one year is sufficient to habve enough warm-up time.

_images/init_soilmoisture.jpg

Figure: Simulation of soil moisture in the lower soil with different initial conditions

For the groundwater zone a longer warm-up period is needed, because of the slow response of groundwater. Here a rather fast reacting groundwater storage is shown with the three curves coverge after two years.

_images/init_groundwater.jpg

Figure: Simulation of groundwater storage with different initial conditions

Cold start

For a cold start the values of the storage variables are unknown and set to a “first” guess. A list of variables and their default value for a cold start is given below in: Initial conditions

Set up a cold start in the settingsfile

In the settings file the option: load_initial has to be set on False

145
146
147
148
149
150
151
152
#-------------------------------------------------------
[INITITIAL CONDITIONS]
#-------------------------------------------------------

# for a warm start initial variables a loaded
# e.g for a start on 01/01/2010 load variable from 31/12/2009
load_initial = False
initLoad = $(BASICS:PathRoot)/init/Rhine_20030131.nc

Note

It is possible to exclude the warming up period of your model run for further analysis of results by setting the SpinUp option

[TIME-RELATED_CONSTANTS]
SpinUp =  01/01/1995

Storing initial variables

In the settings file the option save_intitisal has to be set to True

The name of the initial netCDF4 file has to be put in initsave

and one or more dates have to be specified in StepInit

154
155
156
157
158
# saving variables from this run, to initiate a warm start next run
# StepInit = saving date, can be more than one: 10/01/1973 20/01/1973
save_initial = True
initSave = $(BASICS:PathRoot)/init/Rhine
StepInit = 31/12/1995 31/12/2010

Warm start

CWATM can write internal variables to a netCDF file for choosen timesteps. These netCDF files can be used as the initial conditions for a suceeding simulation.

This is useful for establishing a steady-state with a long-term run and then using this steady-state for succeding simulations or for an every day run (forecasting mode)

Warning

If the parameters are changes after a run(especially the groundwater parameters) the stored initial values do not represent the conditions of the storage variables. Stored initial conditions should not be used as initial values for a model run with another set of parameters. If you do this during calibration, you will not be able to reproduce the calibration results!

Set up a cold start in the settingsfile

In the settings file the option: load_initial has to be set on True And define the name of the netcdf4 file in initLoad

Note

Use the initial values of the previous day here. E.g. if you run the model from 01/01/2006 use the inital condition from 31/12/2005

145
146
147
148
149
150
151
152
#-------------------------------------------------------
[INITITIAL CONDITIONS]
#-------------------------------------------------------

# for a warm start initial variables a loaded
# e.g for a start on 01/01/2010 load variable from 31/12/2009
load_initial = False
initLoad = $(BASICS:PathRoot)/init/Rhine_20030131.nc

Initial conditions

No. Variable Description Default value Number of maps
1 SnowCover Snow cover for up to 7 zones 0 7
2 FrostIndex Degree days frost threshold 0 1
3 Forest state Interception storage 0 1
    Top water layer 0 1
    Soil storage for 3 soil layers 0 3
4 Grassland state Interception storage 0 1
    Top water layer 0 1
    Soil storage for 3 soil layers 0 3
5 Paddy irrigation state Interception storage 0 1
    Top water layer 0 1
    Soil storage for 3 soil layers 0 3
6 Irrigation state Interception storage 0 1
    Top water layer 0 1
    Soil storage for 3 soil layers 0 3
7 Sealed area state Interception storage 0 1
8 Groundwater Groundwater storage 0 1
9 Runoff concentration 10 layers of runoff concentration 0 10
10 Routing Channel storage 0.2 * total cross section 1
  Routing Riverbed exchange 0 1
  Routing Discharge depending on ini channel stor. 1
11 Lakes and Reservoirs Lake inflow from HydroLakes database 1
    Lake outflow same as lake inflow 1
    Lake&Res outflow to other lakes&res same as lake inflow 1
    Lake storage based on inflow and lake area 1
    Reservoir storage 0.5 * max. reservoir storage 1
    Small lake storage based on inflow and lake area 1
    Small lake inflow from HydroLakes database 1
    Small lake outflow same as small lake inflow 1

Model Output

An advantage of CWATM is the full flexibility of the output variables.

  • All parameters and variables can be used for output as maps or time series.
  • Even if the model is run at daily timestep, output can be daily, monthly, annual, at the end of a run
  • all variables maps are stored as netcdf and the meta data information can be added

Time depending and non depending output maps

Output maps will be produced as spatial maps, stack of spatial maps (over time)
Format: netCDF4

The netCDF maps can be read with:

Windows

Linux

Or time series at specified points

Timeseries are procuded as ASCII files, which can be read with every text editor
The specific point where timeseries are provided are defined in the settings file as Gauges:
# Station data
# either a map e.g. $(FILE_PATHS:PathRoot)/data/areamaps/area3.map
# or a location coordinates (X,Y) e.g. 5.75 52.25 9.25 49.75 )
# Lobith/Rhine
Gauges = 6.25 51.75

# if .tif file for gauges, this is a flag if the file is global or local
# e.g. Gauges = $(FILE_PATHS:PathRoot)/data/areamaps/gaugesRhine.tif
GaugesLocal = True

Output variables

Output can be every global defined variable in the model Variable are e.g. Precipitation, runoff, baseflow

but also not so common variables as:

  • reservoirStorage (amount of water in the reservoirs in [m3])
  • nonIrrReturnFlowFraction (returnflow from domenstic and industrial water use [m3])
  • actualET[1] (actual evapotranspiration from grassland [m/day])
  • ...

Daily, monthly - at the end or average

  • per day
  • total month, average month, end of month
  • total year, average year, end of year
  • total average, total at the end

for example

[OUTPUT]
# OUTPUT maps and timeseries
OUT_Dir = $(FILE_PATHS:PathOut)
OUT_MAP_Daily = discharge, runoff
OUT_MAP_MonthAvg = Precipitation
OUT_MAP_TotalEnd = lakeStorage
OUT_MAP_TotalAvg = Tavg

OUT_TSS_Daily = discharge
OUT_TSS_AnnualAvg = Precipitation

Note

For each variable the meta data information can be defined in Output Meta NetCDF information

Note

For information how to adjust the output in the settings file see Output