Die europäische Wasserrahmen­richtlinie (WRRL): die Grundlage

Wasser kennt keine Grenzen. Darum endet das Thema auch nicht an den Grenzen Baden-Württembergs. Viele Herausforderungen können nur grenzüberschreitend oder gesamteuropäisch gemeistert werden. Darum hat die EU im Jahr 2000 mit der Wasserrahmenrichtlinie (WRRL) europaweite Standards definiert, um den guten Zustand der europäischen Gewässer zu erhalten oder wiederherzustellen. Wir machen in Baden-Württemberg auf dieser konkreten Basis unsere Gewässer besser.

 
 

Ein ganzheitlicheres Verständnis von Wasser: „Den guten Zustand unserer Gewässer erhalten oder wiederherstellen…“ – so beschreibt die Wasserrahmenrichtlinie ihr Ziel. Was bedeutet „guter Zustand“? Nun, früher wurde hier fast ausschließlich die chemische Belastung des Wassers betrachtet. Die WRRL setzt dem nun ein ganzheitlicheres Verständnis entgegen – und betrachtet unsere Gewässer – also alle Flüsse, Bäche, Seen und das Grundwasser – auch als Lebensräume.

 

Konkrete Maßnahmen für bessere Gewässer

Aus diesem ganzheitlicheren Verständnis ergeben sich verschiedene Ziele und Tätigkeitsfelder. Dort greifen wir mit konkreten Maßnahmen in die Gewässer ein, um sie zu verbessern. Hier sind sieben dieser Maßnahmen in den jeweiligen Bereichen exemplarisch dargestellt.

 

Raue Rampe und Fischtreppe – damit der Fluss keine Einbahnstraße ist

Eine Raue Rampe ist eine aus Steinen gebaute Stromschnelle. Eine Fischtreppe ist ein technisches Bauwerk aus vielen kleinen Becken. Beides hilft Fischen, Höhenunterschiede im Gewässer zu überwinden.

Revitalisierung – aus Kanälen werden wieder Lebensräume

Bei einer Revitalisierung wird aus einem gleichförmigen Kanal aus Stein und Beton ein strukturreiches und möglichst dynamisches Fließgewässer. So finden Fische und andere Wasserlebewesen, die hier früher natürlich vorkamen, wieder Lebensräume.

Auen – Lebensraum und Hochwasserschutz der Natur

Die Aue wird regelmäßig überschwemmt und ist zum Beispiel als Lebensraum ein wichtiger Teil eines Gewässers. Für Fische dient die Aue als Kinderstube. Intakte Auen sind auch für den Menschen gut, da sie Wasser zurückhalten und somit dem Hochwasserschutz dienen.

Mindestwasser – damit Gewässer nicht trockenfallen

Wasserentnahmen, wie beispielsweise durch Wasserkraftanlagen, können Abschnitte des Gewässers ökologisch beeinträchtigen. Damit sich diese in Grenzen halten, wird eine Mindestwassermenge im Fluss definiert und sichergestellt, sodass der Fluss immer durchgängig bleibt. Durchgängig ist ein Gewässer dann, wenn Fische und andere Wassertiere es durchwandern können.

Kläranlagen – gute Reinigung des Abwassers

Häusliche und industrielle Abwässer belasten die Gewässer und können eine Gefährdung für die menschliche Gesundheit darstellen, wenn sie nicht vor Einleitung in das Gewässer ausreichend behandelt werden. Kläranlagen reinigen das Abwasser – in mechanischen und biologischen Reinigungsstufen – von organischen Schadstoffen und reduzieren Nährstoffe, wie zum Beispiel Phosphor. Besondere Aufmerksamkeit widmen wir in letzter Zeit beispielsweise den Rückständen von Arzneistoffen, Pflanzenschutzmitteln oder Haushaltschemikalien, die sich im Gewässer als Spurenstoffe nachweisen lassen. Einige davon können bereits in sehr geringen Konzentrationen von weniger als einem Millionstel Gramm pro Liter der Umwelt schaden.

Regenwasseranlagen – zum Schutz der Gewässer

Bei Regenwetter werden Schmutz und Feststoffpartikel von Straßen, Dächern und sonstigen befestigten Flächen abgeschwemmt und in die Kanalisation eingeleitet. Auch die im Kanalnetz abgelagerten Schmutzstoffe werden mitgeschwemmt. Soweit möglich sammeln wir Regenwasser getrennt vom Schmutzwasser und leiten es danach – je nachdem, woher es kommt, mit oder ohne Behandlung – in ein oberirdisches Gewässer ein oder lassen es verdunsten und versickern. Alternativ, wenn dies möglich ist, sammeln wir das Regenwasser in Regenüberlaufbecken und leiten es nach Regenende der Kläranlage zu.

Gewässerschonende Landbewirtschaftung – Nährstoffe nützen den Pflanzen und nicht dem Gewässer

Gewässerrandstreifen – mit Gehölzen bewachsen oder auch als Blühstreifen mit mehrjährigen nektar- und pollenspendenden Flächen angelegt – verhindern das Abschwemmen von Nährstoffen in die Oberflächengewässer. Darüber hinaus schützt ein ordnungsgemäßer Einsatz von Düngemitteln das Grundwasser.

 
 

Ziele und Handlungsfelder

Was will die WRRL erreichen? Sie setzt ein eindeutiges übergeordnetes Umweltziel: Flüsse, Seen, Küsten- und Übergangsgewässer sowie das Grundwasser sollen in einem „guten Zustand“ sein. Nur Gewässer in gutem Zustand können ihre vielfältigen Leistungen für den Menschen und die Umwelt langfristig erbringen. Bei Oberflächengewässern bewerten wir hierbei den ökologischen Zustand beziehungsweise das ökologische Potenzial und den chemischen Zustand. Beim Grundwasser sind es der chemische Zustand und die Menge. In Baden-Württemberg erreichen viele Gewässer diesen Zustand derzeit noch nicht. Um die Ziele der WRRL zukünftig erreichen zu können, haben wir diese Handlungsfelder identifiziert:

[TARGET]
 
 

Vitale Gewässer

Was vitale Gewässer auszeichnet und warum sie für die Umwelt und uns Menschen wichtig sind, das zeigen und erklären diese Videos sehr anschaulich.

 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 56, column 49]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign Bildnachweis = formField.getV...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getCopyrightText" at line 56, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
4<#assign namespace = randomNamespace /> 
5 
6<section class="slider-hero ${(SliderTyp??)?then(SliderTyp.getData(), "")}" id="slider_${namespace}"> 
7    <div class="slides-list"> 
8 
9        <#list Slide.getSiblings() as curSlide> 
10 
11            <#assign hasLink = false /> 
12            <#assign linkTarget = "" /> 
13            <#assign linkHref= "" /> 
14            <#assign linkText = "weiterlesen" /> 
15            <#assign linkTitle = "Artikel weiterlesen" /> 
16            <#assign slideUniqueId = namespace + '_' + curSlide?index /> 
17 
18 
19            <#if curSlide.Headline?? && curSlide.Headline.getData()?has_content> 
20                <#assign AltText = curSlide.Headline.getData() /> 
21            </#if> 
22 
23            <#assign Copyright = "" /> 
24            <#if (common.getCopyrightText(curSlide.Image.data)!"") != ""> 
25                <#assign Copyright = common.getCopyrightTag("",curSlide.Image.data) /> 
26            </#if> 
27 
28            <div class="slide" role="group" aria-label="Folie ${curSlide?index + 1} von ${Slide.siblings?size}"> 
29                <div class="slide-content"> 
30                    <#if (curSlide.Youtube?? && curSlide.Youtube.getData()?has_content) && (curSlide.Image?? && curSlide.Image?has_content)> 
31                        <#assign videoId = curSlide.Youtube.getData()/> 
32 
33                        <#if videoId?starts_with("http")> 
34                            <#assign videoId = videoId?split("/")[3]> 
35                        </#if> 
36 
37                        <div class="slide-content-video video" id="video_${slideUniqueId}"> 
38                            <img src="${common.getScaledImageURL(curSlide.Image.getData())}" data-src="${common.getScaledImageURL(curSlide.Image.getData())}" class="slide__image video-preview-image" id="video-preview-image_${slideUniqueId}" alt="${common.getAltText(curSlide.Image.data, AltText)}" loading="lazy"/> 
39                            <div class="video-trigger-overlay video-trigger " id="video-trigger_${slideUniqueId}" data-tns-slide="tns1-item${curSlide?index}" data-videoid="${slideUniqueId}" data-source="${videoId}" title="Video abspielen"> 
40                                <p class="text-center video-trigger-overlay-text video-trigger" data-videoid="${slideUniqueId}" > 
41                                    Um das Video zu sehen, müssen Sie dieses Feld durch einen Klick aktivieren. Dadurch werden 
42                                    Informationen an Youtube übermittelt und unter Umständen dort verarbeitet. Bitte beachten Sie unsere 
43                                    Hinweise und Informationen zum <a href="/datenschutz" target="_blank" 
44                                                                      class="no-icon">Datenschutz</a>. 
45                                </p> 
46                                <span class="icon-bg icon-bg--play video-trigger" data-videoid="${slideUniqueId}" ></span> 
47                            </div> 
48                            <div class="video-layer" style="display: none" id="video-layer_${slideUniqueId}"> 
49                                <iframe class="video-frame" src="about:blank" allowfullscreen="" height="530" id="iframe_${slideUniqueId}"></iframe> 
50                            </div> 
51                        </div> 
52                    <#elseif (curSlide.Panopto_Link?? && curSlide.Panopto_Link.getData()?has_content)> 
53                        <#assign panoptoId = getPanoptoId(curSlide.Panopto_Link.getData()) /> 
54 
55                        <#if panoptoId?has_content> 
56                            <div class="slide-content-video video panopto-video" id="video_${slideUniqueId}"> 
57                                <div class="embed-container"> 
58                                    <iframe 
59                                        src="https://videoplattform.lubw.baden-wuerttemberg.de/Panopto/Pages/Embed.aspx?id=${panoptoId}&autoplay=false&offerviewer=false&showtitle=true&showbrand=false&start=0&interactivity=none" 
60                                        title="${AltText}" 
61
62                                    </iframe> 
63                                </div> 
64                            </div> 
65                        </#if> 
66                    <#else> 
67                        <div class="slide-content-image image-with-caption"> 
68                            <img src="${common.getScaledImageURL(curSlide.Image.getData())}" data-src="${common.getScaledImageURL(curSlide.Image.getData())}" class="slide__image" alt="${common.getAltText(curSlide.Image.data, AltText)}" loading="lazy"/> 
69                            ${Copyright} 
70                        </div> 
71                    </#if> 
72                </div> 
73            </div> 
74 
75        </#list> 
76    </div> 
77</section> 
78 
79<script> 
80 
81    var updateIframeHeight = function() { 
82        var dwidth = window.innerWidth; 
83        var videoHeight = dwidth*0.5625; 
84 
85        /* 
86        if (dwidth > 1600) { 
87            videoHeight = dwidth*0.40; 
88
89         */ 
90 
91        var videoFrames = document.getElementsByClassName('video-frame'); 
92        for (var i=0; i < videoFrames.length;i++) { 
93            videoFrames[i].setAttribute('height',videoHeight); 
94            videoFrames[i].style.height = videoHeight+'px'; 
95
96
97 
98    var updateVideoWrapper = function () { 
99 
100        var triggers = document.getElementsByClassName('video-trigger'); 
101 
102        for (var i=0; i < triggers.length;i++) { 
103            triggers[i].addEventListener('click',function(e) { 
104 
105                var triggersTarget = this.getAttribute('data-videoid'); 
106                var tnsSlide = this.getAttribute('data-tns-slide'); 
107 
108                var youtubeId = document.querySelector("#" + tnsSlide + ' #video-trigger_'+triggersTarget).getAttribute('data-source'); 
109                var videoLayer = document.querySelector("#" + tnsSlide + ' #video-layer_'+triggersTarget); 
110                var iframe = document.querySelector("#" + tnsSlide + ' #iframe_'+triggersTarget); 
111                iframe.setAttribute('src', 'https://www.youtube-nocookie.com/embed/' + youtubeId + '?autoplay=1&rel=0&cc_load_policy=1&modestbranding=0&enablejsapi=1'); 
112 
113                document.querySelector("#" + tnsSlide + ' #video-preview-image_'+triggersTarget).style.display='none'; 
114                document.querySelector("#" + tnsSlide + ' #video-trigger_'+triggersTarget).style.display='none'; 
115                videoLayer.style.display='block'; 
116            }); 
117
118    }; 
119 
120    window.addEventListener("load", function () { 
121        updateVideoWrapper(); 
122        updateIframeHeight(); 
123    }); 
124 
125    window.addEventListener("resize", function () { 
126        updateIframeHeight(); 
127    }); 
128 
129    // Liferay.on('endNavigate', updateVideoWrapper); 
130    // $(document).ready(updateVideoWrapper); 
131 
132    window.addEventListener("load", function () { 
133        function ${namespace}_updateInfo(info) { 
134            for (var i = 0; i < info.navItems.length; i++) { 
135                info.navItems[i].setAttribute('aria-label','Folie ' + (i+1)); 
136
137 
138            info.navItems[info.navCurrentIndex].setAttribute('aria-label','Folie ' + (info.navCurrentIndex + 1) + ' (aktuell)'); 
139 
140            info.controlsContainer.setAttribute('aria-label', 'Navigationselemente'); 
141            info.prevButton.setAttribute('aria-label','zur vorhergehenden Folie springen'); 
142            info.nextButton.setAttribute('aria-label','zur nächsten Folie springen'); 
143            info.navContainer.setAttribute('aria-label','Auswahl der Folien') 
144
145 
146        const imgStyle = document.querySelector('.image-slider-style'); 
147 
148        var slider = tns({ 
149            container: '#slider_${namespace} .slides-list', 
150            items: 1, 
151            slideBy: 'page', 
152            center: true, 
153            controlsPosition: 'bottom', 
154            navPosition: 'bottom', 
155            touch: true, 
156            mouseDrag: true, 
157            freezable: true, 
158            speed: 600, 
159            loop: false, 
160            arrowKeys: true, 
161            lazyload: true, 
162            autoHeight: true, 
163            lazyloadSelector: '.slide__image', 
164            autoplay: !!imgStyle, 
165            autoplayHoverPause: true, 
166            autoplayTimeout: 3500, 
167            autoplayText: [ 
168                "▶", 
169                "❚❚" 
170            ], 
171            controlsText: ['<span class="icon-bg icon-bg--arrow2-left"></span>','<span class="icon-bg icon-bg--arrow2-right"></span>'], 
172            onInit: function (info) { 
173                ${namespace}_updateInfo(info); 
174
175        }); 
176 
177        slider.events.on('indexChanged', function(info) { 
178            ${namespace}_updateInfo(info); 
179        }); 
180 
181        slider.events.on('transitionStart', function(info, eventName) { 
182            var currentSlideId = '#tns1-item' + info.navCurrentIndex; 
183 
184            var otherSlides = info.container.querySelectorAll('.tns-item:not(' + currentSlideId + ')') 
185 
186            otherSlides.forEach(function(slide) { 
187                var iframe = slide.querySelector( 'iframe'); 
188 
189                if (iframe != null) { 
190                    var src = iframe.getAttribute('src'); 
191                    if (src) { 
192                        if ((src.indexOf('youtube.com/embed') != -1) || (src.indexOf('youtube-nocookie.com/embed') != -1)) { 
193                            iframe.contentWindow.postMessage(JSON.stringify({ 
194                                'event': 'command', 
195                                'func': 'pauseVideo', 
196                                'args': [] 
197                            }), "*"); 
198
199
200
201            }); 
202        }); 
203        const mediaQuery = window.matchMedia('(max-width: 767px)') 
204        if (mediaQuery.matches) { 
205            const bulletList = document.querySelectorAll('.slider-hero .tns-nav'); 
206 
207            bulletList.forEach(bullet => { 
208                const slider = bullet.previousElementSibling.getBoundingClientRect(); 
209                const bulletNav = bullet.getBoundingClientRect(); 
210 
211                const bulletNavTop = bulletNav.top; 
212                const sliderTop = slider.top; 
213 
214                const arrowsPos = bulletNavTop - sliderTop - 5; 
215 
216                const prev = bullet.nextElementSibling.children[0]; 
217                const prevBtnWidth = prev.clientWidth; 
218                const next = bullet.nextElementSibling.children[1]; 
219 
220                const sliderControls = bullet.nextElementSibling; 
221                const firstBulletLeftSpace = bullet.firstElementChild.offsetLeft; 
222                const firstBulletWidth = bullet.firstElementChild.clientWidth; 
223                const lastBulletLeftSpace = bullet.lastElementChild.offsetLeft; 
224 
225                const nextBtnPos = lastBulletLeftSpace + 59; 
226                const prevBtnPos = firstBulletLeftSpace - prevBtnWidth - firstBulletWidth - 87; 
227 
228                const playPauseBtn = bullet.parentElement.firstElementChild; 
229                const playPauseBtnLeftPos = lastBulletLeftSpace + 15; 
230 
231                sliderControls.style.top = arrowsPos + 'px'; 
232 
233                next.style.left = nextBtnPos + 'px'; 
234 
235                prev.style.left = prevBtnPos + 'px'; 
236 
237                playPauseBtn.style.left = playPauseBtnLeftPos + 'px'; 
238 
239                console.log(sliderControls.style.top); 
240            }); 
241
242    }); 
243</script> 
244 
245<#function getPanoptoId url> 
246    <#local result = url?matches("https?://videoplattform\\.lubw\\.baden-wuerttemberg\\.de/Panopto/Pages/(?:Embed|Viewer).aspx\\?id=(\\S*)$") /> 
247 
248    <#if result> 
249        <#return result?groups[1] /> 
250    </#if> 
251 
252    <#return "" /> 
253</#function> 
 
An error occurred while processing the template.
The following has evaluated to null or missing:
==> formField.getValue().getString(locale)  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" at line 22, column 43]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign altTag = formField.getValue()...  [in template "blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" in function "getAltText" at line 22, column 25]
----
1<#import "/blaues-gut-portal.web-resources_SERVLET_CONTEXT_/common_macros.ftl" as common> 
2 
3<#assign layoutService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
4<#assign namespace = randomNamespace /> 
5<#assign AltText = "" /> 
6<#assign Copyright = "" /> 
7 
8<#if AltTextImage?? && AltTextImage.getData()?has_content> 
9    <#assign AltText = AltTextImage.data /> 
10</#if> 
11 
12<#assign AltText = common.getAltText(ImageLarge.data, AltText) /> 
13<#if (Button.ButtonStyle?? && Button.ButtonStyle.getData()?has_content)> 
14    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText, Button.ButtonStyle.getData()) /> 
15    <#else> 
16    <#assign ButtonMarkup = common.getButtonMarkup(Button.ButtonInternalLink, Button.ButtonExternalLink, Button.ButtonText) /> 
17</#if> 
18 
19<#if ImageLarge?? && ImageLarge.data?has_content && (common.getCopyrightText(ImageLarge.data)!"") != ""> 
20    <#assign Copyright = common.getCopyrightTag("",ImageLarge.data) /> 
21</#if> 
22 
23 
24<section class="teaser"> 
25    <div class="colorable-bg"> 
26        <div class="container"> 
27            <div class="row justify-content-center"> 
28                <div class="col-md-6"> 
29                    <section class="teaser__content"> 
30                        <section class="image-large image-large--centered" id="image-large_${namespace}"> 
31                            <div class="image-inner image-with-caption"> 
32                                <#if SVG?? && SVG.getData()?has_content> 
33                                    <div class="slide-content-image no-border svg-image"> 
34                                        ${SVG.getData()} 
35                                    </div> 
36                                    <#else> 
37                                        <#if ImageLarge?? && ImageLarge.getData()?has_content> 
38                                            <img src="${common.getScaledImageURL(ImageLarge.getData(), "bg-image-medium")}" alt="${common.getAltText(ImageLarge.data)}" class="image" loading="lazy"/> 
39                                            ${Copyright} 
40                                        </#if> 
41                                </#if> 
42                            </div> 
43                        </section> 
44                        <h2>${Headline.getData()}</h2> 
45                        <#if Text?? && Text.getData()?has_content> 
46                            <p class="teaser-text"> 
47                                ${Text.getData()} 
48                            </p> 
49                        </#if> 
50                        <#if Button.ButtonInternalLink.getData()?has_content || Button.ButtonExternalLink.getData()?has_content> 
51                            <div class="button-area"> 
52                                ${ButtonMarkup} 
53                            </div> 
54                        </#if> 
55                    </section> 
56                </div> 
57            </div> 
58        </div> 
59    </div> 
60 
61</section> 
 

Der aktuelle Status: Wo stehen wir?

Seit 2009 haben wir schon einiges umgesetzt: Hunderte Kilometer von Gewässerstrecken sind naturnah gestaltet und eine Vielzahl von Querbauwerken, wie zum Beispiel Wehre oder Wasserkraftanlagen, mit Fischtreppen versehen. So können Fische ungehindert flussaufwärts wandern. Die Abwasserbehandlung haben wir kontinuierlich ausgebaut und die Nährstoffeinträge aus der Landwirtschaft weiter verringert.

Und das wirkt: Viele Gewässer haben sich von einem ursprünglich mangelhaften Zustand verbessert, die meisten sind allerdings vom letztlich angestrebten Zustand noch ein gutes Stück entfernt. Wir sind also auf dem richtigen Weg – aber es gibt auch noch jede Menge zu tun.

Weitere Informationen zu den Flussgebieten Rhein und Donau und zur Umsetzung der Wasserrahmenrichtlinie in Baden-Württemberg (unter anderem Bewirtschaftungspläne und Maßnahmenprogramme)  finden Sie auf der Webseite des Ministeriums für Umwelt, Klima und Energiewirtschaft Baden-Württemberg.

 
 

Nicht nur für Fachleute interessant: die Fachtagung Vitale Gewässer

Vitale Gewässer sind gesunde Gewässer – und das ist für uns alle wichtig: Wer sich darüber ausführlicher zum Thema Gewässerökologie informieren möchte, findet hier alle relevanten Informationen und die Links zur Broschüre und den Unterlagen der vergangenen Fachtagungen.

 
 

Selbst Maßnahmen umsetzen: Gewusst, wie

Sie sind politische Entscheidungsträgerin oder politischer Entscheidungsträger und möchten gerne in Ihrer Gemeinde oder Ihrer Stadt eine Maßnahme umsetzen?

Dann klicken Sie sich auf dieser Unterseite durch und schauen Sie, was wir für hilfreiche Informationen und Materialien für Sie haben.

 

Kontakt

Bei Fragen, Hinweisen oder Anregungen schreiben Sie uns einfach eine E-Mail.