Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Figure 1      Schematic overview of Urbanwb model

In this figure:

ElementsWater flows

A

= area

P_atm

= precipitation

atm

= atmosphere

E_atm

= evaporation

PR

= paved roof  

T_atm

= transpiration 

CP

= closed paved  

R_up

= decoupled runoff

OP

= open paved 

R_ow

= runoff to open water

UP

 = unpaved

I_uz

= infiltration

OW

= open water

P_gw

= percolation

UZ

= unsaturated zone 

D_ow

= drainage 

GW

= groundwater

S_out

= downward seepage

MSS

= mixed sewer system 

R_mss / R_swds

= runoff to sewer systems 

SWDS

= stormwater drainage system

SOF

= sewer overflow on street

SO

 = sewer overflow

Q_ow

= discharge to open water

WWTP

 = waste water   treatment plant

Q_out

= discharge to outside / WWTP

 

History

Originally the time step was 1 day. That way time series of more than 100-year rainfall and evaporation could be managed in EXCEL. A smaller time step could also be applied (1 hour, 15 minutes, 5 minutes). However, because of the limitations of EXCEL, a smaller time step implies much shorter time series. Transforming the water balance tool to a set of Python scripts solved this limitation. This set of Python scripts that has been combined in the Urbanwb model. This documentation describes the Urbanwb model.

Model purpose

This tool has been developed to determine the return periods of runoff events for relatively small urban areas in which the basic hydro(geo)logic conditions are assumed to be similar for the entire area. Determination of runoff return periods requires large time series of rainfall and evaporation, preferably at least 30 years.

The calculation results of the Urbanwb model are much less accurate and detailed as the calculation results of detailed hydraulic models, like SOBEK and MIKE-urban. It is commonly accepted to design urban water systems based on the calculation results of these hydraulic models for a single design rainstorm. However, the runoff caused by a design rainstorm, also depends on the initial conditions in all parts of the urban water system.

Main advantage of the Urbanwb model is that multiple different rainstorms with all kinds of actual antecedent weather conditions, resulting in all kinds of different initial conditions in all parts of the urban water system, are calculated. Other relevant advantages are that both model building and model calculations take much less time.

General model description

The Urbanwb model is a lumped conceptual model for urban water balance modelling. Urbanwb model simulates dominant dynamic hydrological processes of an urban water system. Rainfall-runoff processes, shallow groundwater (saturated and unsaturated zone), surface water and sewer systems (mixed and stormwater drainage) are all incorporated in Urbanwb model. Three external boundaries are included (atmosphere, deep groundwater and outside water / waste water treatment plant) to where water can be exchanged.

Figure 1 provides a schematic overview of Urbanwb model with its fundamental elements included. Under this conceptual framework, major hydrological dynamics in an urban water system can be quickly and indicatively modelled to provide users with a general idea of the water quantity distribution and how the water system behaves under certain conditions.

Below you find a brief introduction of the major components of the Urbanwb model. Chapter 2 describes these components into much more detail.

1.2      Major components

In the Urbanwb, the land use area is divided into:

  • Paved area above floor level
    o    Paved Roof (PR), i.e. buildings.
  • Paved area at floor level
    o    Closed Paved (CP), completely sealed.
    o    Open Paved (OP), allowing some infiltration.
  • Unpaved area at floor level
    o    Unpaved (UP).
  • Surface water at floor level
    o    Open Water (OW).

Below floor level, the distinguished components are:

  • Unsaturated Zone (UZ)
    o    Since water is assumed to flow mainly vertically in the UZ is irrelevant below PR and CP from where all runoff flows directly into the sewer system (SWDS, MSS) or to UP when defined disconnected. UZ is neither relevant below OP where the limited infiltration is assumed percolating directly into GW. In other words, UZ is only relevant below UP areas for plant transpiration.
  • Shallow groundwater (GW)
    o    Although theoretically possible, UZ is assumed to be not present beneath OW. That implies that the groundwater level is irrelevant below OW, though the model allows to define a certain percentage of OW to be above the phreatic water table. The same goes for the groundwater below PR where a percentage of PR above groundwater level can be defined. Conversion of water flows between reservoirs with different areas depends on the area ratio of these reservoirs.
  • Sewer system (MSS and SWDS)
    o    A mixed sewer system (MSS) collects stormwater and domestic (and industrial) wastewater in the same pipe system. In extreme rain conditions, untreated mixed sewer overflows may cause serious pollution to recipient water bodies (Figure 2).
    Image Modified
    Figure 2      Mixed sewer system under dry, wet weather conditions, source: Wikipedia.
    o    Storm water drainage system (SWDS), i.e. the stormwater drainage component of two separate sewer systems. Separate sewer systems overcome the drawback of sewer overflow pollution of combined sewer system through disposing wastewater and stormwater into two separate systems. The storm water drainage system module is incorporated in the Urbanwb model

Boundaries, over which external water exchanges occur, are:

  • Atmosphere (Atm)
    o    Rainfall and potential evapo(transpi)ration are the main driving forces in the Urbanwb. Since the Urbanwb is a simple lumped conceptual model, other factors like temperature, relative humidity, wind and solar radiation are irrelevant. However solar radiation can be applied during preprocessing to transform daily evaporation time series into time series with smaller time steps.
  • Deep groundwater (Deep GW)
    o    Seepage from shallow groundwater (GW) to deep groundwater can be defined in the Urbanwb, either as a constant flux (downward, upward or zero) or as a dynamically computed water flow dependent on the difference between the computed groundwater level and the defined hydraulic head of the deep groundwater and on the defined vertical flow resistance.
  • Outside water and waste water treatment plant (Out and WWTP)
    o    MSS discharges its water to WWTP. The excess water in OW, i.e. water above target water level, is discharged to Outside Water. Both outflows are limited by predefined discharge rates. When the water level in OW get below the target water level, the difference is supplied by Outside Water (negative discharge).
    Note
    A typical Dutch polder has no natural gradient for drainage, thus excessive water is normally pumped through a pumping station into a higher elevated network of larger primary canals (Figure 3) from where the water is released into sea at low tide.
     Image Modified
    Figure 3      Dutch polder system, source: Hum 300 The Arts in Society.

1.3      General assumptions

  • Only rainfall is considered as the precipitation. Rainfall is instantaneously at the beginning of each time step.
  • Rainfall is intercepted by the surface layer, from where for paved areas first evaporation occurs and then (for open paved areas) infiltration for that time step starts. The evaporation rate is limited by the potential open water evaporation for that time step and infiltration is limited by the infiltration capacity of the open paved area. In unpaved areas evaporation and infiltration empty the interception storage simultaneously.
  • The runoff from paved areas flow to the sewer systems regardless of their inflow capacities (exceedance of this capacity is dealt with separately as sewer overflow on the street). Runoff from disconnected paved areas flows to the unpaved area.
  • All relevant parameters are defined by users in accordance with local conditions for the project area, like land use, soil, vegetation, surface water level, etc. Detailed explanations on parameter input is in chapter 2.
  • Calculated water flows and storage volumes are all expressed in depth (mm) per area for that component. For reservoir B, inflow from reservoir A to B is converted from outflow from A by considering the area ratio of reservoir A over B. For example, area of A is 5m2, area of B is 10m2, calculated outflow from A to B in terms of A is 2mm/hr, then the inflow of B from A in terms of B is 2 × Image Modified = 1mm/hr. In Urbanwb model, the water quantity is strictly conserved not only for the individual reservoir but also for the entire model.
  • Internal routing is irrelevant in Urbanwb model. It takes no time for the water to “travel” between reservoirs. Consequently, the model is applicable at neighbourhood scale and use at large spatial scale may be questionable. An analogy would be a glass of water being knocked over with water spilling over the table instantly, i.e. the mass balance is conserved but routing is ignored.
  • Urban adaptation measures can be implemented with Urbanwb model through incorporating Adaptive Measure module. The measure module is an individual component that interacts with the basic reservoirs of Urbanwb model. Detailed explanations on adaptive measure structure is described in section 2.9 .
  • Parameters to initialize the model are allocated into two parts and saved in separate configuration files. In the neighbourhood configuration file, parameters of local urban environment like land use fractions, soil type, target water level, etc. are stored. In the measure configuration file, parameters to that setup the measure are stored. Since for any model goes “Garbage in = garbage out”, we advise the user to estimate model parameters based on scientific literature and empirical evidence supported by expert judgement.
  • Any water flow from A to B (e.g. infiltration) is basically limited by three aspects: the available water volume in A, the available storage in B and the transport capacity from A to B.

2       Model components 

This section explains in detail how each of the Urbanwb components is architected. Their underlying principles, simplifying assumptions, and calculation orders are explained in depth in this section. At the end of this chapter, in section 2.9 , the method of applying adaptation measures is described. The possibility of generating runoff to adaptation measures however, is provided in all components.

2.1      Paved Roof

Paved Roof (PR) refers to all kinds of buildings in an urban area ranging from low-rise buildings (e.g. single dwelling, apartment complex) to high-rise buildings (e.g. high-rise housing, skyscraper). On rooftop, a roof drainage system collects rainwater in gutters and drains it into a sewer through a downspout pipe. A small amount of rainwater ponded or intercepted on the roof surface is defined as interception storage. It can be emptied only through evaporation. Water exceeding the interception storage capacity becomes runoff on the Paved Roof. Basically, all runoff ends in the sewer system (SWDS and/or MSS). However, the Urbanwb offers the option of disconnecting (part of) the runoff. The disconnected part of the runoff is assumed to flow to the Unpaved area. Figure 4  provides a schematic overview.

 Figure   4        Schematic overview of Paved Roof (PR) in Urbanwb

2.1.1       Assumptions

  • Rainwater falling on the building roof is first retained as interception storage and depleted by evaporation, and then excess water becomes runoff. In other words, only rainfall exceeding interception storage capacity runs off. Provided that a considerably large interception storage capacity on Paved Roof is predefined, there is no runoff generated.
  • (Connected) runoff on Paved Roof is redistributed to sewer systems (SWDS and MSS) and Unpaved (UP) by predefined ratios. If part of roof is disconnected to sewer system, for instance a minor fraction of water flows out from the roof edge down to the ground directly, that disconnected fraction of runoff is assumed to flow to Unpaved area. However, given a normally functioning roof drainage system, the majority of the runoff from Paved Roof contributes to the storm water drainage system (SWDS) or (and) combined sewer system (MSS) at predefined proportions.

2.1.2       Calculation order

  •  Initial interception storage on Paved Roof at the beginning of current time step is remaining interception storage on Paved Roof at the end of previous time step plus rainfall at current time step, and it is limited by predefined interception storage capacity on Paved Roof.
  • (Actual) evaporation from interception on Paved Roof during current time step is limited by potential Open Water evaporation and available initial interception storage on Paved Roof during the same time step. Evaporation is possible only if the interception storage contains water.
  • (Final) interception storage on Paved Roof at the end of current time step is evaporation subtracted from initial interception storage.
  • (Total) runoff from Paved Roof during current time step is rainfall subtracting actual evaporation and the change in interception storage between the same time step and previous time step. Total runoff from Paved Roof are redistributed to the measure (Meas), sewer system (SWDS and MSS) and Unpaved (UP) at predefined ratios.
  • Subtracting the runoff to the measure from total runoff is the remaining runoff. Connected remaining runoff is reallocated to storm water drainage system (SWDS) and combined sewer system (MSS) at predefined proportions while disconnected remaining runoff flows to Unpaved area (UP) at predefined ratio.

2.1.3       Code and input arguments

 

class urbanwb.pavedroof.PavedRoof(intstor_pr_t0, pr_no_meas_area, pr_meas_area, pr_meas_inflow_area, intstorcap_pr=1.6, swds_frac=1.0, discfrac_pr=0.0, **kwargs)          [source]

Bases: object

Creates an instance of PavedRoof class with given initial states and properties, iterates sol() function to compute states and fluxes of Paved Roof at each time step.

 

Parameters:

  • intstor_pr_t0 (float) – initial interception storage on Paved Roof (at t=0) [mm]
  • r_no_meas_area (float) – area of Paved Roof without measure [m^2]
  • pr_meas_area (float) – area of Paved Roof with measure [m^2]
  • pr_meas_inflow_area (float) – measure inflow area from Paved Roof, i.e. runoff inflow area to measure from Paved Roof (>= area of Paved Roof with measure and <= total area of Paved Roof) [m^2]
  • intstorcap_pr (float) – predefined interception storage capacity on Paved Roof [mm]
  • swds_frac (float) – part of urban paved area with storm water drainage system (SWDS) [-]
  • discfrac_pr (float) – part of Paved Roof that is disconnected from sewer system [-]


inflowfac()                            [source]

Calculates measure inflow factor of Paved Roof.

 

Returns:                               Measure inflow factor of Paved Roof

...

This function performs single run of the model. It can save all results or selected results in to an output csv file.

# save all results

#    module name     func name     timeseries name neighbourhood measure     outputfile

python -m urbanwb.main_with_measure save_to_csv timeseries.csv config1.ini config2.ini output.csv


# save selected results

#     module name     func name     timeseries name neighbourhood measure     outputfile variable to save     save_all  is False -> save selected

python -m urbanwb.main_with_measure save_to_csv timeseries.csv config1.ini config2.ini output.csv  owl r_pr_swds  theta_uz --save_all=False 

5.3.2    batch_run_sdf

This function performs batch run on different pumping capacity to produce database which can be used to plot Storage-Discharge-Frequency (SDF) Curve

  Running the model — urbanwb 0.1.0 documentation 

# mean daily rainfall as baseline q, batch run [4,5]

#     module name     function     ts.csv     config1.ini     config2.ini     output.csv     random number     baseline q default

python -m urbanwb.main_with_measure batch_run_sdf ep_ts.csv  ep_neighbourhood.ini  ep_measure.ini  ep2_results.csv --q_list=[4,5]


 

# 4 as baseline q, batch run [10,20]

#     module name     function     ts.csv     config1.ini     config2.ini     output.csv     random number     baseline q predefined

python -m urbanwb.main_with_measure batch_run_sdf ep_ts.csv ep_neighbourhood.ini ep_measure.ini ep2_results1.csv --q_list=[10,20] --baseline_q=4


# 3 as baseline q, batch run [min,max,steps] --- [4,8,3]

#     module name     function     ts.csv     config1.ini     config2.ini     output.csv     [min,max,steps]     baseline q:predefined     AP: True to enable  [min,max,steps]. if False, then q_list random numbers

python -m urbanwb.main_with_measure batch_run_sdf ep_ts.csv ep_neighbourhood.ini ep_measure.ini ep2_results2.csv --q_list=[4,8,3] --baseline_q=3 --arithmetic_progression=True

The SDF function can be used to get an indication of the return period of the runoff depth that a catchment can withstand, based on the storage and discharge capacity. It can provide insights in whether it is more cost-efficient to invest in storage capacity or if it is more efficient to increase the drainage capacity. The values needed for the SDF function are obtained using the 'batch_run_sdf' function. Below it is described how these values are obtained and what has to be done in order to create a SDF curve.

...

The required parameters are as following:

Parameter

Description

ts.csv

The filename of the input data of precipitation and evaporation

config1.ini

The filename of the static form of general parameters

config2.ini

The filename of the static form of measure parameters

output.csv

The filename of the output file of solutions

q_list

A list of values to update the discharge capacity of the open water leaving the model

baseline_q

A baseline q to compare with. If baseline_q is not defined, the default baseline q is assumed to be the mean daily rainfall.

arithmetic_progression

False = the values in q_list will be used for the derivation of the SDF curves.

 

True = q_list indicates a range of values with equal steps: [start, stop, number of steps].

E.g. q_list = [5, 7, 4]

Model will run using a q_ow_out_cap of 5, 5.5, 6, 6.5, 7. Note that it uses the first number as an initial. The steps are adding to this. Therefore, there will be 5 values for q on top of the baseline_q at an amount of 4 steps.

 Process

  1. The model runs using the user-defined neighbourhood/catchment and measure parameters.
  2. When the runoff in the model is exceeding the discharge capacity of the open water leaving the model, then the open water level increases. This open water level deviation is calculated using the target open water level and represents the storage depth for the SDF function.
  3. For each time step, there will be a storage depth. All depths are grouped in events, where an event is divided by a 6-hour interval of no storage depth.
  4. From each event, the maximum storage depth is obtained. The maxima are sorted, and a rank is assigned to each maximum.
  5. In order to investigate what happens to the storage depths at different open water discharge capacities, several discharges are assigned by the user in ‘q_list’. The model runs for each of the specified discharges and follows steps 2-4.

...

It can vary one parameter with a list of values or vary two parameters at the same time.

#     module     function     ts.csv     config1.ini     config2.ini     output.csv     var to change     value to update var     corresp var     value for corresp var     baseline runoff     measure runoff to save 

python -m urbanwb.main_with_measure batch_run_measure ep_ts.csv ep_neighbourhood.ini ep_measure.ini ep3_results.csv --varkey="storcap_btm_meas" --vararrlist1=[1050,1200] --correspvarkey=None -vararrlist2=None --baseline_variable="r_cp_swds" --variable_to_save="q_meas_swds"

python -m urbanwb.main_with_measure batch_run_measure ep_ts.csv ep_neighbourhood.ini ep_measure.ini ep3_results.csv --varkey="storcap_btm_meas" --vararrlist1=[1050,1200] --correspvarkey="runoffcap_btm_meas" --vararrlist2=[30,40] --baseline_variable="r_cp_swds" --variable_to_save="q_meas_swds"

python -m urbanwb.getconstants ep3_results.csv --num_year=30

5.4   References

...