Skip to content
Snippets Groups Projects
librarys-datimport.qmd 11.2 KiB
Newer Older
Wiebke Torsten's avatar
Wiebke Torsten committed
::: content-hidden
Wiebke Torsten's avatar
Wiebke Torsten committed
# librarys Farben und Daten {.hidden .unnumbered .unlisted}

```{r librarys, include=FALSE}
library(readxl)
library(ggplot2)
Wiebke Torsten's avatar
Wiebke Torsten committed
library(treemapify)
library(treemap)
library(ggrepel)
Wiebke Torsten's avatar
Wiebke Torsten committed
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)
Wiebke Torsten's avatar
Wiebke Torsten committed
library(flextable)
Wiebke Torsten's avatar
Wiebke Torsten committed
library(kableExtra)
library(xtable) # für LaTeX-Tabellen
library(quarto)
#library(webshot2)
```

```{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"  
)
```

Wiebke Torsten's avatar
Wiebke Torsten committed
# Datenimport {.hidden .unnumbered .unlisted}
Wiebke Torsten's avatar
Wiebke Torsten committed

Wiebke Torsten's avatar
Wiebke Torsten committed
## Waldfläche {.hidden .unnumbered .unlisted}
Wiebke Torsten's avatar
Wiebke Torsten committed

```{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
```

Wiebke Torsten's avatar
Wiebke Torsten committed
### 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))
 #waldfl_spez_long
```
Wiebke Torsten's avatar
Wiebke Torsten committed

Wiebke Torsten's avatar
Wiebke Torsten committed
### 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
Wiebke Torsten's avatar
Wiebke Torsten committed

```{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

```{r}
# Daten für 2022 vorbereiten
Wiebke Torsten's avatar
Wiebke Torsten committed
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")
Wiebke Torsten's avatar
Wiebke Torsten committed
# 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))
waldfl22_ba_long
Wiebke Torsten's avatar
Wiebke Torsten committed
### Vorrat {.hidden .unnumbered .unlisted}

```{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
```

### 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änderung_der_Waldfläche.xlsx")
ver_waldfl <- lapply(ver_waldfl_sheet_names, function(sheet) {
  read_excel("data/Veränderung_der_Waldfläche.xlsx", sheet = sheet, skip = 5, na = "NaN")
})
# Namen der Liste anpassen
names(ver_waldfl) <- ver_waldfl_sheet_names
```

##### Waldflächenänderung long
Wiebke Torsten's avatar
Wiebke Torsten committed

```{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", 
Wiebke Torsten's avatar
Wiebke Torsten committed
               values_to = "Flächenänderung_ha") %>% 
  replace_na(list("Flächenänderung_ha"= 0)) 
Wiebke Torsten's avatar
Wiebke Torsten committed
#### Vorratsänderung {.hidden .unnumbered .unlisted}

```{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änderung_des_Vorrates.xlsx")
ver_vor <- lapply(ver_vor_sheet_names, function(sheet) {
  read_excel("data/Veränderung_des_Vorrates.xlsx", sheet = sheet, skip = 5, na = "NaN")
})
# Namen der Liste anpassen
names(ver_vor) <- ver_vor_sheet_names
```

### Struktur und Verjüngung {.hidden .unnumbered .unlisted}

```{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")
strukt <- lapply(strukt_sheet_names, function(sheet) {
  read_excel("data/Struktur_Verj.xlsx", sheet = sheet, skip = 5, na = "NaN")
})
# Namen der Liste anpassen
names(strukt) <- strukt_sheet_names
```

### Totholz {.hidden .unnumbered .unlisted}

```{r imp_struktur_tot, include=FALSE}
# Excel-Datei einlesen und NaN-Werte als "nan" behandeln
# Namen der Blätter automatisch auslesen
Schmidt Sebastian's avatar
Schmidt Sebastian committed
tot_sheet_names <- excel_sheets("data/struktur_tot.xlsx")
tot <- lapply(tot_sheet_names, function(sheet) {
Wiebke Torsten's avatar
Wiebke Torsten committed
  read_excel("data/struktur_tot.xlsx", sheet = sheet, skip = 5, na = c("NaN"))
})
# Namen der Liste anpassen
Schmidt Sebastian's avatar
Schmidt Sebastian committed
names(struktur_tot) <- tot_sheet_names
Wiebke Torsten's avatar
Wiebke Torsten committed
```

### 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("data/struktur_naturnaehe_schad.xlsx")
naturnaehe <- lapply(naturnaehe_sheet_names, function(sheet) {
  read_excel("data/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("data/zeitplanung.xlsx")
zeitplan <- lapply(zeitplan_sheet_names, function(sheet) {
  read_excel("data/zeitplanung.xlsx", sheet = sheet, skip = 5 
             )
})
names(zeitplan) <- zeitplan_sheet_names
```
Wiebke Torsten's avatar
Wiebke Torsten committed
:::