Skip to contents

Dieses Dokument beinhaltet die Erstellung der Abbildungen für den Bericht BfG-2138:

Weber, A., Horchler, P., Schleuter, M., Terwei, A., (2023): Ökomorphologische Potenziale und Defizite der Elbauen. Bundesanstalt für Gewässerkunde, Koblenz. Bericht BfG-2138, 44 Seiten. DOI: 10.5675/BfG-2138.

Die Grundlagendaten für die Abbildungen wurden vorab mittels des R-Paketes elbe1d erstellt.

Vorbereitung

# load libraries
library(DBI)
library(RPostgreSQL)
library(elbe1d)

# get credentials
credentials <- elbe1d:::credentials("~/DB_credentials_elbe1d")

# access the DB
db <- DBI::dbConnect(RPostgreSQL::PostgreSQL(),
                     host     = credentials["host"],
                     dbname   = credentials["dbname"],
                     user     = credentials["user"],
                     password = credentials["password"],
                     port     = credentials["port"])

# get available params
params <- dbGetQuery(db, "SELECT DISTINCT param FROM data ORDER BY param ASC")$param

# query crosstabed data
df.data <- dbGetQuery(db, paste0(
  'SELECT * FROM crosstab( 
    \'SELECT 
      "data"."idx", "data"."param", "data"."value"
    FROM 
      public."data"
    ORDER BY 1,2\',
    
    \'SELECT DISTINCT
      "data"."param"
    FROM 
      public."data"
    ORDER BY 1\')
  AS
    ("idx" integer, \"', 
    paste0(params, collapse="\" double precision, \""), 
    '\" double precision );'))

# rename columns
names(df.data)[which(names(df.data) == "idx")] <- "id"
names(df.data)[which(names(df.data) == "AreaTotal")] <- "n_cell"
names(df.data)[which(names(df.data) == "AreaBelowMQ")] <- "n_aquatic"
names(df.data)[which(names(df.data) == "DepthMax")] <- "depth_max"
names(df.data)[which(names(df.data) == "DepthMean")] <- "depth_mean"
names(df.data)[which(names(df.data) == "DepthSd")] <- "depth_std"
names(df.data)[which(names(df.data) == "Flood3Mean")] <- "ufd_mean_mean"
names(df.data)[which(names(df.data) == "Flood3Sd")] <- "ufd_mean_std"
names(df.data)[which(names(df.data) == "VegType_vtHFD")] <- "oHHA"
names(df.data)[which(names(df.data) == "VegType_vtHFM")] <- "mHHA"
names(df.data)[which(names(df.data) == "VegType_vtHFW")] <- "uHHA"
names(df.data)[which(names(df.data) == "VegType_vtWF")] <- "WHA"
names(df.data)[which(names(df.data) == "VegType_vtWS")] <- "WHG"
names(df.data)[which(names(df.data) == "VegType_vtRE")] <- "Roe"
names(df.data)[which(names(df.data) == "VegType_vtPF")] <- "Pio"
names(df.data)[which(names(df.data) == "VegType_vtWA")] <- "vegl"

# append missing columns
df.data$station <- sf.afe_csa$station[df.data$id]
df.data$station_int <- sf.afe_csa$station_int[df.data$id]
df.data$station_5km <- trunc(df.data$station / 5) * 5
df.data$station_10km <- trunc(df.data$station / 10) * 10
df.data$station_20km <- trunc(df.data$station / 20) * 20
df.data$station_50km <- trunc(df.data$station / 50) * 50
df.data$station_100km <- trunc(df.data$station / 100) * 100
df.data$n_terrestrial <- df.data$n_cell - df.data$n_aquatic
df.data$n_dem_gr_mnq <- df.data$n_cell - df.data$PbelowMNQ * df.data$n_cell
df.data$n_dem_gr_hq10 <- df.data$n_cell - df.data$PbelowHQ10 * df.data$n_cell
df.data$n_dem_gr_mhq <- df.data$n_cell - df.data$PbelowMHQ * df.data$n_cell
df.data$n_dem_gr_hq100 <- 0
df.data$n_pioneer <- df.data$n_cell - df.data$PbelowMNQ * df.data$n_cell - 
  df.data$n_terrestrial
df.data$HHZ <- df.data$oHHA + df.data$mHHA
df.data$WHZ <- df.data$WHA + df.data$WHG
df.data$RoPi <- df.data$Roe + df.data$Pio
df.data$UebWHZ <- df.data$uHHA + df.data$WHA + df.data$WHG
df.data$PioVegl <- df.data$Roe + df.data$Pio + df.data$vegl
df.data$dyn <- df.data$uHHA + df.data$WHZ + df.data$RoPi

params_sel <- c("id",
                
                "station", "station_int", "station_5km", "station_10km",
                "station_20km", "station_50km", "station_100km",
                
                "n_cell", "n_aquatic", "n_terrestrial",
                
                "n_dem_gr_mnq", "n_dem_gr_hq10", "n_dem_gr_mhq", "n_dem_gr_hq100",
                
                "depth_max", "depth_mean", "depth_std",
                
                "ufd_mean_mean", "ufd_mean_std",
                
                "oHHA", "mHHA", "uHHA", "WHA", "WHG", "Roe", "Pio", "vegl")

# export to csv
if (! file.exists("../vignettes/df.data.strok.csv")) {
  write.table(df.data[, params_sel], file = "../vignettes/df.data.strok.csv",
            sep = ";", dec = ",", row.names = FALSE)
}

# close db connect
dbDisconnect(db)
## [1] TRUE
# azb
df.azb <- read.table("../data-raw/azb/df.azb.csv", sep = ";", dec = ",",
                     header = TRUE)

Allgemeine Analysen mit Bezug zu FLYS 3-Wasserspiegellagen

par(mar=c(5,5,1,1), mfrow=c(2,2))

## Fluss
boxplot(n_aquatic/10000 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Fläche < MQ [ha]", col = "grey")

## Aue
boxplot(n_terrestrial/10000 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Fläche > MQ [ha]", col = "grey")

## Trockene Zone
boxplot(n_dem_gr_mhq/10000 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Fläche > MHQ [ha]", col = "grey")

## Wechselwasserzone
boxplot(n_pioneer/10000 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Fläche MNQ bis MQ [ha]", col = "grey")

Boxplots der absoluten Auenflächen (ha), die tiefer als W bei MQ (oben links), die höher als W bei MQ (oben rechts), die höher als W bei MHQ (unten links) und zwischen W bei MNQ und W bei MQ (unten rechts) liegen, entlang von 10 km langen Abschnitten entlang des Verlaufs der Binnenelbe von der tschechischen Grenze bis Geesthacht.

par(mar=c(5,5,1,1), mfrow=c(2,2))

## Fluss
boxplot(n_aquatic/n_cell * 100 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Flächenanteil < MQ [%]", col = "grey")

## Aue
boxplot(n_terrestrial/n_cell * 100 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Flächenanteil > MQ [%]", col = "grey")

## Trockene Zone
boxplot(n_dem_gr_mhq/n_cell * 100 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Flächenanteil > MHQ [%]", col = "grey")

## Wechselwasserzone
boxplot(n_pioneer/n_cell * 100 ~ station_10km, data = df.data, las = 3, xlab = "",
        ylab = "Flächenanteil MNQ bis MQ [%]", col = "grey")

Boxplots der relativen Auenflächenanteile (%), die tiefer als W bei MQ (oben links), die höher als W bei MQ (oben rechts), die höher als W bei MHQ (unten links) und zwischen W bei MNQ und W bei MQ (unten rechts) liegen, entlang von 10 km langen Abschnitten entlang des Verlaufs der Binnenelbe von der tschechischen Grenze bis Geesthacht.

Auenfläche

par(mar=c(6,4,4,1))
plot(df.data$n_cell/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "Absolute Auenfläche inkl. Fluss", NA),
     ylab = "[ha]", xlab = "Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
af.gm <- filter(df.data$n_cell/10000, rep(1/100, 100))
lines(af.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche der aktiven Aue im Längsverlauf der Elbe. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Auenfläche ohne Fluss (>= MQ)

par(mar=c(6,4,4,1))
plot(df.data$n_terrestrial/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute, 'trockene' Auenfläche", NA),
     ylab = "[ha]", xlab = "Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_terrestrial/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche der aktiven „trockenen“ Auenflächen, die höher als W bei MHQ liegen. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$n_terrestrial/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der 'trockenen' Fläche an der rezenten Aue", NA),
     ylab = "[%]", xlab = "Elbe-Kilometer", ylim = c(0, 140))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 1.4, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 1.4, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 1.4, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 1.4, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 1.4, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 1.4, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 1.4, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 1.4, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 1.4, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_terrestrial/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Relativer Anteil der aktiven, „trockenen“ Auenflächen, die höher als W bei MHQ liegen. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Wasserfläche (< MQ)

par(mar=c(6,4,4,1))
plot(df.data$n_aquatic/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Wasserfläche", NA),
     ylab = "[ha]", xlab = "Elbe-Kilometer", ylim = c(0, 40))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.4, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.4, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.4, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.4, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.4, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.4, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.4, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.4, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.4, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_aquatic/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Flächen der rezenten Aue, die tiefer als W bei MQ liegen. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$n_aquatic/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Wasserfläche an der rezenten Aue", NA),
     ylab = "[%]", xlab = "Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_aquatic/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Relativer Anteil der Wasserflächen, die tiefer als W bei MQ liegen, an der Gesamtfläche der rezenten Aue. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Pionierzone (> MNQ & < MQ)

par(mar=c(6,4,4,1))
plot(df.data$n_pioneer/10000 ~ df.data$station, type = "l", col="grey", lwd=0.5,
     main = ifelse(main, "absolute Fläche der Pionierzone (>= W(MNQ) bis < W(MQ))", NA), 
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 40))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.4, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.4, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.4, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.4, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.4, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.4, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.4, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.4, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.4, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_pioneer/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche der hydraulisch und morphologisch dynamischen, naturschutzfachlich interessanten Flächen zwischen W bei MNQ und W bei MQ. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$n_pioneer/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col="grey", lwd=0.5,
     main = ifelse(main, "Anteil der Pionierzone (>= W(MNQ) bis < W(MQ)) an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 70))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.7, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.7, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.7, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.7, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.7, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.7, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.7, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.7, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.7, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_pioneer/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Relativer Anteil der hydraulisch und morphologisch dynamischen, naturschutzfachlich interessanten Flächen zwischen W bei MNQ und W bei MQ. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Elbe-Kilometer.

Trockene Zone (>= MHQ):

par(mar=c(6,4,4,1))
plot(df.data$n_dem_gr_mhq/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der 'trockenen' Zone (>= W(MHQ))", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 60))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.6, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.6, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.6, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.6, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.6, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.6, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.6, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.6, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.6, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_dem_gr_mhq/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche der aktiven „trockenen“ Auenflächen, die höher als W bei MHQ liegen. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$n_dem_gr_mhq/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der 'trockenen' Zone (>= W(MHQ)) an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$n_dem_gr_mhq/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Relativer Anteil der aktiven „trockenen“ Auenflächen, die höher als W bei MHQ liegen. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Wassertiefe bei MQ

Standardabweichung der Tiefe

par(mar=c(6,4,4,1))
plot(df.data$depth_std ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Standardabweichung der Wassertiefe bei MQ", NA),
     ylab = "", xlab="Elbe-Kilometer", ylim = c(0, 3))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.03, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.03, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.03, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.03, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.03, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.03, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.03, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.03, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.03, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$depth_std, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Standardabweichung der Wassertiefe bei W bei MQ. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Mittelwert der Tiefe

par(mar=c(6,4,4,1))
plot(df.data$depth_mean ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Mittelwert der Wassertiefe bei MQ", NA),
     ylab = "[m]", xlab="Elbe-Kilometer", ylim = c(0, 6))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.06, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.06, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.06, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.06, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.06, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.06, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.06, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.06, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.06, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$depth_mean, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Mittelwert der Wassertiefe bei W bei MQ. Grau: Werte pro Hektometer, blau: Gleitender Mittelwert pro Fluss-Kilometer.

Überflutungsdauern (1990 - 2019)

Mittelwert der langjährig gemittelten Überflutungsdauern

par(mar=c(6,4,4,1))
plot(df.data$ufd_mean_mean ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Mittelwert der Überflutungsdauer", NA),
     ylab = "[d/a]", xlab="Elbe-Kilometer", ylim = c(0, 380))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 3.8, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 3.8, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 3.8, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 3.8, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 3.8, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 3.8, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 3.8, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 3.8, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 3.8, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$ufd_mean_mean, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Mittelwert der langjährigen mittleren Überflutungsdauer (1990 – 2019) je Querprofilfläche entlang der deutschen Binnenelbe (hell-graue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Standardabweichung der langjährig gemittelten Überflutungsdauern

par(mar=c(6,4,4,1))
plot(df.data$ufd_mean_std ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Standardabweichung der Mittelwerte der Überflutungsdauer", NA),
     ylab = "", xlab="Elbe-Kilometer", ylim = c(0, 240))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 2.4, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 2.4, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 2.4, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 2.4, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 2.4, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 2.4, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 2.4, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 2.4, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 2.4, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$ufd_mean_std, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Standardabweichung der Mittelwerte der langjährigen mittleren Überflutungsdauer (1990 – 2019) je Querprofilfläche entlang der deutschen Binnenelbe (hell-graue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

PNV-Anteile

Total

# colors <- c("sienna4", "tan3", "tan1", "khaki", "darkseagreen2", "aquamarine",
#             "aquamarine4", "blue4")
colors <- hydflood::df.pnv$html
names <- c("Obere Hartholzzone", "Mittlere Hartholzzone", "Untere Hartholzzone",
           "Weichholzwaldzzone", "Weichholzgebüschzone", "Röhrichtzone",
           "Uferpionierzone", "vegetationslos")

PNV <- c(sum(df.data$oHHA, na.rm = TRUE), sum(df.data$mHHA, na.rm = TRUE),
         sum(df.data$uHHA, na.rm = TRUE), sum(df.data$WHA, na.rm = TRUE),
         sum(df.data$WHG, na.rm = TRUE), sum(df.data$Roe, na.rm = TRUE),
         sum(df.data$Pio, na.rm = TRUE), sum(df.data$vegl, na.rm = TRUE))
pnv20 <- aggregate(df.data[, c("oHHA", "mHHA", "uHHA", "WHA", "WHG", "Roe",
                               "Pio", "vegl")], by = list(df.data$station_20km),
                   FUN = sum)
pnv20 <- na.omit(pnv20)
pie(PNV, col = colors, labels = names)

Prozentualer Anteil der einzelnen PNV-Typen (Summe = 100%) im Gesamtgebiet.

20 km Abschnitte

layout(cbind(1,2), widths = c(7,1.5))
par(mar=c(4,4,1,1)) 
barplot(t(as.matrix(pnv20[2:9]/10000)), beside = FALSE, col = colors, 
        ylab = "Fläche [ha]", names = pnv20[ ,1], las = 3,
        xlab = "Elbe-Kilometer")
par(mar=c(0, 0, 0, 0))
plot.new()
legend("left", legend = rev(names), bty = "n", ncol = 1, cex = 1, pt.cex = 1.5,
       pch = 19, col = rev(colors))

Absolute Flächen der PNV-Typen in 20 km langen Abschnitten.

layout(cbind(1,2), widths = c(7,1.5))
par(mar=c(4,4,1,1)) 
barplot(t(as.matrix(pnv20[2:9] / rowSums(pnv20[2:9]) * 100)), beside = FALSE,
        col = colors, ylab = "[%]", names = pnv20[ ,1], las = 3,
        xlab = "Elbe-Kilometer")
par(mar=c(0, 0, 0, 0))
plot.new()
legend("left", legend = rev(names), bty = "n", ncol = 1, cex = 1, pt.cex = 1.5,
       pch = 19, col = rev(colors))

Relative Flächenanteile der PNV-Typen in 20 km langen Abschnitten.

Einzelne PNV-Typen

obere Hartholzzone

par(mar=c(6,4,4,1))
plot(df.data$oHHA/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5,
     main = ifelse(main, "absolute Fläche der oberen Hartholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 60))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.6, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.6, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.6, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.6, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.6, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.6, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.6, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.6, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.6, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$oHHA/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Obere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$oHHA/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der oberen Hartholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$oHHA/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Obere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

mittlere Hartholzzone

par(mar=c(6,4,4,1))
plot(df.data$mHHA/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5,
     main = ifelse(main, "absolute Fläche der mittleren Hartholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 80))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.8, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.8, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.8, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.8, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.8, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.8, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.8, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.8, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.8, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$mHHA/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Mittlere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$mHHA/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der mittleren Hartholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 120))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 1.2, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 1.2, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 1.2, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 1.2, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 1.2, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 1.2, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 1.2, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 1.2, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 1.2, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$mHHA/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Mittlere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

untere Hartholzzone

par(mar=c(6,4,4,1))
plot(df.data$uHHA/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der unteren Hartholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 30))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.3, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.3, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.3, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.3, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.3, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.3, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.3, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.3, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.3, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$uHHA/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Untere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$uHHA/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der unteren Hartholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 60))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.6, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.6, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.6, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.6, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.6, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.6, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.6, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.6, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.6, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$uHHA/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Untere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Weichholzwaldzone

par(mar=c(6,4,4,1))
plot(df.data$WHA/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der Weichholzwaldzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 25))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.25, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.25, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.25, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.25, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.25, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.25, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.25, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.25, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.25, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHA/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Weichholzwaldzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$WHA/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Weichholzwaldzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 70))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.7, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.7, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.7, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.7, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.7, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.7, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.7, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.7, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.7, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHA/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Weichholzwaldzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Weichholzgebüschzone

par(mar=c(6,4,4,1))
plot(df.data$WHG/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der Weichholzgebüschzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 30))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.3, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.3, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.3, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.3, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.3, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.3, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.3, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.3, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.3, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHG/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Weichholzgebüschzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleiten-der Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$WHG/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Weichholzgebüschzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 50))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.5, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.5, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.5, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.5, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.5, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.5, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.5, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.5, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.5, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHG/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Weichholzgebüschzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Röhrichtzone

par(mar=c(6,4,4,1))
plot(df.data$Roe/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der Röhrichtzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 10))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.1, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.1, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.1, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.1, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.1, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.1, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.1, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.1, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.1, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$Roe/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Röhrichtzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$Roe/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Röhrichtzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 40))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.4, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.4, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.4, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.4, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.4, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.4, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.4, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.4, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.4, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$Roe/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Röhrichtzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mit-telwert pro Elbe-Kilometer.

Uferpionierzone

par(mar=c(6,4,4,1))
plot(df.data$Pio/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der Uferpionierzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 15))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.15, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.15, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.15, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.15, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.15, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.15, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.15, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.15, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.15, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$Pio/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „Uferpionierzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$Pio/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Uferpionierzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 50))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.5, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.5, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.5, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.5, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.5, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.5, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.5, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.5, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.5, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$Pio/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „Uferpionierzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittel-wert pro Elbe-Kilometer.

vegetationslos

par(mar=c(6,4,4,1))
plot(df.data$vegl/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche ohne Vegetation", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 12))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.12, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.12, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.12, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.12, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.12, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.12, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.12, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.12, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.12, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$vegl/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche des PNV-Typs „vegetationslos (Wasserfläche)“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$vegl/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der vegetationslosen Fläche an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 100))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$vegl/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile des PNV-Typs „vegetationslos (Wasserfläche)“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

PNV-Typen aggregiert

PNV <- c(sum(df.data$HHZ, na.rm = TRUE), sum(df.data$uHHA, na.rm = TRUE),
         sum(df.data$WHZ, na.rm = TRUE), sum(df.data$RoPi, na.rm = TRUE),
         sum(df.data$vegl, na.rm = TRUE))

colors <- c("darkgreen", "green", "aquamarine", "hotpink", "grey")
names <- c("Hartholzzone", "Übergang", "Weichholzzone", "Pionierzone",
           "vegetationslos")

pie(PNV, col = colors, labels = names)

Prozentualer Anteil der aggregierten PNV-Typen (Summe = 100%) im Gesamtgebiet.

# colors <- c("sienna4", "darkseagreen2", "blue4")
colors <- hydflood::df.pnv$html[c(2, 5, 8)]
names <- c("kurz überflutet", "lang überflutet", "sehr lange überflutet")

pnv20 <- aggregate(df.data[, c("HHZ", "UebWHZ", "PioVegl")],
                   by = list(df.data$station_20km), FUN = sum)
pnv20 <- na.omit(pnv20)
layout(cbind(1,2), widths = c(7,1.5))
par(mar=c(4,4,1,1)) 
barplot(t(as.matrix(pnv20[2:4]/10000)), beside = FALSE, col = colors, 
        ylab = "Fläche [ha]", names = pnv20[ ,1], las = 3,
        xlab = "Elbe-Kilometer")
par(mar=c(0, 0, 0, 0))
plot.new()
legend("left", legend = rev(names), bty = "n", ncol = 1, cex = 1, pt.cex = 1.5,
       pch = 19, col = rev(colors))

Absolute Flächen der PNV-Typengruppen in 20 km langen Abschnitten.

layout(cbind(1,2), widths = c(7,1.5))
par(mar=c(4,4,1,1)) 
barplot(t(as.matrix(pnv20[2:4] / rowSums(pnv20[2:4]) * 100)), beside = FALSE,
        col = colors, ylab = "[%]", names = pnv20[ ,1], las = 3,
        xlab = "Elbe-Kilometer")
par(mar=c(0, 0, 0, 0))
plot.new()
legend("left", legend = rev(names), bty = "n", ncol = 1, cex = 1, pt.cex = 1.5,
       pch = 19, col = rev(colors))

Relative Flächenanteile der PNV-Typengruppen in 20 km langen Abschnitten.

Hartholzzone

par(mar=c(6,4,4,1))
plot(df.data$HHZ/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5,
     main = ifelse(main, "absolute Fläche der oberen & mittleren Hartholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 80))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.8, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.8, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.8, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.8, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.8, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.8, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.8, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.8, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.8, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$HHZ/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Absolute Fläche der PNV-Typen „Obere und Mittlere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$HHZ/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der oberen & mittleren Hartholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 120))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 1.2, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 1.2, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 1.2, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 1.2, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 1.2, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 1.2, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 1.2, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 1.2, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 1.2, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$HHZ/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile der PNV-Typen „Obere und Mittlere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

untere Hartholzzone

par(mar=c(6,4,4,1))
plot(df.data$uHHA/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5,
     main = ifelse(main, "absolute Fläche der unteren Hartholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 25))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.25, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.25, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.25, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.25, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.25, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.25, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.25, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.25, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.25, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$uHHA/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Fläche des PNV-Typs „Untere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$uHHA/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der unteren Hartholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 50))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.5, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.5, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.5, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.5, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.5, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.5, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.5, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.5, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.5, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$uHHA/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteil des PNV-Typs „Untere Hartholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Weichholzzone

par(mar=c(6,4,4,1))
plot(df.data$WHZ/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5, main = ifelse(main, "absolute Fläche der Weichholzzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 50))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.5, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.5, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.5, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.5, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.5, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.5, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.5, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.5, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.5, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHZ/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Fläche der PNV-Typen der „Weichholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$WHZ/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Weichholzzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 80))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.8, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.8, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.8, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.8, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.8, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.8, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.8, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.8, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.8, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$WHZ/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile der PNV-Typen der „Weichholzzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

Röhricht- und Pionierzone

par(mar=c(6,4,4,1))
plot(df.data$RoPi/10000 ~ df.data$station, type = "l", col = "grey",
     lwd = 0.5,
     main = ifelse(main, "absolute Fläche der Röhricht- und Pionierzone", NA),
     ylab = "[ha]", xlab="Elbe-Kilometer", ylim = c(0, 20))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.2, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.2, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.2, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.2, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.2, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.2, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.2, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.2, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.2, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$RoPi/10000, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Fläche der PNV-Typen der „Röhricht- und Pionierzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

par(mar=c(6,4,4,1))
plot(df.data$RoPi/df.data$n_cell * 100 ~ df.data$station, type = "l",
     col = "grey", lwd = 0.5,
     main = ifelse(main, "Anteil der Röhricht- und Pionierzone an der rezenten Aue", NA),
     ylab = "[%]", xlab="Elbe-Kilometer", ylim = c(0, 50))

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 0.5, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 0.5, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 0.5, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 0.5, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 0.5, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 0.5, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 0.5, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 0.5, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 0.5, labels = "Rückstau", adj = 0.5)

# gleitendes Mittel
x.gm <- filter(df.data$RoPi/df.data$n_cell * 100, rep(1/100, 100))
lines(x.gm ~ df.data$station, col = "blue", lwd = 1.5)

Flächenanteile der PNV-Typen der „Röhricht- und Pionierzone“ entlang der deutschen Binnenelbe (hellgraue Linie). Blaue Linie: Gleitender Mittelwert pro Elbe-Kilometer.

rezente vs. morphologische Aue

plot(rezent/100 ~ km, data = df.azb, type = "l", col = "grey", lwd = 1,
     main = ifelse(main, "Auenflächen", NA),
     ylab = "[km² / 5 Elbe-Kilometer]", xlab="Elbe-Kilometer", ylim = c(0, 130))
lines(df.azb$km, df.azb$morphologisch/100, col = "blue", lwd = 1)

# Fixpunkte
abline(v = c(120, 290), lty = 2)
text(205, 95 * 1.3, labels = "E r o s i o n s s t r e c k e", adj = 0.5)
abline(v = c(508, 521), lty = 2)
text(514.5, 95 * 1.3, labels = "Reststrecke", adj = 0.5)
points(198, 0, pch = 19)
text(198, 75 * 1.3, labels = "Elstermündung", adj = 0.5)
points(259, 0, pch = 19)
text(259, 80 * 1.3, labels = "Muldemündung", adj = 0.5)
points(290, 0, pch = 19)
text(290, 75 * 1.3, labels = "Saalemündung", adj = 0.5)
points(326,0, pch = 19)
text(326, 85 * 1.3, labels = "Domfelsen", adj = 0.5)
points(438, 0, pch = 19)
text(438, 75 * 1.3, labels = "Havelmündung", adj = 0.5)
points(445, 0, pch = 19)
text(445, 85 * 1.3, labels = "Rühstädt", adj = 0.5)
points(565, 0, pch = 19)
text(565, 75 * 1.3, labels = "Rückstau", adj = 0.5)

#legende
legend("topleft", 
       legend = c("rezente Aue", "morphologische Aue"),
       col = c("grey", "blue"),
       lwd = c(1, 1), bty = "n", bg = "white")

Flächen der heutigen aktiven (= rezenten) Aue (graue Linie) im Vergleich zur morphologischen (Alt-)Aue (blaue Linie)(Daten des BfN (2009), Auswertung BfG, Referat M3).

Buhnenfeldbewertung

if (require(foreign, quietly = TRUE)) {
  # buhnen
  df.buhnen <- read.dbf(paste0("~/freigaben/Projekte/Elbe-StroK/Beiträge-U3/Ist-",
                               "Zustand/Buhnenfeldkataster/Buhnenfeldkataster_mi",
                               "t_oekomorphol_Klassifizierung_fuer_die_Elbe_ETRS",
                               "89_UTM33N.dbf"))
  df.buhnen$ID <- as.character(df.buhnen$ID)
  df.buhnen$station <- as.numeric(
    matrix(unlist(strsplit(df.buhnen$ID, split = "_", fixed = TRUE)),
           byrow = TRUE, ncol = 2)[, 1])
  df.buhnen$station_20km <- trunc(df.buhnen$station / 20) * 20
  df.buhnen$bew_oekologie <- as.numeric(df.buhnen$BEW_OEKOLO)
  df.buhnen$bew_oeko_1 <- ifelse(df.buhnen$bew_oekologie == 1, 1, 0)
  df.buhnen$bew_oeko_2 <- ifelse(df.buhnen$bew_oekologie == 2, 1, 0)
  df.buhnen$bew_oeko_3 <- ifelse(df.buhnen$bew_oekologie == 3, 1, 0)
  df.buhnen$bew_oeko_4 <- ifelse(df.buhnen$bew_oekologie == 4, 1, 0)
  df.buhnen$bew_oeko_5 <- ifelse(df.buhnen$bew_oekologie == 5, 1, 0)
  
  # aggregate
  bf <- aggregate(df.buhnen[, c("bew_oeko_1", "bew_oeko_2", "bew_oeko_3",
                                "bew_oeko_4", "bew_oeko_5")],
                  by = list(df.buhnen$station_20km),
                  FUN = sum)
  bf <- na.omit(bf)
  
  # plot
  layout(cbind(1,2), widths = c(7,1.5))
  par(mar=c(4,4,1,1)) 
  barplot(t(as.matrix(bf[2:ncol(bf)] / rowSums(bf[2:ncol(bf)]) * 100)),
          beside = FALSE,
          col = c("#00b0f0", "#92d050", "#ffff00", "#ffc000", "#ff0000"), 
          ylab = "[%]", names = bf[, 1], las = 3, xlab = "Elbe-Kilometer")
  par(mar=c(0, 0, 0, 0))
  plot.new()
  legend("left", bty = "n", ncol = 1, cex = 1, pt.cex = 1.5, pch = 19,
         legend = rev(c("sehr gut", "gut", "mittel", "mäßig", "schlecht")),
         col = rev(c("#00b0f0", "#92d050", "#ffff00", "#ffc000", "#ff0000")))
}

Bewertung der ökomorphologischen Qualität der Buhnenfelder für Streckenabschnitte der Elbe von Elbe-Kilometer 121,0 - 580,0.