Vorbereitung
# load libraries
library(hydflood)
library(elbe1d)
library(sf)
library(leaflet)
library(htmltools)
library(DT)
# base path
path <- paste0("~/freigaben/Projekte/Geodaten/Geo-Basisdaten/Daten-sonstige",
"/Vektordaten/BfN_Schutzgebiete-DE/")
if (dir.exists(path)) {
eval <- TRUE
} else {
eval <- FALSE
}
# crs
crs <- st_crs("EPSG:25833")
wgs84 <- st_crs("EPSG:4326")
# afe
afe <- sf.af("Elbe")
afe_wgs84 <- st_transform(afe, wgs84)
# sf.axis
st_crs(sf.axis) <- st_crs("EPSG:25833")
axis <- st_buffer(sf.axis, 50)
# bundesländer
bl <- c("BB" = "Brandenburg", "NI" = "Niedersachsen",
"SH" = "Schleswig- Holstein", "SN" = "Sachsen",
"ST" = "Sachsen-Anhalt")Naturschutzgebiete
nsg <- st_read(paste0(path, "Naturschutzgebiete_2021"), "NSG_BRD_2021",
quiet = TRUE)
nsg <- st_transform(nsg, crs)Aktive, rezente Aue
id <- which(st_intersects(nsg, afe, sparse = FALSE)[, 1])
nsg_sel <- nsg[id, ]
nsg_sel_wgs84 <- st_transform(nsg_sel, wgs84)
nsg_sel_wgs84_center <- st_centroid(nsg_sel_wgs84)
nsg_sel.df <- as.data.frame(nsg_sel[,
c("NAME", "FLAECHE", "BL", "LEG_DATE", "LEG_LINK", "LEG_TITEL")])
nsg_sel.df$FLAECHE <- as.numeric(nsg_sel.df$FLAECHE)
nsg_sel.df$BL <- bl[nsg_sel.df$BL]
nsg_sel.df$LEG_DATE <- as.Date(nsg_sel.df$LEG_DATE)
nsg_sel.df$url <- ifelse(is.na(nsg_sel.df$LEG_LINK), nsg_sel.df$LEG_TITEL,
paste0('<a href="', nsg_sel.df$LEG_LINK,
'" target="_blank" rel="noopener">',
ifelse(is.na(nsg_sel.df$LEG_TITEL),
"Verordnung", nsg_sel.df$LEG_TITEL),
'</a>'))
leaflet() %>%
leaflet::addTiles() %>%
leaflet::addPolygons(fillColor = "darkblue", fillOpacity = 0.1,
color = "darkblue", opacity= 1, weight = 0.5,
stroke = TRUE, data = afe_wgs84) %>%
leaflet::addPolygons(color = "blue", stroke = TRUE, weight = 2,
opacity = 1, fillColor = "blue", fillOpacity = 0.5,
data = nsg_sel_wgs84) %>%
leaflet::addLabelOnlyMarkers(label = ~NAME,
data = nsg_sel_wgs84_center,
labelOptions = labelOptions(noHide = TRUE,
direction = "top",
textOnly = TRUE,
textsize = "15px"))
datatable(nsg_sel.df[, c("NAME", "FLAECHE", "BL", "LEG_DATE", "url")],
colnames = c("Name", "Fläche [Ha]", "Bundesland",
"Datum der Ausweisung", "Ausweisungstext"),
rownames = FALSE, escape = FALSE) %>%
formatCurrency(columns = 2, currency = "", mark = ".", dec.mark = ",") %>%
formatDate(columns = 4, method = 'toLocaleDateString')Gewässerachse
id <- which(st_intersects(nsg, axis, sparse = FALSE)[, 1])
nsg_sel_axis <- nsg[id, ]
nsg_sel_axis_wgs84 <- st_transform(nsg_sel_axis, wgs84)
nsg_sel_axis_wgs84_center <- st_centroid(nsg_sel_axis_wgs84)
nsg_sel_axis.df <- as.data.frame(nsg_sel_axis[,
c("NAME", "FLAECHE", "BL", "LEG_DATE", "LEG_LINK", "LEG_TITEL")])
nsg_sel_axis.df$FLAECHE <- as.numeric(nsg_sel_axis.df$FLAECHE)
nsg_sel_axis.df$BL <- bl[nsg_sel_axis.df$BL]
nsg_sel_axis.df$LEG_DATE <- as.Date(nsg_sel_axis.df$LEG_DATE)
nsg_sel_axis.df$url <- ifelse(is.na(nsg_sel_axis.df$LEG_LINK),
nsg_sel_axis.df$LEG_TITEL,
paste0('<a href="', nsg_sel_axis.df$LEG_LINK,
'" target="_blank" rel="noopener">',
ifelse(is.na(nsg_sel_axis.df$LEG_TITEL),
"Verordnung", nsg_sel_axis.df$LEG_TITEL),
'</a>'))
leaflet() %>%
leaflet::addTiles() %>%
leaflet::addPolygons(fillColor = "darkblue", fillOpacity = 0.1,
color = "darkblue", opacity= 1, weight = 0.5,
stroke = TRUE, data = afe_wgs84) %>%
leaflet::addPolygons(color = "blue", stroke = TRUE, weight = 2,
opacity = 1, fillColor = "blue", fillOpacity = 0.5,
data = nsg_sel_axis_wgs84) %>%
leaflet::addLabelOnlyMarkers(label = ~NAME,
data = nsg_sel_axis_wgs84_center,
labelOptions = labelOptions(noHide = TRUE,
direction = "top",
textOnly = TRUE,
textsize = "15px"))
datatable(nsg_sel_axis.df[, c("NAME", "FLAECHE", "BL", "LEG_DATE", "url")],
colnames = c("Name", "Fläche [Ha]", "Bundesland",
"Datum der Ausweisung", "Ausweisungstext"),
rownames = FALSE, escape = FALSE) %>%
formatCurrency(columns = 2, currency = "", mark = ".", dec.mark = ",") %>%
formatDate(columns = 4, method = 'toLocaleDateString')
nsg_sel.df$axis <- nsg_sel.df$NAME %in% nsg_sel_axis.df$NAME
nsg_sel.df$geometry <- NULL
names(nsg_sel.df) <- c("Gebietsname", "Fläche (ha)", "Datum der Ausweisung",
"URL des Ausweisungstextes", "Ausweisungstitel",
"Link zum Auseisungstext",
"Überschneidung mit der Gewässerachse")
write.table(nsg_sel.df, file = "df.nsg.csv", sep = ";",
row.names = FALSE)FFH-Gebiete
ffh <- st_read(paste0(path, "Natura2000_2019"), "ffh_de_2019",
quiet = TRUE)
ffh <- st_transform(ffh, crs)
# natura 2000 mapviewer
# ffh$url <- paste0("https://natura2000.eea.europa.eu/?sitecode=",
# ffh$SITECODE)
# natura 2000 biodiversity
ffh$url <- paste0("https://biodiversity.europa.eu/sites/natura2000/",
ffh$SITECODE)Aktive, rezente Aue
id <- which(st_intersects(ffh, afe, sparse = FALSE)[, 1])
ffh_sel <- ffh[id, ]
ffh_sel_wgs84 <- st_transform(ffh_sel, wgs84)
ffh_sel_wgs84_center <- st_centroid(ffh_sel_wgs84)
ffh_sel.df <- as.data.frame(ffh_sel[, c("NAME", "SITECODE", "FLAECHE", "BL",
"LEG_DATE", "LEG_TITEL")])
ffh_sel.df$FLAECHE <- as.numeric(ffh_sel.df$FLAECHE)
ffh_sel.df$BL <- bl[ffh_sel.df$BL]
ffh_sel.df$LEG_DATE <- as.Date(ffh_sel.df$LEG_DATE)
ffh_sel.df$siteurl <- paste0(
'<a href="https://biodiversity.europa.eu/sites/natura2000/',
ffh_sel.df$SITECODE, '" target="_blank" rel="noopener">',
ffh_sel.df$SITECODE, '</a>')
ffh_sel.df <- ffh_sel.df[order(ffh_sel.df$SITECODE), ]
# habitat typen
# database downloaded from:
# https://www.eea.europa.eu/data-and-maps/data/natura-14
# https://www.eea.europa.eu/data-and-maps/data/natura-14/natura-2000-tabular-data-12-tables/natura-2000-comma-separated-values-files/at_download/file
# and extracted into "data-raw/Natura2000_end2021_rev1_csv/"
h <- read.table(paste0("../data-raw/Natura2000_end2021_rev1_csv/Natura2000_end",
"2021_rev1_HABITATS.csv"),
sep = ",", header = TRUE)
h_sel <- h[which(h$SITECODE %in% ffh_sel.df$SITECODE), ]
h_sel <- h_sel[order(h_sel$HABITATCODE), ]
ffh_sel.df$habitattypes <- character(nrow(ffh_sel.df))
for (a_site in ffh_sel.df$SITECODE) {
id <- which(ffh_sel.df$SITECODE == a_site)
id_h <- which(h_sel$SITECODE == a_site)
ffh_sel.df$habitattypes[id] <-
paste0(
paste0('<a href="https://biodiversity.europa.eu/habitats/',
h_sel[id_h, "HABITATCODE"], '" target="_blank" rel="noopener">',
h_sel[id_h, "HABITATCODE"], '</a>'),
collapse = ", ")
}
leaflet() %>%
leaflet::addTiles() %>%
leaflet::addPolygons(fillColor = "darkblue", fillOpacity = 0.1,
color = "darkblue", opacity= 1, weight = 0.5,
stroke = TRUE, data = afe_wgs84) %>%
leaflet::addPolygons(color = "blue", stroke = TRUE, weight = 2,
opacity = 1, fillColor = "blue", fillOpacity = 0.5,
data = ffh_sel_wgs84,
popup = paste0('<a href="', ffh_sel_wgs84$url,
'" target="_blank" rel="noopener">',
ffh_sel_wgs84$NAME, '</a>'))
datatable(ffh_sel.df[, c("NAME", "siteurl", "FLAECHE", "BL", "LEG_DATE",
"LEG_TITEL", "habitattypes")],
colnames = c("Name", "Sitecode", "Fläche [Ha]", "Bundesland",
"Datum der Ausweisung", "Ausweisungstext",
"Lebensraumtypen"),
rownames = FALSE, escape = FALSE) %>%
formatCurrency(columns = 3, currency = "", mark = ".", dec.mark = ",") %>%
formatDate(columns = 5, method = 'toLocaleDateString')Gewässerachse
id <- which(st_intersects(ffh, axis, sparse = FALSE)[, 1])
ffh_sel_axis <- ffh[id, ]
ffh_sel_axis_wgs84 <- st_transform(ffh_sel_axis, wgs84)
ffh_sel_axis_wgs84_center <- st_centroid(ffh_sel_axis_wgs84)
ffh_sel_axis.df <- as.data.frame(ffh_sel_axis[, c("NAME", "SITECODE", "FLAECHE", "BL",
"LEG_DATE", "LEG_TITEL")])
ffh_sel_axis.df$FLAECHE <- as.numeric(ffh_sel_axis.df$FLAECHE)
ffh_sel_axis.df$BL <- bl[ffh_sel_axis.df$BL]
ffh_sel_axis.df$LEG_DATE <- as.Date(ffh_sel_axis.df$LEG_DATE)
ffh_sel_axis.df$siteurl <- paste0(
'<a href="https://biodiversity.europa.eu/sites/natura2000/',
ffh_sel_axis.df$SITECODE, '" target="_blank" rel="noopener">',
ffh_sel_axis.df$SITECODE, '</a>')
ffh_sel_axis.df <- ffh_sel_axis.df[order(ffh_sel_axis.df$SITECODE), ]
# habitat typen
h <- read.table(paste0("../data-raw/Natura2000_end2021_rev1_csv/Natura2000_end",
"2021_rev1_HABITATS.csv"),
sep = ",", header = TRUE)
h_sel_axis <- h[which(h$SITECODE %in% ffh_sel_axis.df$SITECODE), ]
h_sel_axis <- h_sel_axis[order(h_sel_axis$HABITATCODE), ]
ffh_sel_axis.df$habitattypes <- character(nrow(ffh_sel_axis.df))
for (a_site in ffh_sel_axis.df$SITECODE) {
id <- which(ffh_sel_axis.df$SITECODE == a_site)
id_h <- which(h_sel_axis$SITECODE == a_site)
ffh_sel_axis.df$habitattypes[id] <-
paste0(
paste0('<a href="https://biodiversity.europa.eu/habitats/',
h_sel_axis[id_h, "HABITATCODE"], '" target="_blank" rel="noopener">',
h_sel_axis[id_h, "HABITATCODE"], '</a>'),
collapse = ", ")
}
leaflet() %>%
leaflet::addTiles() %>%
leaflet::addPolygons(fillColor = "darkblue", fillOpacity = 0.1,
color = "darkblue", opacity= 1, weight = 0.5,
stroke = TRUE, data = afe_wgs84) %>%
leaflet::addPolygons(color = "blue", stroke = TRUE, weight = 2,
opacity = 1, fillColor = "blue", fillOpacity = 0.5,
data = ffh_sel_axis_wgs84,
popup = paste0('<a href="', ffh_sel_axis_wgs84$url,
'" target="_blank" rel="noopener">',
ffh_sel_axis_wgs84$NAME, '</a>'))
datatable(ffh_sel_axis.df[, c("NAME", "siteurl", "FLAECHE", "BL", "LEG_DATE",
"LEG_TITEL", "habitattypes")],
colnames = c("Name", "Sitecode", "Fläche [Ha]", "Bundesland",
"Datum der Ausweisung", "Ausweisungstext",
"Lebensraumtypen"),
rownames = FALSE, escape = FALSE) %>%
formatCurrency(columns = 3, currency = "", mark = ".", dec.mark = ",") %>%
formatDate(columns = 5, method = 'toLocaleDateString')
ffh_sel.df$axis <- ffh_sel.df$NAME %in% ffh_sel_axis.df$NAME
ffh_sel.df$geometry <- NULL
names(ffh_sel.df) <- c("Gebietsname", "Fläche (ha)", "Datum der Ausweisung",
"URL des Ausweisungstextes", "Ausweisungstitel",
"Link zum Auseisungstext",
"Überschneidung mit der Gewässerachse")
write.table(ffh_sel.df, file = "df.ffh.csv", sep = ";",
row.names = FALSE)