Skip to content
Snippets Groups Projects
BWI2022_PK20241014.qmd 70.3 KiB
Newer Older
Wiebke Torsten's avatar
Wiebke Torsten committed
## Änderungen in der Waldstruktur
::::: columns
::: {.column width="50%"}
Wiebke Torsten's avatar
Wiebke Torsten committed
-   `r format(land_bestaufbau %>% filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig') %>% select(Fläche) %>% pull() %>% round(0), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    bzw.
    `r format(land_bestaufbau %>% filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig') %>% select(Anteil) %>% pull() %>% round(1), big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
    der Holzbodenfläche in Brandenburg haben mindestens zwei Schichten
-   gegenüber der BWI 2012 hat sich die Fläche mit Beständen von
    mindestens zwei Schichten um
    `r format(ver_land_bestaufbau_ha %>%  filter(Land == "Brandenburg" & Bestockungsaufbau == 'mehrschichtig' ) %>% pull() %>% round(0), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    erhöht
-   der Anteil einschichtiger Bestände hat sich gegenüber der BWI 2012
    um
    `r format(abs(ver_land_bestaufbau_ha %>%  filter(Land == "Brandenburg" & Bestockungsaufbau == 'einschichtig' ) %>% pull() %>% round(0)), big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
    verringert
:::

::: {.column width="50%"}
```{r groupbar-bestaufbauflant, echo=FALSE}
ggplot(
  land_bestaufbau %>% 
    filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')) %>%
    inner_join(ver_land_bestaufbau_ha %>% 
                 filter(Land == "Brandenburg" & !Bestockungsaufbau %in% c('mehrschichtig', 'alle Arten von Bestockungsaufbau')), 
               by = "Bestockungsaufbau") %>%
    select(Bestockungsaufbau, Fläche = Fläche.x, Veränderung = Fläche.y) %>%
    pivot_longer(cols = c(Fläche, Veränderung), names_to = "Typ", values_to = "Wert")
  , aes(x = reorder(Bestockungsaufbau, -Wert), y = Wert, fill = Bestockungsaufbau)) +  # Färben nach Bestockungsaufbau
  geom_col(aes(group = Typ), position = position_dodge(width = 0.8), width = 0.7) +  # Typ als Gruppe verwenden, um nebeneinander zu bleiben
Wiebke Torsten's avatar
Wiebke Torsten committed
  geom_text(data = . %>% filter(Typ == "Veränderung"),  # Nur die Veränderungen beschriften
            aes(label = scales::comma(Wert, big.mark = ".", decimal.mark = ",")), 
            position = position_dodge(width = 0.8), vjust = -0.5, hjust = -0.1, size = 3) +
  labs(x = "Bestockungsaufbau", y = "Holzbodenfläche [ha]", 
       title = "Fläche und Veränderungen des \nBestockungsaufbaus in Brandenburg") +
  theme_minimal() +
Wiebke Torsten's avatar
Wiebke Torsten committed
  scale_fill_manual(values = schichtfarben) +  # Verwende die benutzerdefinierte Farbpalette 'schichtfarben'
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 100000))  # Schrittweite von 100.000 ha
#ggsave("images/groupbar-bestaufbauflant.png", width = 15, height = 10, units = "cm")
```
:::
:::::
Wiebke Torsten's avatar
Wiebke Torsten committed
```{r, echo=FALSE}
ggplot(waldtyp_bestaufbau_bb_ha_proz_ver %>% 
         filter(!Bestockungsaufbau == "alle Arten von Bestockungsaufbau" &
                  `Laub-/Nadel-Waldtyp` %in% c("Nadelwald-Typ", "Laubwald-Typ")), 
       aes(x = Bestockungsaufbau, y = Veränderung, fill = Bestockungsaufbau)) +
  geom_col(width = 0.7) +
  #facet_wrap(~ `Laub-/Nadel-Waldtyp`, scales = "free_y") +  # Facettierung nach Waldtyp
  labs(x = "`Laub-/Nadel-Waldtyp`", y = "Veränderung [ha]", fill = "Bestockungsaufbau", 
       title = "Veränderung des Bestockungsaufbaus nach Waldtyp in Brandenburg") +
  theme_minimal() +
  scale_fill_brewer(palette = "Set2") +  # Verwende eine Farbpalette für den Bestockungsaufbau
  theme(axis.text.x = element_text(angle = 45, hjust = 1), 
        legend.position = "none") +  # Drehe die x-Achsen-Beschriftungen und blende die Legende aus
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 10000))  # Schrittweite von 100.000 ha

```


```{r, echo=FALSE}
ggplot(waldtyp_bestaufbau_bb_ha_proz_ver %>% 
  filter(`Laub-/Nadel-Waldtyp` == "alle Laub-/Nadelwaldtypen" & !Bestockungsaufbau == "alle Arten von Bestockungsaufbau"),
  aes(x = Bestockungsaufbau, y = Veränderung, fill = Bestockungsaufbau)) +
  geom_col(width = 0.7) +
  labs(x = "Bestockungsaufbau", y = "Veränderung [ha]", 
       title = "Veränderung des Bestockungsaufbaus in Brandenburg") +
  theme_minimal() +
  scale_fill_manual(values = schichtfarben) +  # Verwende die benutzerdefinierte Farbpalette 'schichtfarben'
  scale_y_continuous(labels = label_comma(big.mark = ".", decimal.mark = ",", accuracy = 1),  # Tausenderformat
                     breaks = seq(0, max(land_bestaufbau$Fläche, na.rm = TRUE), by = 100000))  # Schrittweite von 100.000 ha
```

```{r, include=FALSE}
land_bestaufbau %>% 
  distinct(Bestockungsaufbau)
```


Wiebke Torsten's avatar
Wiebke Torsten committed
### Schichtigkeit und Laub- Nadelwald


### Totholz

Wiebke Torsten's avatar
Wiebke Torsten committed
## Waldverjüngung
- Jungbestockung auf
`r format(jungbestflant %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm" & Kategorie == 'Wald') %>%   select(Fläche_jungfl) %>% pull() %>%   round(0),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` ha
(`r format(jungbestflant %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm" & Kategorie == "Wald") %>%   select(Waldflächenanteil) %>% pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %)
der gesamten Waldfläche (+ `r format(ver_jungbestfl %>%   filter(Land == 'Brandenburg' & Jungbestockung == "Jungbestockung mit oder ohne Schirm") %>%   select(Veränderungsanteil) %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %)
- überwiegend aus Naturverjüngung

```{r tbl-jungbest_ba_22_long, echo=FALSE}
jungbest_ba_22_long %>% 
  filter(Baumartengruppe == "alle Baumarten") %>% 
  mutate(Anteil = round(Waldfläche / Waldfläche[Verjüngungsart == "alle Verjüngungsarten"]* 100,2)) %>% 
   mutate(SortOrder = ifelse(Verjüngungsart == "alle Verjüngungsarten", 1, 0)) %>%  # Hilfsspalte hinzufügen
  arrange(SortOrder, desc(Anteil)) %>%  # Nach Hilfsspalte und Anteil sortieren
  select(Verjüngungsart, Waldfläche, Anteil) %>%  # Spalten auswählen
  flextable() %>%
  colformat_double(big.mark = ".", decimal.mark = ",",digits = 1) %>%  
  set_header_labels(Waldfläche = "Waldfläche [ha]", Anteil = "Anteil [%]") %>% 
  bg(i = ~ Verjüngungsart == "alle Verjüngungsarten", bg = "#D3D3D3") %>%
  autofit()
```

- steigender Anteil der Laubbäume
  - bis 4 m Höhe 76,8 % (+ 3,8 %)
  - bis 1,3 m Höhe 77,4 % (+ 38 %)
  
```{r, include=FALSE}
  (442 + 211 + 479 + 1.144)/2939.51228 *100
```
  
  
  
<!-- TODO Verbiss -->

`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'alle Baumarten' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
aller jungen Bäume in Brandenburg sind verbissen. Hinsichtlich des
Zieles einen klimaresilienten Wald aus Naturverjüngung zu erziehen ist
ein Verbissanteil von
**`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'alle Laubbäume' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
bei den Laubbäumen (33 %)** und insbesondere von
`r format(nproz_verb_ba_bb %>% filter(Baumartengruppe == 'sonst. Lb niedriger Lebensdauer' & Verbissart == 'Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` %
bei den sonstigen Laubbäumen niedriger Lebensdauer als zu hoch
einzustufen. Dies besonders bei einer geringen Jungpflanzendichte von
**`r format(jung_nha_verb_ba_bb %>% filter(Baumartengruppe == 'alle Laubbäume' & Verbissart == 'kein Verbiss') %>%   pull() %>%   round(1),    big.mark = ".", decimal.mark = ",", scientific = FALSE)` Pflanzen/ha unverbissenerLaubbäume**.

```{r, echo=FALSE}
jungbest_ba_22_long %>%  
  group_by(Verjüngungsart) %>%
  mutate(Anteil = round(Waldfläche / Waldfläche[Baumartengruppe == "alle Baumarten"]* 100,2)) %>% 
  ungroup() %>% 
  filter(Baumartengruppe == "alle Laubbäume" & Verjüngungsart == "alle Verjüngungsarten") %>% 
  select( Anteil)
  
```



```{r pie_jung_bb_eig_nba_hb_sorted, echo=FALSE}
# Schritt 1: Sortiere den Datensatz nach Anteil und Baumartengruppe
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil))  # Sortiere nach Anteil in absteigender Reihenfolge

# Schritt 2: Setze die Baumartengruppe als Faktor und definiere die Reihenfolge nach Anteil
jung_bb_eig_nba_hb_sorted$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_sorted$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_sorted$Baumartengruppe
)

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% levels(jung_bb_eig_nba_hb_sorted$Baumartengruppe)]

# Schritt 4: Berechne die Positionen für die Labels
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb_sorted %>%
  mutate(ypos = cumsum(Anteil) - 0.5 * Anteil)  # Mittlere Position des Segments

# Erstelle das Kreisdiagramm mit korrekt positionierten Labels
ggplot(jung_bb_eig_nba_hb_sorted, aes(x = "", y = Anteil, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start = 0) +
  geom_text(data = subset(jung_bb_eig_nba_hb_sorted, Anteil > 9),  # Nur Baumarten mit Anteil > 6 %
            aes(label = paste0(Baumartengruppe, "\n", round(Anteil, 2), "%"), y = ypos), 
            size = 3) +  # Beschriftung im Zentrum des Segments
  scale_fill_manual(values = farben_fuer_plot) +
  theme_void() +
  theme(legend.position = "right")  # Position der Legende
```
```{r, echo=FALSE}
# Schritt 1: Sortiere den Datensatz nach Anteil und Baumartengruppe
jung_bb_eig_nba_hb_sorted <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil))  # Sortiere nach Anteil in absteigender Reihenfolge

# Schritt 2: Setze die Baumartengruppe als Faktor und definiere die Reihenfolge nach Anteil
jung_bb_eig_nba_hb_sorted$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_sorted$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_sorted$Baumartengruppe
)

# Schritt 3: Filtere ba_farben so, dass nur die Farben verwendet werden, die im Plot vorkommen
farben_fuer_plot <- ba_farben[names(ba_farben) %in% levels(jung_bb_eig_nba_hb_sorted$Baumartengruppe)]

# Erstelle das liegende gestapelte Balkendiagramm
ggplot(jung_bb_eig_nba_hb_sorted, aes(y = Anteil, x = "", fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack", width = 0.8) +
  # geom_text(data = subset(jung_bb_eig_nba_hb_sorted, Anteil > 9), 
  #           aes(label = paste0(Baumartengruppe, ": ", round(Anteil, 2), "%")), 
  #           position = position_stack(vjust = 0), size = 3, color = "white") +  # Beschriftung im Zentrum des Balkens
  scale_fill_manual(values = farben_fuer_plot) +
  theme_minimal() +
  labs(x = "Anteil (%)", y = "", title = "Anteile der Baumartengruppen in allen Eigentumsarten") +
  theme(axis.text.y = element_blank(), axis.ticks.y = element_blank())
```
```{r, echo=FALSE}
# Daten vorbereiten
jung_bb_eig_nba_hb_pie_data <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(desc(Anteil)) %>%   # Sortiere nach Anteil in absteigender Reihenfolge
  filter(Anteil > 0)  # Stelle sicher, dass es keine 0-Anteile gibt

# Setze die Baumartengruppe als Faktor, um die Reihenfolge sicherzustellen
jung_bb_eig_nba_hb_pie_data$Baumartengruppe <- factor(
  jung_bb_eig_nba_hb_pie_data$Baumartengruppe,
  levels = jung_bb_eig_nba_hb_pie_data$Baumartengruppe
)

# Farben für die Baumartengruppen entsprechend ba_farben
farben_fuer_plot <- ba_farben[as.character(jung_bb_eig_nba_hb_pie_data$Baumartengruppe)]

# Erstelle das Kreisdiagramm mit der pie()-Funktion
pie(jung_bb_eig_nba_hb_pie_data$Anteil, 
    labels = ifelse(jung_bb_eig_nba_hb_pie_data$Anteil > 9, paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe, "\n", 
                                                                   round(jung_bb_eig_nba_hb_pie_data$Anteil, 2), "%"), ""), 
    col = farben_fuer_plot,
    main = "Anteile der Baumartengruppen in allen Eigentumsarten")
```


```{r stackedbar_jung_bb_eig_nba_hb_l_all, echo=FALSE}

ggplot(jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart %in% c("alle Eigentumsarten", "Staatswald (Land)") &
           Baumartengruppe %in% c("alle Laubbäume", "alle Nadelbäume")), 
  aes(x = Eigentumsart, y = Anteil, fill = Baumartengruppe)) +
  geom_bar(stat = "identity", position = "stack", width = 0.7) +
  labs(x = "Eigentumsart", y = "Anteil (%)", 
       title = "Laubbaum und Nadelbaumverteilung nach Eigentumsart") +
  scale_fill_manual(values = c("alle Laubbäume" = "#66c2a5", "alle Nadelbäume" = "#fc8d62")) +  # Farben manuell festlegen
  geom_text(aes(label = paste0(Baumartengruppe, ": ", round(Anteil, 2), "%")),
            position = position_stack(vjust = 0.5), size = 3, color = "black") +  # Beschriftung im Zentrum des Balkens
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 0, hjust = 1),
        legend.position = "none")  # Legende entfernen
#ggsave("images/stackedbar_jung_bb_eig_nba_hb_l_all.png", width = 15, height = 10, units = "cm")
```


```{r pie_jung_bb_eig_nba_hb_l_all.png, echo=FALSE}
# Öffne eine PNG-Datei zum Speichern des Plots
# png("images/pie_jung_bb_eig_nba_hb_l_all.png", width = 800, height = 400)

# Daten filtern und vorbereiten
jung_bb_eig_nba_hb_pie_data <- jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart %in% c("alle Eigentumsarten", "Staatswald (Land)") &
           Baumartengruppe %in% c("alle Laubbäume", "alle Nadelbäume")) %>%
  arrange(Eigentumsart, desc(Anteil))  # Sortiere nach Eigentumsart und Anteil

# Setze die Farben entsprechend der Baumartengruppe
farben_fuer_plot <- c("alle Laubbäume" = "#66c2a5", "alle Nadelbäume" = "#fc8d62")

# Vorbereitung für das Nebeneinanderstellen der Kreisdiagramme
par(mfrow = c(1, 2))  # Zwei Plots nebeneinander

# Kreisdiagramm für "alle Eigentumsarten"
pie(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"],
    labels = paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"], "\n", 
                    round(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"], 2), "%"),
    col = farben_fuer_plot[jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "alle Eigentumsarten"]],
    main = "Alle Eigentumsarten")

# Kreisdiagramm für "Staatswald (Land)"
pie(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"],
    labels = paste0(jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"], "\n", 
                    round(jung_bb_eig_nba_hb_pie_data$Anteil[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"], 2), "%"),
    col = farben_fuer_plot[jung_bb_eig_nba_hb_pie_data$Baumartengruppe[jung_bb_eig_nba_hb_pie_data$Eigentumsart == "Staatswald (Land)"]],
    main = "Staatswald (Land)")

# Zurücksetzen der Paramenter für das Plot-Layout
par(mfrow = c(1, 1))
# Schließe die Grafikdatei und speichere sie
# dev.off()
```

```{r, echo=FALSE}
jung_bb_eig_nba_hb %>% 
  filter(Eigentumsart == "alle Eigentumsarten" &
           !Baumartengruppe %in% c("alle Baumarten", "alle Laubbäume", "alle Nadelbäume")) %>% 
  summarise(Anteil = sum(Anteil))
```

Wiebke Torsten's avatar
Wiebke Torsten committed
# Zusammenfassung

- Brandenburg gehört zu den waldreichsten Ländern
- Waldflächenanteil ist stabil und leicht ansteigend
- Brandenburg ist größter Kiefernholzlieferant in Deutschland ?
- Kleinprivatwald erfordert besondere Fürsorge
- Holzvorrat ist anwachsend
- Waldumbau zeigt in Brandenburg Erfolge