A flood model¶
Introduction¶
The following figure presents a dyke protecting industrial facilities. When the river level exceeds the dyke height, flooding occurs. The model is based on a crude simplification of the 1D hydrodynamical equations of SaintVenant under the assumptions of uniform and constant flow rate and large rectangular sections. This model was first introduced in [deRocquigny2006], and then used in [Limbourg2010], [deRocquigny2012], [iooss2015], [baudin2015].
Height independent random variables are considered:
: flow rate ;
: Strickler ;
: downstream height ;
: upstream height ;
: river width ;
: river length ;
: altitude of the river banks ;
: height of the dyke .
When the Strickler coefficient increases, the riverbed generates less friction.
The altitude of the dyke is:
The slope of the river is assumed to be close to zero, which implies:
if . The water depth is ([deRocquigny2012] eq. 3.2 page 79) :
for any . The flood altitude is:
The altitude of the surface of the water is greater than the altitude of the top of the dyke (i.e. there is a flood) if ([deRocquigny2012] eq. 3.3 page 79):
is greater than zero.
The following figure presents the model with more details.
The cost can be decomposed into the building of the dyke and the cost of the flood ([iooss2015] eq. 5.3 page 103):
where the cost of the dyke is:
and the cost of the flood is:
We assume that the 8 inputs have the following distributions. We consider 2 different set of hypotheses.
In the hypothesis where is low, then its distribution is uniform in the interval .
In the hypothesis where is high, then its distribution is uniform in the interval . This is the hypothesis used in [iooss2015].
Input variable 
Distribution 

Gumbel(mode=1013, scale=558), > 0 

Normal(mu=30.0, sigma=7.5), > 0 

Uniform(a=49, b=51) 

Uniform(a=54, b=56) 

Triangular(min=295, mode=300, max=305) 

Triangular(min=4990, mode=5000, max=5010) 

Triangular(min=55, mode=55.5, max=56) 

Uniform(min=2, max=4) 
Table 1. Distribution of the input random variables in the scenario where is low.
Input variable 
Distribution 

Uniform(min=7, max=9) 
Table 2. Distribution of the input random variables in the scenario where is high. The other variables have the same distribution.
Moreover, we assume that the input random variables are independent.
We want to estimate the flood probability:
The results depend on the hypothesis chosen for .
If is low, then (with coefficient of variation lower than 0.01). In this case, the model is mostly additive.
If is high, then (with coefficient of variation lower than 0.01). In this case, the model for has interactions, mainly for , , and . The model is mostly additive for and .
Analysis of the model¶
The next figure presents the river height depending on the flowrate when the other parameters are set to their mean values. We see that the river height as a power model shape which is a property of the ManningStrickler model.
(Source code
, png
)
The next figure plots the cost depending on the overflow in the default scenario where the dyke height is low. It makes use of a Quasi Monte Carlo sample of size .
(Source code
, png
)
The next figure plots the cost depending on the dyke height when the other parameters are set to their mean values. We notice that the cost first decreases because the flooding cost decreases when the dyke height increases. Then the cost increases because cost of the dyke increases when the dyke height increases.
(Source code
, png
)
The next figure presents the distribution of the three outputs in the default scenario where the height of the dyke is low. It is based on a MonteCarlo sample of size and uses the histogram to estimate the density of the output of the model.
(Source code
, png
)
The next figure presents the distribution of the three outputs in the scenario where the height of the dyke is high.
(Source code
, png
)
The next figure presents the Sobol’ indices of the three outputs in the scenario where the height of the dyke is low. We estimate the Sobol’ indices from sampling, using a root sample size equal to and the Sobol’ low discrepancy sequence.
(Source code
, png
)
The next figure presents the Sobol’ indices of the three outputs in the scenario where the height of the dyke is high.
(Source code
, png
)
The next figure presents the Sobol’ indices of the height model output with four inputs only. This is a simpler model that leads to a simplified analysis.
(Source code
, png
)
Analysis of the calibration problem¶
In this section, we analyse why calibrating the parameters of this model may raise some difficulties.
First, the slope only depends on the difference . This is why and cannot be identified at the same time. In algebraic terms, there is an infinite number of couples which generate the same difference .
Second, the denominator of the expression of involves the product . In algebraic terms, there is an infinite number of couples which generate the same product . This is why either or can be identified separately, but not at the same time. This shows that only one parameter can be identified.
Hence, calibrating this model requires some regularization which can be done by Bayesian methods.
References¶
API documentation¶
 class FloodModel(trueKs=30.0, trueZv=50.0, trueZm=55.0, distributionHdLow=True)
Data class for the flood model.
 Parameters:
 Lfloat, optional
Length of the river. The default is 5000.0.
 Bfloat, optional
Width of the river. The default is 300.0.
 trueKsfloat, optional
The true value of the Ks parameter. The default is 30.0.
 trueZvfloat, optional
The true value of the Zv parameter. The default is 50.0.
 trueZmfloat, optional
The true value of the Zm parameter. The default is 55.0.
 distributionHdLowbool, optional
If True, then the distribution of Hd is uniform in [2, 4] i.e the dyke is relatively low. Otherwise, the distribution of Hd is uniform in [7, 9] i.e the dyke is relatively high. The default is True.
Examples
>>> from openturns.usecases import flood_model >>> # Load the flood model >>> fm = flood_model.FloodModel() >>> print(fm.data[:5]) [ Q ($m^3/s$) H (m) ] 0 : [ 130 0.59 ] 1 : [ 530 1.33 ] 2 : [ 960 2.03 ] 3 : [ 1400 2.72 ] 4 : [ 1830 2.83 ] >>> print("Inputs:", fm.model.getInputDescription()) Inputs: [Q, Ks, Zv, Zm, B, L, Zb, Hd] >>> print("Output:", fm.model.getOutputDescription()) Output: [H, S, C]
Get the height model.
>>> heightInputDistribution, heightModel = fm.getHeightModel() >>> print("Inputs:", heightModel.getInputDescription()) Inputs: [Q,Ks,Zv,Zm] >>> print("Outputs:", heightModel.getOutputDescription()) Outputs: [H]
Get the flooding model with high Hd scenario.
>>> fm = flood_model.FloodModel(distributionHdLow=False)
 Attributes:
 dimThe dimension of the problem
dim=4
 Q
TruncatedDistribution
of aGumbel
distribution ot.TruncatedDistribution(ot.Gumbel(558.0, 1013.0), 0.0, ot.TruncatedDistribution.LOWER)
 Ks
TruncatedDistribution
of aNormal
distribution ot.TruncatedDistribution(ot.Normal(30.0, 7.5), 0.0, ot.TruncatedDistribution.LOWER)
 Zv
Uniform
distribution ot.Uniform(49.0, 51.0)
 Zm
Uniform
distribution ot.Uniform(54.0, 56.0)
 B
Uniform
distribution Triangular(295.0, 300.0, 305.0)
 L
Uniform
distribution ot.Triangular(4990.0, 5000.0, 5010.0)
 Hd
Uniform
distribution ot.Uniform(54.0, 56.0)
 Zb
Uniform
distribution The distribution depends on distributionHdLow.
 model
ParametricFunction
The flood model. The function has input dimension 4 and output dimension 1. More precisely, we have and . Its parameters are .
 distribution
JointDistribution
The joint distribution of the input parameters.
 data
Sample
of size 10 and dimension 2 A data set which contains noisy observations of the flow rate (column 0) and the height (column 1).
Methods
getHeightModel
([L, B, Zb, Hd])Return the height model with corresponding input distribution
 getHeightModel(L=5000.0, B=300.0, Zb=55.5, Hd=3.0)
Return the height model with corresponding input distribution
 Parameters:
 Lfloat, optional
The value of the river length. The default is 5000.0.
 Bfloat, optional
The value of the river width. The default is 300.0.
 Zbfloat, optional
The level (altitude) of the bank. The default is 55.5.
 Hdfloat, optional
The height of the dyke. The default is 3.0.
 Returns:
 heightInputDistributionot.Distribution(4)
The joint input distribution of (Q, Ks, Zv, Zm).
 heightModelot.Function(4, 1)
The function with (Q, Ks, Zv, Zm) as input and (H) as output.
Examples based on this use case¶
Compare unconditional and conditional histograms
Compute squared SRC indices confidence intervals
Estimate a flooding probability
Generate flooding model observations
Calibrate a parametric model: a quickstart guide to calibration
Calibration of the flooding model
Bayesian calibration of the flooding model