Author: Van Oproy Kurt
The objectif is to make a realistic hydrograph for the destroyed measurestation at Altenahr, based on the Ahr's tributaries.
Therefore, the watersheds of the important tributaries of the Ahr were delineated seperately, selecting only the tributaries of the Ahr upstream from Altenahr.
For each watersheds a runoff calculation was performed, and the discharge values were transposed to an Excel file.
The first combined results gave a reaction profile for the discharge at Altenahr that started 1.5 hours earlier than the observed flow.
Video of houses of the Uberdorfstrasse 2 and 4 in Insul, where the height of floodwave - shown in the video - was at least 1.5 - 2 meters above the street level.
Video interview with local Christof Pätz in Altenburg:
I added my own collected information, starting from feature/row "HQ 100 (m³/s)".
The plot 'MidAhr(Fr)' contains the aggregated flowrate, which is based on the precipitation of the nearest location with pluvio data I could find, for places like Freilingen, Barweiler, ...
The first set is representing the Sahrbach catchment surface runoff.
The runoff values were calculated for these tributaries:
Sahrbach start of flood in Kirchsahr | Sahrbach flood Kirchsahr 2 |
Rainfall data of Freilingen pluviometer
Rainfall data of Scheuerheck & Wald pluviometers
we merge the individual hydrographs.
Summation of the discharges of the streams upstream of Altenahr
We looked up the land use for each deliniated watershed using as source the "classification map Germany 2019".
This landcover map was produced as an intermediate result in the course of the project incora (Inwertsetzung von Copernicus-Daten für die Raumbeobachtung, mFUND Förderkennzeichen: 19F2079C) in cooperation with ILS (Institut für Landes- und Stadtentwicklungsforschung gGmbH) and BBSR (Bundesinstitut für Bau-, Stadt- und Raumforschung) funded by BMVI (Federal Ministry of Transport and Digital Infrastructure). The goal of incora is an analysis of settlement and infrastructure dynamics in Germany based on Copernicus Sentinel data.
This classification is based on a time-series of monthly averaged, atmospherically corrected Sentinel-2 tiles (MAJA L3A-WASP: https://geoservice.dlr.de/web/maps/sentinel2:l3a:wasp; DLR (2019): Sentinel-2 MSI - Level 2A (MAJA-Tiles)- Germany). It consists of the following landcover classes:
10: forest
20: low vegetation
30: water
40: built-up
50: bare soil
60: agriculture
Calculation was done by the Qgis Lecos module "patch stats" function. Here are only 3 of the 6 usage groups shown.
The source file is big, and consists of land cover data of 39 European countries. I had to clip it.
Info about the 48 classes, and their colors:
https://collections.sentinel-hub.com/corine-land-cover/readme.html
Turns out that this data is not so fine gridded as the previous. However, the classification is very elaborate: there are 3 hierarchical levels.
But there are some "No data" patches, which are mostly (agricultural) land patches that appeared to have been plowed (Google maps), or left fallow, so the classification of these areas were too unclear at that time, I guess.
Get a Pandas dataframe from a PostgreSQL table using Psycopg2.
These are the Corine land cover percentages for the upper Ahr area.
The proportions of the 2 classifications turn out to be the same for forests, but not at all for other classes.
There seems to be some unification feasable with the up todate German map by only using the coarser level 2 labels.
Here we clip the raster to the extend of our area of interest.
It seems that we clipped on an extend, not by the mask layer. So we'll make corrections to the results.
The TanDEM-X Forest/Non-Forest Map (FNF) has been generated by processing and mosaicking more than 500,000 TanDEM-X bistatic images acquired from 2011 until 2015. The map has a spatial resolution of 50 x 50m.
We note that the data is rather old. Especially considering the damage caused to coniferous trees by the progress of the spruce beetle, and the mandatory affected tree fellings.
A comparison of the forest area land cover between 2015 and 2019-2020 can be made:
The main causes for concern were indeed: Upper Ahrregion, Sahrbach, Trierbach, Armuthsbach and Vischelbach.
It takes some time for the outflow of a specific tributary to reach Altenahr. First I applied a linear method, however a flood wave has an flow acceleration in respect of time. Hence a complicated nonlinear method should be used later. How complicated this implementation is, is the fact that this flow acceleration is not included in the HEC-RAS software flood wave module.
Here I tried out an approximation:
Estimation of the length of the waterpaths from outlet point to Altenahr. The small error to consider is that the location of the outlet point and the location of the respective measurestation are not same.
Distances of the outlet points to Altenahr, and their Latitude and Longitude.
First I estimated the water speed during the flood 9 km/ hour, but this might be only true for the max. discharge, or with acceleration included.
In physics the speed of a sudden flood water wave peak is $c_{hw}$.
We only need the trajectory from source downstream (or Müsch) to Altenahr. Moreover the streettunnel at Altenahr was from a certain level (and point in time) an artificial bypass for a portion of the flood water.
The difference in elevation, or slope, is +- 0.4%...
There is no elongation (diffusion) or shortening (dynamic) of the wave.
We can use Mannings formula for calculating the water velocity, with a hydraulic radius $R_h$, $V_w$ in m/s, flowing though a rough natural stream channel.
Channels in coarse gravel: n= 0.028
Also using an extra penalty for the "n" coefficient due to
The speed of the water of that flow: $u=\frac {1}{n_m}h^{2/3}\sqrt S$
Penalty for blocking flow path by clogged bridges
We apply the estimated time it takes for the water of the different outlets to travel to Altenahr.
The time it takes for the water to travel to Altenahr is included in the new index.
Next we replace the nan's in the end, and resample to 15 minute bins so we are in sync with the measurement rate...
resample into 15 or 5 minute bins.
The jagged form of the curve is caused by the fact that some rainfall data was 60 minute interval, but 15 minutes for the outflows (before time shifts).
Müsch is the place where the outflows of upper Ahr streams and those of Trierbach and Nohnerbach combine.
Around 14-07-2021 14:00 the Müsch sensor gave "strange" values, so they (HVZ) switched to the backup sensor. This one also gave odd results.
A copy of the recorded values that day has been provided, and I obtained a copy of the records.
I suspected that the flood forces discalibrated the sensors in their final moments. They should anytime be able to measure the correct waterlevel, also in the case of an extreme highwater event. This calculation is based on a fixed Pegelnullpunkt, in this case 292.77 m asl.
After some time I got more info to find reasons for the "strange" water level values:
When you see the elevation profile with the water flow path, you can deduct some things:
Above 2.9 m the water mass can stream over the eastbank, so that reduces the water level. It is visible as a plateau in the orange curve.
Note: the "Measured outflow at Altenahr", provided by the RLP Umwelt services, is derived from the water level.
The discharges were calculated by Lekan, and time shifted with a time lag in correspondence with the distance to Altenahr hydrometerstation.
This plot was based on a former calculation with coarser rainfall data...
The rainfall timeseries were not logged in European summer timings, so that means that an event at 18:00 is in fact happening at 19:00.
In other words: the blue curve has to move 1 hour to the right to be in sync with the waterlevel/outflow readings, which were in summer timings.
The displayed numbers are the outflows for some principal tributaries, and the combined - and also time-shifted - outflow of them all at Altenahr. $[m³/s]$
The rainfall peaks in Freilingen and Dreis-Brück occured about 4.5 to 6 hours later than the rainfall peaks on the right bank. This had to do with the very slow movement of the clouds that day (2-2.5km/hr), the orientation of the winds (SSW), and the exceptional amount of rainfall pouring down on the left bank that day.
But I like to mention that the amount of rainfall was +- the same in the morning of 14-07-2021 for all these locations.
The delay in arrival time is caused by the dynamic aspect of the flood wave: Dynamic wave
The average velocity of each stream should be calculated using manning’s equation u
The theoretical model for the flood wave used here, is a sudden dam breach. So an immediate height difference, not a gradual one as in river floods.
Source: Course CTB3350, Open Channel Flow, Faculty of Civil Engineering and Geosciences, February 2014, Delft University of Technology
Flood waves are in essence humps of water traveling downriver. Stated in more detail, they
are temporary increases and decreases of discharge and water level (‘stage’) in a river caused
by temporarily enlarged run-off in the catchment area due to heavy rainfall or snow melt,
which travel downriver as a wave.
The temporal evolution and dynamics of flood waves differ greatly between the upper reaches
and the lower reaches of a river.
In the upper reaches, characterized by relatively steep slopes and a small catchment area,
the response to an increased run-off can be quite fast, with rapid variations in flow rate and
water level, even to the extent that inhabitants along the river border are taken by surprise,
sometimes with fatal consequences.
In contrast, flood waves in the lower river reaches are slow processes, in many cases
taking place over several days, due to the larger catchment area, the existence of tributaries,
and the greater propagation distance from upstream. Run-off peaks in different part of the
larger catchment area do not in general occur simultaneously, so that the maximum of their
sum is less than the sum of the individual maxima. Moreover, as we will see, the internal
dynamics of the flood wave cause it to flatten and to elongate as it propagates.
A delay of 1 hour for the combined flow to arrive at Altenahr station, which can be explained by the (clogged) bridges, which were in fact obstacles, is visible.
The high-water wave speed (celerity) is $$c_{hw} = \frac{1}{B}\frac{dQ_u}{d d}= \frac{3}{2}\frac{B_c}{B}U$$
$$σ_s(t) = \sqrt[2]{2 K_0 t} $$and $i_b$: bed slope, and diffusivity, to be denoted as K: $$K_0 =\frac{Q_0}{2 i_b B}$$
Example from the course:
Because of the failure of a dam, a volume of 106 m3 of water is suddenly released in a river, at t = 0 in s = 0, say.
Initially, the flow is uniform; the bed slope is ib = 1.5 × 10−4, cf = 0.005, d = 3 m, conveyance width Bc = B storage width = 50 m.
Calculate:
Lets take the diffusion of the peak at Musch to Altenahr... which is probably too distorted to be detectable, by the presence of wave narrowing and blocking bridges.
$σ_s$ increases in time proportional to √t: the wave elongates.
For the wave at t1 and t2 the ratio V/B [length/width] remains constant.
So I need to get the water level and base differences for Musch and other tributaries, and compare them with these at Altenahr: that's too much hussle and too many unknowns.
In the preceding section, the variations in the slope of the free surface, which accompany the
passage of a flood wave, were ignored. Actually, the slope varies, being larger than the slope
in uniform flow (ib) in the leading part of a flood wave, i.e. at rising river stage in a fixed
point, whereas it is less than ib in the trailing part, i.e. at falling river stage.
Therefore, at a given stage, the discharge is greater when the surface elevation rises than when it falls.
This is a manifestation of the phenomenon of hysteresis.
From the plot we can conclude: the peak debit at Müsch happened 3:00-3:30 hours before the peak water level.
Also the orange curve is very steep, which points out that the water mass cannot pass swiftly through the narrow valley.
First I thought I'd need to differentiate...