::: content-hidden # librarys Farben und Daten {.hidden .unnumbered .unlisted} ```{r librarys, include=FALSE} library(readxl) library(ggplot2) library(treemapify) library(treemap) library(ggrepel) # um Legenden automatisch zu platzieren #library(scales) # um Tausendertrennzeichen einzuführen library(prettyunits) # um Einheiten zu formatieren library(stats) library(corrplot) library(tidyverse) library(feather) # um Daten zu speichern library(tidyr) library(scales) library(RColorBrewer) # Für eine breite Palette von Farben library(patchwork) # um Diagramme nebeneinander darzustellen library(knitr) library(flextable) library(kableExtra) library(xtable) # für LaTeX-Tabellen library(quarto) #library(webshot2) # für Screenshots library(RPostgres) # installation funktionert nachdem via muon libpq-dev installiert wurde library(config) # um Datenbankonfiguration zu verstecken library(todor) # um Todos zu erstellen - siehe RStudio, Addins find active ... todos ``` ```{r} # config.yml ist in faircloud/3-2-bwi/Auswertung/R_bwi/ # Verbindung herstellen # convwm <- dbConnect(RPostgreSQL::PostgreSQL(), # host="db03.simplex4data.de", # port=5432, # user="twiebke", # dbname="projekt_lfb", # password="rechtshelfeschmerzendamals") # Konfiguration für eine spezifische Datenbank laden config <- config::get(file = "config.yml") db_config <- config$databases$sgdb consgdb <- DBI::dbConnect(RPostgres::Postgres(), host=db_config$host, port=db_config$port, dbname=db_config$dbname, user=db_config$user, password=db_config$password) ``` ```{r farben, include=FALSE} # Benutzerdefinierte Farben für die Layer ba_farben <- c("Eiche (Quercus)" = "#ffffcc", "Eiche" = "#ffffcc", "Eichen-Typ" = "#ffffcc", "Buche (Fagus)" = "#ccfe64", "Buche" = "#ccfe64", "Buchen-Typ" = "#ccfe64", "Esche (Fraxinus)" = "#fed976", "Eschen-Typ" = "#fed976", "Ahorn (Acer)" = "#fd8d3c", "sonst. Lb hoher Lebensdauer" = "#fc4e2a", "andere Lb hoher Lebensdauer" = "#fc4e2a", "Typ sonst. Laubbäume mit hoher Lebensdauer" = "#fc4e2a", "Erle (Alnus)" = "#8c96c6", "Erlen-Typ" = "#8c96c6", "Birke (Betula)" = "#e0ecf4", "Birken-Typ" = "#e0ecf4", "sonst. Lb niedriger Lebensdauer" = "#88419d", "andere Lb niedriger Lebensdauer" = "#88419d", "Typ sonst. Laubbäume mit niedriger Lebensdauer"= "#88419d", "alle Laubbäume" = "#ae017e", "Fichte (Picea)" = "#7f7f7f", "Fichte" = "#7f7f7f", "Fichten-Typ" = "#7f7f7f", "Tanne (Abies)" = "#a6bddb", "Tanne" = "#a6bddb", "Tannen-Typ" = "#a6bddb", "Douglasie (Pseudotsuga)" = "#67a9cf", "Douglasie" = "#67a9cf", "Douglasien-Typ" = "#67a9cf", "Kiefer (Pinus)" = "#e4ce4c", "Kiefer" = "#e4ce4c", "Kiefern-Typ" = "#e4ce4c", "Lärche (Larix)" = "#f4a6a4", "Lärche" = "#f4a6a4", "Lärchen-Typ" = "#f4a6a4", "alle Nadelbäume" = "#02818a", "Typ mit mehreren gleichrangigen Baumarten" ="#006d2c", "Lücke" = "#dcdcdc", "Blöße" = "#edf8fb", "Nichtholzboden" = "#b2e2e2", "Holzboden" = "#66c2a4", "bestockter Holzboden" = "#2ca25f", "Wald" = "#006d2c", "stehend, ganzer Baum" = "goldenrod1", "stehend, Bruchstück (Höhe ab 130 cm)" = "goldenrod2", "stehend" = "goldenrod3", "liegend, ganzer Baum mit Wurzelanlauf" = "darkseagreen1", "liegend, Stammstück mit Wurzelanlauf" = "darkseagreen2", "liegend, Teilstück ohne Wurzelanlauf" = "darkseagreen3", "liegend" = "darkseagreen4", "Wurzelstock (Höhe < 130 cm)" = "#88419d", "Abfuhrrest (aufgeschichtet)" = "#ae017e", "alle Totholztypen" = "#67a9cf" ) ``` # Datenimport ## von Sachgebietsdatenbank consgdb ### Trakteckenanzahl ```{r} # qu_trackt_eckenanzahl <- "select --distinct bftw.anat count (distinct bfev.tnr) filter (where bfev.wa between 0 and 5) as ausschreibungstrakte, COUNT(distinct bfev.tnr) filter (where bfev.wa = 0) as nichtwaldtrakte -- Anzahl der Traktnummern mit bfev.wa = 0 ,COUNT(distinct bfev.tnr) filter (where bfev.wa between 1 and 5) as waldtrakte -- Anzahl der Traktnummern mit bfev.wa zwischen 1 und 5 ,count(bfev.enr) filter (where bfev.wa between 0 and 5 and bftw.anat between 1901 and 1916) as begutachtungsecken ,count(bfev.enr) filter (where bfev.wa between 0 and 5 and bftw.anat between 1901 and 1911) as ausschreibungsecke -- siehe bwi_meta.k3_login ,count(bfev.enr) filter (where bfev.wa between 0 and 5 and bftw.anat between 1912 and 1916) as lfebearbeitungsecke ,count(bfev.enr) filter (where bfev.wa between 1 and 5) as waldecke from bwi_2022.b3f_ecke_vorkl bfev --join bwi_admin.lospunkt l on l.tnr = bfev.tnr join bwi_2022.b3f_tnr_vorkl bftv on bftv.tnr = bfev.tnr join bwi_2022.b3f_tnr_work bftw on bftw.tnr = bfev.tnr where bftv.trstatus between 1 and 3 -- waldtrakte oder ungewiss = x3_tr_status icode=3 and bftw.anat between 1901 and 1916;" trackt_eckenanzahl <- dbGetQuery(consgdb, qu_trackt_eckenanzahl) trackt_eckenanzahl ``` ### Highligts ```{r} # ist als View erstellt v_top_wzp <- dbGetQuery(consgdb, "SELECT * FROM bwi_2022.v_top_wzp;" ) v_top_wzp ``` ## Waldfläche {.hidden .unnumbered .unlisted} ```{r imp_waldfl, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen waldfl_sheet_names <- excel_sheets("../data/Waldfl_Ba.xlsx") waldfl_ba <- lapply(waldfl_sheet_names, function(sheet) { read_excel("../data/Waldfl_Ba.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(waldfl_ba) <- waldfl_sheet_names ``` ### Waldflächenanteile ```{r} # Daten umformen und rangieren waldflant <- waldfl_ba$waldanteil22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Kategorie", values_to = "Anteil") # Filter, nach Anteil sortieren und fortlaufende Rangfolge erstellen waldflant <- waldflant %>% filter(Land != "Deutschland (alle Länder)") %>% arrange(desc(Anteil * (Kategorie == "Wald"))) %>% # Sortiert nach Anteil der Kategorie "Wald" absteigend group_by(Kategorie) %>% mutate(Anteilsrang = ifelse(Kategorie == "Wald", row_number(), NA)) %>% # Fortlaufende Rangfolge für Wald ungroup() # Zeilen anzeigen waldflant ``` ### Waldfläche \[ha\] nach Land und Waldspezifikation ```{r} # Daten in Long-Format bringen waldfl_spez_long <- waldfl_ba$waldfl22spez %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Kategorie", values_to = "Fläche") waldfl_spez_long <- waldfl_spez_long %>% replace_na(list(Fläche = 0)) # Prozentwerte der Kategorien berechnen waldfl_spez_long <- waldfl_spez_long %>% left_join((waldfl_spez_long %>% filter(Kategorie %in% c("bestockter Holzboden", "Blöße", "Nichtholzboden")) %>% group_by(Land) %>% mutate(Prozent = round((Fläche / sum(Fläche) * 100),2)) %>% ungroup() %>% select(Land, Kategorie, Prozent)), by = c("Land", "Kategorie")) %>% left_join(waldfl_spez_long %>% filter(Kategorie %in% c("Wald", "Holzboden")) %>% spread(key = Kategorie, value = Fläche) %>% mutate(Holzboden_Anteil = round((Holzboden / Wald) * 100, 2)) %>% select(Land, Holzboden_Anteil), by = "Land") %>% mutate(Prozent = ifelse(Kategorie == "Holzboden", Holzboden_Anteil, Prozent)) %>% select(-Holzboden_Anteil) %>% replace_na(list(Prozent = 100)) # Filter, nach Anteil sortieren und fortlaufende Rangfolge erstellen waldfl_spez_long <- waldfl_spez_long %>% filter(Land != "Deutschland (alle Länder)") %>% arrange(desc(Fläche * (Kategorie == "Wald"))) %>% # Sortiert nach Fläche der Kategorie "Wald" absteigend group_by(Kategorie) %>% mutate(Flächenrang = ifelse(Kategorie == "Wald", row_number(), NA)) %>% # Fortlaufende Rangfolge für Wald ungroup() waldfl_spez_long ``` ### Waldfläche Begehbarkeit ```{r} # waldfl_begeh22 <- waldfl_ba$bb_waldfl_begehbar_waldspez22 %>% # pivot_longer(cols = -c(Begehbarkeit,Einheit), # names_to = "Waldspezifikation", # values_to = "Fläche") # waldfl_begeh22 ``` ### Traktecken Begehbarkeit ```{r} waldecke_begeh22 <- waldfl_ba$bb_ecken_begehbar_waldspez22 %>% pivot_longer(cols = -c(Begehbarkeit,Einheit), names_to = "Waldspezifikation", values_to = "Ecken") waldecke_begeh22 ``` ### Waldfläche Eigentum ```{r imp_waldfl_eig, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen waldfleig_sheet_names <- excel_sheets("../data/Waldfl_eig.xlsx") waldfl_eig <- lapply(waldfleig_sheet_names, function(sheet) { read_excel("../data/Waldfl_eig.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(waldfl_eig) <- waldfleig_sheet_names ``` ```{r} #Daten umstrukturieren waldfl22_eig_long <- waldfl_eig$waldfl22_eig %>% pivot_longer(cols = -c(Land, Einheit, `alle Eigentumsarten`), names_to = "Eigentumsart", values_to = "Fläche") %>% replace_na(list(Fläche = 0)) # Berechnung der Prozentwerte für alle Kategorien waldfl22_eig_long <- waldfl22_eig_long %>% group_by(Land) %>% mutate(Prozent = round((Fläche / `alle Eigentumsarten`) * 100, 2)) # Erstellen der Gruppen waldfl22_eig_long <- waldfl22_eig_long %>% mutate( Gruppe = case_when( Eigentumsart %in% c("Staatswald (Bund)", "Staatswald (Land)", "Körperschaftswald") ~ "Öffentlicher Wald", Eigentumsart %in% c("Privatwald, bis 20 ha", "Privatwald, über 20 bis 1000 ha", "Privatwald, über 1000 ha") ~ "Privatwald", TRUE ~ Eigentumsart ) ) waldfl22_eig_long ``` ### Veränderung Waldfläche Eigentum ```{r} # Daten umstrukturieren ver_waldfl22_eig_long <- waldfl_eig$ver_waldfl22_eig %>% pivot_longer(cols = -c(Land, Einheit, `alle Eigentumsarten`),# `Öffentlicher Wald`, `Privatwald`), names_to = "Eigentumsart", values_to = "Fläche") %>% replace_na(list(Fläche = 0)) ver_waldfl22_eig_long ``` ## Baumarten Standflächen ha ```{r} #Daten für 2022 vorbereiten waldfl22_ba_long <- waldfl_ba$waldfl_ba_standfl_22 %>% #filter(Land == "Brandenburg") %>% pivot_longer(cols = -c(Land, Einheit, `alle Baumarten` # , "alle Baumarten", # "alle Laubbäume","alle Nadelbäume", # "andere Lb hoher Lebensdauer", # "andere Lb niedriger Lebensdauer" ), names_to = "Ba_Wa", values_to = "Fläche") # waldfl22_ba_long # Berechnung der Prozentwerte für alle Kategorien waldfl22_ba_long <- waldfl22_ba_long %>% group_by(Land) %>% mutate(Prozent = round((Fläche / `alle Baumarten`) * 100, 2)) %>% ungroup() %>% # Zuordnung der Farben zu den Daten mutate(Farbe = ba_farben[match(Ba_Wa, names(ba_farben))]) waldfl22_ba_long ``` ### Vorrat ```{r imp_vor, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen vor_sheet_names <- excel_sheets("../data/Vorrat.xlsx") vor <- lapply(vor_sheet_names, function(sheet) { read_excel("../data/Vorrat.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(vor) <- vor_sheet_names ``` #### Vorrat Baumarten und Altersklassen - v.a. reell #### Vorratsänderung ```{r imp_ver_vor, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen ver_vor_sheet_names <- excel_sheets("../data/ver_vorrates.xlsx") ver_vor <- lapply(ver_vor_sheet_names, function(sheet) { read_excel("../data/ver_vorrates.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(ver_vor) <- ver_vor_sheet_names ``` ```{r} vor_ver_vor <- vor$vor_land_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Vorrat") %>% replace_na(list(Vorrat = 0)) %>% inner_join( ver_vor$ver_vor_land_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Veränderungen") %>% replace_na(list(Veränderungen = 0)), by = c("Land", "Baumartengruppe", "Einheit") ) ``` ### Vorrat Baumarten und Altersklassen <!--TODO: irgendwie passen die Daten nicht --> ```{r} # TODO: Daten für 2022 ... bb_vor_bhd_akl_22_long <- vor$bb_vor_bhd_akl_22 %>% filter(Baumart == "all") %>% select(-Einheit, -Baumart, -'alle Baumaltersklassen') %>% filter(Brusthöhendurchmesser != "alle BHD-Stufen") %>% pivot_longer( cols = `1 - 20 Jahre`:`> 160 Jahre`, # Angepasst an deine tatsächlichen Spaltennamen names_to = "Altersklasse", values_to = "Volumen" ) %>% mutate(Volumen = replace_na(Volumen, 0)) #bb_vor_bhd_akl_22_long ``` ## Zuwachs ```{r} zuw_sheet_names <- excel_sheets("../data/zuwachs.xlsx") zuw <- lapply(zuw_sheet_names, function(sheet) { read_excel("../data/zuwachs.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(zuw) <- zuw_sheet_names ``` ### Zuwachs Länder-Baumartengruppe-m³/ha*a ```{r} zuw_land_bagr_qm_ha_a <- zuw$zuw_land_bagr_qm_ha_a %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Zuwachs") %>% replace_na(list(Zuwachs = 0)) ``` ## Abgang/Nutzung ```{r} abgang_nutz_sheet_names <- excel_sheets("../data/abgang_nutzung.xlsx") abgang_nutz <- lapply(abgang_nutz_sheet_names, function(sheet) { read_excel("../data/abgang_nutzung.xlsx", sheet = sheet, skip = 5, na = "NaN") }) names(abgang_nutz) <- abgang_nutz_sheet_names ``` ### Abgang ```{r} ausgesbest <- abgang_nutz$ausg_best_land_bagr_22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Ba_Gruppe", values_to = "Abgang") ausgesbest ``` ### Abgangsgrund ```{r} abgangsgrund <- abgang_nutz$abgangsgrund_bb_bagr_22 %>% pivot_longer(cols = -c(Abgangsgrund, Einheit), names_to = "Ba_Gruppe", values_to = "Vorrat") %>% mutate(Vorrat = replace_na(Vorrat, 0)) # Ersetzt NA in der Spalte Vorrat durch 0 ``` ### Nutzung ```{r} nutz_land_qm_ha_ideell <- abgang_nutz$nutz_land_qm_ha_ideell %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Nutzung") %>% replace_na(list(Nutzung = 0)) ``` ### Veränderungsrechnung {.hidden .unnumbered .unlisted} #### Waldflächenänderung {.hidden .unnumbered .unlisted} ```{r imp_ver_waldfl, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen ver_waldfl_sheet_names <- excel_sheets("../data/ver_waldfläche.xlsx") ver_waldfl <- lapply(ver_waldfl_sheet_names, function(sheet) { read_excel("../data/ver_waldfläche.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(ver_waldfl) <- ver_waldfl_sheet_names ``` ##### Waldflächenänderung long ```{r ver-waldfl, include=FALSE} # Daten vorbereiten # Veränderung Waldfläche ver_waldfl_long <- ver_waldfl$ver_waldfl_waldspez_hb_nhb_2022 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Kategorie", values_to = "Veränderungen") %>% replace_na(list("Veränderungen"= 0)) #ver_waldfl_long ``` ##### Standflächenänderung long ```{r} # Daten für Waldfl in Long-Format bringen ver_stndfl_long <- ver_waldfl$ver_stndfl_ba_22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Veränderungen") %>% #filter(Land != "Deutschland (alle Länder)") %>% replace_na(list(Veränderungen = 0)) ver_stndfl_long ``` ##### Prozentstandflächenänderung ```{r} ver_standfl_prozent <- ver_waldfl$ver_proz_waldfl_ba_standfl_22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Kategorie", values_to = "Veränderungen") %>% #filter(Land != "Deutschland (alle Länder)") %>% replace_na(list(Veränderungen = 0)) ver_standfl_prozent ``` ##### Grundflächenänderung ```{r} # Daten in Long-Format bringen ver_gf_ba_22 <- ver_vor$ver_gf_ba_22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Ba_Gruppen", values_to = "Veränderungen") ver_gf_ba_22 <- ver_gf_ba_22%>% replace_na(list(Veränderungen = 0)) ``` ## Struktur ### Waldaufbau ```{r} stuktbeim_sheet_names <- excel_sheets("../data/strukt_beim_besttyp.xlsx") struktbeim <- lapply(stuktbeim_sheet_names, function(sheet) { read_excel("../data/strukt_beim_besttyp.xlsx", sheet = sheet, skip = 5, na = "NaN") }) names(struktbeim) <- stuktbeim_sheet_names ``` ### Waldaufbauveränderung ```{r} ver_stuktbeim_sheet_names <- excel_sheets("../data/ver_strukt_beim_besttyp.xlsx") ver_struktbeim <- lapply(ver_stuktbeim_sheet_names, function(sheet) { read_excel("../data/ver_strukt_beim_besttyp.xlsx", sheet = sheet, skip = 5, na = "NaN") }) names(ver_struktbeim) <- ver_stuktbeim_sheet_names ``` #### Land-Bestockungsaufbau ha-proz ```{r} # Ergebnistabellen zusammenführen und neue Datenzeile "mehrschichtig" aus Summe hinzufügen land_bestaufbau <- struktbeim$land_bestaufbau_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Fläche") %>% inner_join( struktbeim$land_bestaufbau_proz %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Anteil"), by = c("Land", "Bestockungsaufbau")) %>% filter(Bestockungsaufbau %in% c("zweischichtig", "mehrschichtig oder plenterartig")) %>% group_by(Land, Einheit.x, Einheit.y) %>% summarise( Bestockungsaufbau = "mehrschichtig", Fläche = sum(Fläche), Anteil = sum(Anteil), .groups = "drop" ) %>% bind_rows(struktbeim$land_bestaufbau_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Fläche") %>% inner_join( struktbeim$land_bestaufbau_proz %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Anteil"), by = c("Land", "Bestockungsaufbau")) ) ``` #### Waldtyp-Bestockungsaufbau ha-proz ```{r} waldtyp_bestaufbau_bb_ha_proz_ver <- struktbeim$waldtyp_bestaufbau_bb_ha %>% pivot_longer(cols = -c("Laub-/Nadel-Waldtyp", Einheit), names_to = "Bestockungsaufbau", values_to = "Fläche") %>% inner_join( struktbeim$waldtyp_bestaufbau_bb_proz %>% pivot_longer(cols = -c("Laub-/Nadel-Waldtyp", Einheit), names_to = "Bestockungsaufbau", values_to = "Anteil"), by = c("Laub-/Nadel-Waldtyp","Bestockungsaufbau")) %>% inner_join(ver_struktbeim$ver_waldtyp_bestaufbau_bb_ha %>% pivot_longer(cols = -c("Laub-/Nadel-Waldtyp", Einheit), names_to = "Bestockungsaufbau", values_to = "Veränderung"), by = c("Laub-/Nadel-Waldtyp","Bestockungsaufbau")) ``` #### ver-Land-Bestockungsaufbau ha-proz ```{r} ver_land_bestaufbau_ha <- ver_struktbeim$ver_land_bestaufbau_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Fläche") %>% filter(Bestockungsaufbau %in% c("zweischichtig", "mehrschichtig oder plenterartig")) %>% group_by(Land, Einheit) %>% summarise( Bestockungsaufbau = "mehrschichtig", Fläche = sum(Fläche), .groups = "drop" ) %>% bind_rows(ver_struktbeim$ver_land_bestaufbau_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Bestockungsaufbau", values_to = "Fläche") ) ``` ### Verjüngung ```{r imp_strukt, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen strukt_sheet_names <- excel_sheets("../data/struktur_verj.xlsx") struktjung <- lapply(strukt_sheet_names, function(sheet) { read_excel("../data/struktur_verj.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(struktjung) <- strukt_sheet_names ``` #### Jungbestockungsfläche ```{r} jungbestfl <- struktjung$verj_ha %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Jungbestockung", values_to = "Fläche") %>% replace_na(list(Fläche = 0)) jungbestfl ``` #### Jungbestockungsanteil ```{r} # Anteil der Fläche an der Gesamtfläche Wald+Nichtwald [%] nach Land und Bestockungsschicht der Jungbestockung jungbestant <- struktjung$verj_anteil %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Jungbestockung", values_to = "Landesanteil") %>% replace_na(list(Anteil = 0)) jungbestant ``` #### Jungbestandsfläche join Waldfläche und Landesflächenanteil ```{r} jungbestflant <- jungbestfl %>% inner_join(waldfl_spez_long, by = "Land", suffix = c("_jungfl", "_waldfl")) %>% filter(!Kategorie %in% c("Blöße", "Nichtholzboden")) %>% mutate(Waldflächenanteil = round((Fläche_jungfl / Fläche_waldfl) * 100, 2)) %>% inner_join(jungbestant, by = c("Land", "Jungbestockung")) %>% select(Land, Jungbestockung, Fläche_jungfl, Kategorie, Fläche_waldfl, Waldflächenanteil, Landesanteil) ``` ```{r bb_jungbest_22, include=FALSE} # Daten vorbereiten # Baumartenanteile Jungbestockung Gesamtwald! jungbest_ba_22_long <- struktjung$bb_jungbest_art_22 %>% filter(Verjüngungsart == "alle Verjüngungsarten") %>% pivot_longer(cols = -c(Einheit, Verjüngungsart,"alle Baumarten"), names_to = "Baumartengruppe", values_to = "Waldfläche") %>% replace_na(list(Waldfläche = 0)) ``` #### Verjüngungspflanzen pro Hektar ```{r} jung_ba_22 <- struktjung$jung_ba_22 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Anzahl") ``` #### Verjüngungskreis - Verbissprozent Baumarten ```{r} nproz_verb_ba_bb <- struktjung$jung_nproz_verb_ba_bb %>% pivot_longer(cols = -c(Baumartengruppe,Einheit, "mit oder ohne Verbiss"), names_to = "Verbissart", values_to = "Verbissprozent") ``` #### Verjüngungskreis - nBA pro Hektar ```{r} jung_nha_verb_ba_bb <- struktjung$jung_nha_verb_ba_bb %>% pivot_longer(cols = -c(Baumartengruppe,Einheit, "mit oder ohne Verbiss"), names_to = "Verbissart", values_to = "nBA") ``` #### Veränderung Jung ```{r} verjung_sheet_names <- excel_sheets("../data/ver_jung.xlsx") verjung <- lapply(verjung_sheet_names, function(sheet) { read_excel("../data/ver_jung.xlsx", sheet = sheet, skip = 5, na = "NaN") }) # Namen der Liste anpassen names(verjung) <- verjung_sheet_names ``` ##### Veränderung Jungbestockung ```{r} ver_waldflindex_jung_bestschicht <- verjung$ver_waldflindex_jung_bestschich %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Jungbestockung", values_to = "Indexänderungen") %>% replace_na(list(Flächenänderungen = 0)) ver_waldflindex_jung_bestschicht ``` ```{r} ver_jungbestfl <- verjung$ver_waldfl_jung_bestschicht %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Jungbestockung", values_to = "Flächenänderungen") %>% replace_na(list(Flächenänderungen = 0)) %>% inner_join(ver_waldflindex_jung_bestschicht, by = c("Land", "Jungbestockung"), suffix = c("_ver", "_index")) %>% mutate(Veränderungsanteil = Indexänderungen - 100) ver_jungbestfl ``` ```{r bb_ver_jungbest_22, include=FALSE} # Daten vorbereiten # Veränderung Baumartenanteile Jungbestockung Gesamtwald! ver_jungbest_ba_22_long <- verjung$bb_ver_jungbest_art_22 %>% filter(Verjüngungsart == "alle Verjüngungsarten") %>% pivot_longer(cols = -c(Einheit, Verjüngungsart, "alle Baumarten"), names_to = "Baumartengruppe", values_to = "Waldfläche") %>% replace_na(list(Waldfläche = 0)) ``` ## Totholz ```{r imp_struktur_tot, include=FALSE} # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # Namen der Blätter automatisch auslesen tot_sheet_names <- excel_sheets("../data/struktur_tot.xlsx") tot <- lapply(tot_sheet_names, function(sheet) { read_excel("../data/struktur_tot.xlsx", sheet = sheet, skip = 5, na = c("NaN")) }) # Namen der Liste anpassen names(tot) <- tot_sheet_names ``` ### Totholz m³/ha*a Land-Baumartengruppe - reell ```{r} tot_land_qm_ha_reell <- tot$tot_land_qm_ha_reell %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Totholz") ``` ### Veränderung Totholz ```{r} ver_tot_sheet_names <- excel_sheets("../data/ver_tot.xlsx") ver_tot <- lapply(ver_tot_sheet_names, function(sheet) { read_excel("../data/ver_tot.xlsx", sheet = sheet, skip = 5, na = c("NaN")) }) # Namen der Liste anpassen names(ver_tot) <- ver_tot_sheet_names ``` #### Veränderung Totholz m³/ha*a Land-Baumartengruppe - reell ```{r} ver_tot_land_qm_ha_reell <- ver_tot$ver_tot_land_qm_ha_reell %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Veränderungen") ``` #### Veränderung Waldfläche mit Totholz Index BWI2012=100 Land-Baumartengruppe - reell ```{r} ver_tot_index_2012_2022 <- ver_tot$ver_tot_index_waldfl_2012_2022 %>% pivot_longer(cols = -c(Land, Einheit), names_to = "Baumartengruppe", values_to = "Indexänderungen") ``` ### Naturnähe, Stammschaden und öko. Baummerkmale {.hidden .unnumbered .unlisted} ```{r imp_naturnaehe, include=FALSE} # # Excel-Datei einlesen und NaN-Werte als "nan" behandeln # # Namen der Blätter automatisch auslesen # naturnaehe_sheet_names <- excel_sheets("../struktur_naturnaehe_schad.xlsx") # naturnaehe <- lapply(naturnaehe_sheet_names, function(sheet) { # read_excel("../struktur_naturnaehe_schad.xlsx", sheet = sheet, skip = 5, na = "NaN") # }) # # Namen der Liste anpassen # names(naturnaehe) <- naturnaehe_sheet_names ``` ### Zeitpläne ```{r} # zeitplan_sheet_names <- excel_sheets("../zeitplanung.xlsx") # zeitplan <- lapply(zeitplan_sheet_names, function(sheet) { # read_excel("../zeitplanung.xlsx", sheet = sheet, skip = 5 # #,na = ""# "NaN" # ) # }) # names(zeitplan) <- zeitplan_sheet_names ``` :::