Stromerzeugung in Deutschland

By Philipp Leppert in R Analyse Kartierung

April 5, 2020

Kürzlich hat mich die ZDF-Serie Unterleuten - Das zerrissene Dorf wieder einmal mit den gesellschaftlichen Hürden beim Ausbau von erneuerbaren Energien konfrontiert. Meine Generation findet erneuerbare Energien ja zumeist ganz toll. Keine CO~2~-Emissionen, neue Arbeitsplätze und eine Möglichkeit, die Klimaziele doch noch irgendwie zu wuppen. In Unterleuten sind mir einige Parallelen zu meiner südthüringischen Heimat aufgefallen. Hier gab es im letzten Jahr Proteste gegen ein Windvorranggebiet, welches den Bau von 20-30 Windkraftanlagen vorsieht. Weil es bisher kaum Windräder in der Region gibt, ist die Debatte entsprechend emotional aufgeladen. Ich hatte mich schon oft gefragt, warum das eigentlich so ist. Südthüringen ist dünn besiedelt und ziemlich strukturschwach. Ausreichend Platz für Windräder wäre wohl vorhanden.

Der Widerstand organisiert sich in einer Bürgerinitiative, welche sich mit der Aussage “Wir sind für den Schutz unserer Wildtiere und einmaligen Natur und gegen die Industrialisierung des Waldes” positioniert. Frage: Wird der Wald nicht schon seit Hunderten von Jahren industrialisiert und wurde bzw. wird nicht auch für den Braunkohletagebau Wald gerodet (siehe jüngst die Protestaktionen im Hambacher Forst)? Gut, Letzteres passiert ja irgendwo drüben in NRW und nicht vor der eigenen Haustür. Und damit komme ich schon zu den Kernfragen dieses Artikels:

  • Wo und wie wird Strom in Deutschland produziert?
  • Wie viel Strom erzeugen wir mit erneuerbaren Energieträgern und wie hoch ist der Anteil der Windkraft?
  • Und wo stehen dann die ganzen Windräder, wenn nicht in Südthüringen?

Datenbeschaffung

Die Bundesnetzagentur (BNetzA) erfasst wesentliche Daten einzelner Kraftwerke in jährlich durchgeführten Monitoringerhebungen und stellt diese auf ihrer Website in einer Kraftwerksliste zur Verfügung. Auf den ersten Blick findet man hier nur Daten für das Jahr 2020. Via Google konnte ich auch die Kraftwerkslisten für die vorherigen Jahre bis einschließlich 2017 finden. Möglicherweise gibt es bei anderen Behörden und/oder Verbänden weiterführende Daten – für den Anfang soll diese Datengrundlage aber ausreichen. Die Kraftwerkslisten stehen im .XLSX Format zur Verfügung und haben einen Bearbeitungsstand zwischen Februar und April des jeweiligen Jahres. Zunächst konvertiere ich die einzelnen Listen ins .CSV Format und entferne uninteressante Spalten. Eine Zeile im Datensatz repräsentiert ein Kraftwerk bzw. einen Kraftwerksblock. So stehen u.a. Informationen über den Standort, den primär verwendeten Energieträger, die Netto-Nennleistung und den Betriebsstatus des Kraftwerks zur Verfügung.

Datenaufbereitung

Für die Datenaufbereitung greife ich ausschließlich auf die R-Paket Sammlung tidyverse zurück. Zunächst lese ich mit dem Paket readr die .CSV Kraftwerkslisten der Jahre 2017 bis 2020 ein. Die read_delim() Funktion gewährleistet dabei eine sinnvolle Zuweisung von Formaten für jede Spalte. Setzt man die Zeichencodierung auf latin1 werden unter Windows Umlaute in RStudio korrekt dargestellt und fehlerfrei verarbeitet. In Kombination mit der Funktion map_dfr() aus dem Paket purrr können die Kraftwerkslisten iterativ eingelesen und als Dataframe gespeichert werden. Der Code bleibt so kompakt und übersichtlich. Ich hatte in den .CSV Dateien bereits eine Spalte für das jeweilige Jahr angelegt, damit die einzelnen Kraftwerkslisten im kombinierten Datensatz unterscheidbar bleiben.

library(tidyverse) 

# Einlesen der .CSV Kraftwerkslisten von 2017-2020
roh_daten <- purrr::map_dfr(c("2017","2018","2019","2020"), 
                            ~readr::read_delim(
                              delim = ";",
                              locale=locale(decimal_mark = ",", encoding = "latin1"),
                              paste0("01_Daten/Kraftwerke_", .,".csv")
                              )
                            )

Auszug aus dem Datensatz:


Kraftwerksnummer Unternehmen Kraftwerksname PLZ Ort Strasse_Hausnummer Bundesland Blockname Aufnahme_Stromerzeugung Kraftwerksstatus Energieträger Vergütungsfähig_EEG Wärmeauskopplung Netto_Nennleistung Stromnetzbetreiber Jahr Klasse Typ
BNA1011 Breeze Three Energy GmbH & Co. KG Windpark Waldhausen 73433 Aalen NA Baden-Württemberg NA 2006 in Betrieb Windenergie (Onshore-Anlage) Ja Nein 14.0 Netzgesellschaft Ostwürttemberg DonauRies GmbH 2017 Windenergie Erneuerbar
BNA0029 ESK Solarenergie GmbH & Co. KG Solarpark Petzenbach 94424 Arnstorf NA Bayern NA 2010 in Betrieb Solare Strahlungsenergie Ja NA 10.0 Bayernwerk AG 2017 Solarenergie Erneuerbar
BNA0194 Kraftwerk Dessau GmbH Kraftwerk Dessau 06842 Dessau-Roßlau NA Sachsen-Anhalt NA 1996 in Betrieb Braunkohle Nein ja 49.0 Dessauer Stromversorgung GmbH 2017 Braun-/Steinkohle Konventionell
BNA1353 LHI Solar Georgsdorf GmbH & Co. KG NA 49828 Georgsdorf Georgsdorf 14/10; 1/41; 1/39; 2/7; 1/42; 11/4; 11/5; u.a. Niedersachsen NA 2011 in Betrieb Solare Strahlungsenergie Ja NA 24.7 Westnetz GmbH 2017 Solarenergie Erneuerbar
BNA0405b Windpark GmbH & Co. Hamburg KG Windpark Hamburg 21129 Hamburg NA Hamburg NA 2009 in Betrieb Windenergie (Onshore-Anlage) Ja nein 12.0 Stromnetz Hamburg GmbH 2017 Windenergie Erneuerbar
BNA1289 AMK - Abfallentsorgungsgesellschaft des Märkischen Kreises mbH AMK - Abfallentsorgungsgesellschaft des Märkischen Kreises mbH 58636 Iserlohn Giesestraße 10 Nordrhein-Westfalen NA 1981 in Betrieb Abfall Nein Ja 12.6 Stadtwerke Iserlohn GmbH 2017 Sonstige Konventionelle Konventionell
BNA0555 KOGEP vierzehn GmbH & Co. Solar 1411 KG NA 06366 Köthen NA Sachsen-Anhalt NA 2010 in Betrieb Solare Strahlungsenergie Ja NA 11.7 Mitteldeutsche Netzgesellschaft Strom mbH 2017 Solarenergie Erneuerbar
BNA0775 EEV BioEnergie GmbH & Co. KG Biomasse-HKW 26871 Papenburg Am Nordhafen 5 Niedersachsen NA 2003 in Betrieb Biomasse Ja Nein 20.0 EWE NETZ GmbH 2017 Biomasse Erneuerbar

Für die weiteren Analysen halte ich mich an die Auswertungsmethodik der BNetzA. Ich berücksichtige anhand des Merkmals Kraftwerkstatus für das jeweilige Jahr alle Kraftwerke, die nicht endgültig stillgelegt wurden. Nach kurzer Recherche im Internet bin ich bspw. darauf gestoßen, dass mit (zusätzlichen) konventionellen Energieträgern Strom in das Netz eingespeist wird, wenn es zu Schwankungen bei erneuerbaren Energieträgern kommt. Die BNetzA bezeichnet diese als Kraftwerke außerhalb des Strommarktes.

Im Jahr 2019 tauchen beim Merkmal Bundesland fehlende Werte auf, während in den restlichen Jahren hier die Kategorie ohne Zuordnung verwendet wurde. NA Werte werden daher mit der Funktion mutate() umgeschlüsselt.

# Filtern und Bereinigen der Daten
roh_daten %>%
  # Alle aktiven Kraftwerke auswählen (auch solche, die nur im Notfall einspringen)
  filter(Kraftwerksstatus %in% c("in Betrieb","In Betrieb", 
                                 "Vorläufig Stillgelegt (mit StA)",
                                 "Gesetzlich an Stilllegung gehindert", 
                                 "gesetzlich an Stilllegung gehindert",
                                 "Netzreserve", "Saisonale Konservierung", 
                                 "Sicherheitsbereitschaft", "Sonderfall")) %>%
  # 2019: NA in "ohne Zuordnung" umcodieren
  mutate(Bundesland = ifelse(is.na(Bundesland), "ohne Zuordnung", Bundesland)) -> strom_df

Das Merkmal Energieträger ist mit 20 verschiedenen Ausprägungen sehr detailliert untergliedert und ich möchte einige Energieträger in einem neuen Merkmal Klasse zusammenfassen. Hierfür ist die Funktion case_when() aus dem R-Paket dplyr sehr gut geeignet. Das Merkmal Klasse enthält nun u.a. die Ausprägungen Sonstige Konventionelle bzw. Sonstige Erneuerbare, bei welchen ich mich an der BNetzA orientiert habe. Lediglich den Energieträger Abfall rechne ich vollständig der Kategorie Sonstige Konventionelle zu, während die BNetzA diesen aufteilt. Leider gibt es auch beim Merkmal Energieträger in einem Jahr zwei NA Werte, welche ich nach einer Inspektion der Daten zu Sonstige Konventionelle zähle. Das Merkmal Klasse hat nun nur noch 10 Ausprägungen, was die folgenden Auswertungen erleichtern soll. Ausgehend vom Merkmal Klasse habe ich zusätzlich das Merkmal Typ generiert, welches jede Klasse in Konventionell oder Erneuerbar einteilt.

strom_df %>%
  mutate(
    # Neue Klassifizierung der Energieträger (10 statt 20 Ausprägungen)
    Klasse = case_when(
      Energieträger=="Biomasse" ~ "Biomasse",
      Energieträger=="Solare Strahlungsenergie" ~ "Solarenergie",
      Energieträger=="Laufwasser" ~ "Wasserkraft",
      Energieträger=="Speicherwasser (ohne Pumpspeicher)" ~ "Wasserkraft",
      Energieträger=="Windenergie (Offshore-Anlage)" ~ "Windenergie",
      Energieträger=="Windenergie (Onshore-Anlage)" ~ "Windenergie",
      Energieträger=="Deponiegas" ~ "Sonstige Erneuerbare",
      Energieträger=="Geothermie" ~ "Sonstige Erneuerbare",
      Energieträger=="Klärgas" ~ "Sonstige Erneuerbare",
      Energieträger=="Braunkohle" ~ "Braun-/Steinkohle",
      Energieträger=="Steinkohle" ~ "Braun-/Steinkohle",
      Energieträger=="Erdgas" ~ "Erdgas",
      Energieträger=="Kernenergie" ~ "Kernenergie",
      Energieträger=="Pumpspeicher" ~ "Pumpspeicher",
      Energieträger=="Abfall" ~ "Sonstige Konventionelle",
      Energieträger=="Grubengas" ~ "Sonstige Erneuerbare",
      Energieträger=="Mineralölprodukte" ~ "Sonstige Konventionelle",
      Energieträger=="Sonstige Energieträger\n(nicht erneuerbar)" ~ "Sonstige Konventionelle",
      Energieträger=="Sonstige Energieträger\n(nicht erneuerbar) " ~ "Sonstige Konventionelle",
      Energieträger=="Mehrere Energieträger\n(nicht erneuerbar)" ~ "Sonstige Konventionelle",
      Energieträger=="Unbekannter Energieträger\n(nicht erneuerbar)" ~ "Sonstige Konventionelle",
      Energieträger=="Mehrere Energieträger" ~ "Sonstige Konventionelle",
      Energieträger=="Unbekannter Energieträger" ~ "Sonstige Konventionelle",
      is.na(Energieträger) ~ "Sonstige Konventionelle"),
    
    # Typ: erneuerbar vs. konventionell
    Typ = case_when(
      Klasse=="Biomasse" ~ "Erneuerbar",
      Klasse=="Solarenergie" ~ "Erneuerbar",
      Klasse=="Wasserkraft" ~ "Erneuerbar",
      Klasse=="Windenergie" ~ "Erneuerbar",
      Klasse=="Sonstige Erneuerbare" ~ "Erneuerbar",
      Klasse=="Pumpspeicher" ~ "Konventionell",
      Klasse=="Braun-/Steinkohle" ~ "Konventionell",
      Klasse=="Erdgas" ~ "Konventionell",
      Klasse=="Kernenergie" ~ "Konventionell",
      Klasse=="Sonstige Konventionelle" ~ "Konventionell")
  ) -> strom_df

Es ist immer eine gute Idee, die Zuordnungen mit table() inkl. dem Argument useNA = "always" zu überprüfen. Tauchen NA auf, deutet dies auf ein Problem bei der Zuordnung mit case_when() hin.


Erneuerbar Konventionell NA
Biomasse 305 0 0
Braun-/Steinkohle 0 594 0
Erdgas 0 1103 0
Kernenergie 0 28 0
Pumpspeicher 0 269 0
Solarenergie 640 0 0
Sonstige Erneuerbare 272 0 0
Sonstige Konventionelle 0 724 0
Wasserkraft 456 0 0
Windenergie 3488 0 0
NA 0 0 0

Datenanalyse

Eingangs hatte ich einige Fragen notiert, die ich nun mit den aufbereiteten Daten beantworten will. Zunächst betrachte ich die Höhe der Netto-Nennleistungen je Energieträger. Da zwischen 2017 und 2020 Kraftwerke stillgelegt wurden, ist es sinnvoll diese Frage für jedes Jahr getrennt zu betrachten. Grundsätzlich eignet sich ein Balkendiagramm für die Darstellung, da neben der absoluten Nennleistung auch die jeweiligen Anteile der Energieträger betrachtet werden kann. Ich verwende hierzu das Merkmal Klasse. Da ich auch daran interessiert bin, ob erneuerbare oder konventionelle Energieträger im jeweiligen Jahr die Nase vorn haben, gruppieren ich die Balken mit dem Merkmal Typ.

Die einzelnen Energieträger sollten farblich unterscheidbar sein. Besonders leicht fällt die Interpretation, wenn die Farben nicht zufällig gewählt sind. Wenn ich die Farbe Braun in einem Balkendiagramm sehe, welches Informationen zum Thema Stromerzeugung enthält, erwarte ich, dass diese Farbe Informationen zu (Braun)kohle enthält. Ebenso erwarte ich bei der Farbe Gelb Informationen zur Solarenergie. Wie man sich eine eigene Farbpalette zusammenstellt, habe ich in diesem Artikel beschrieben.

# Passende Farbskala definieren
farbskala <- c("#33A02C", "#B15928", "#E31A1C","#6A3D9A","#CAB2D6","#FFFF99",
               "#B2DF8A","#FF7F00","#1F78B4","#A6CEE3")

Netto-Nennleistung nach Energieträger

Momentan enthält der Datensatz noch Angaben auf Ebene der einzelnen Kraftwerke. Ziel ist es jedoch Informationen auf Ebene der Energieträger darzustellen. Via group_by() und summarise() summiert man die Netto-Nennleistung pro Jahr, Typ und Klasse auf und rechnet die Angaben von Megawatt in Gigawatt um. Das Balkendiagramm erstelle ich mit dem R-Paket ggplot2. Auf der X-Achse findet sich der Typ des Energieträgers wieder und auf der Y-Achse die aggregierte Netto-Nennleistung. Mittels fill = Klasse wird die Einfärbung der einzelnen Energieträger festgelegt. Mit facet_grid() wird das Balkendiagramm nach Jahr gruppiert.

strom_df %>%
  # Netto-Nennleistung pro Jahr, Typ und Energieträger (Klasse) aufsummieren
  group_by(Jahr, Typ, Klasse) %>%
  summarise(Summe_Nennleistung = sum(Netto_Nennleistung, na.rm = TRUE)/1000) %>%
  # Balkendiagramm mit ggplot erstellen
  ggplot(data=., aes(x = reorder(Typ, Summe_Nennleistung), 
                     y = Summe_Nennleistung, fill = Klasse)) +
    geom_bar(stat = "identity") +
    facet_grid(. ~ Jahr) +
    scale_y_continuous(breaks = c(0, 25, 50, 75, 100, 125), limits = c(0, 125)) +
    scale_fill_manual(name = "Energieträger:",
                      values = farbskala) +
    labs(title = "",
         x = "",
         y = "Netto-Nennleistung in Gigawatt") +
    theme(legend.position = "bottom") +
    guides(fill = guide_legend(nrow = 2))

Viele Informationen komprimiert in einem einzigen Balkendiagramm - puh! Man erkennt, dass vor allem die Windenergie von 2017 bis 2020 ausgebaut wurde, während Braun- und Steinkohle einen Rückgang aufweisen. Von 2019 zu 2020 ist der Ausbau der Windkraft allerdings etwas langsamer verlaufen als in den Vorjahren. Von 2019 zu 2020 kann zudem die Solarenergie einen relativ hohen Zuwachs verzeichnen. Seit 2018 wird durch erneuerbare Energieträger mehr Strom produziert als durch konventionelle Energieträger. In 2020 befinden sich dennoch Steinkohlekraftwerke mit einer Gesamtleistung von 2,3 Gigawatt am Netz, welche gesetzlich an der Stillegung gehindert wurden.

Netto-Nennleistung pro Energieträger regionalisieren

Als nächstes wird die Netto-Nennleistung regional ausgewertet. Ich konzentriere mich dabei auf Kraftwerke, zu denen eine Standortangabe auf dem deutschen Festland vorhanden ist. Ausgeschlossen werden damit Kraftwerke in Dänemark, Luxemburg, Österreich, Schweiz sowie Offshore-Anlagen in der Nordsee. Diese Kraftwerke haben 2020 nur einen Anteil von etwa 7 % an der gesamten Netto-Nennleistung aller Kraftwerke, sodass man weiterhin ein realtiv vollständiges Bild der Stromproduktion erhält. Erneut wird die Netto-Nennleistung aller Kraftwerke pro Jahr und Energieträger und nun auch nach Bundesland aggregiert. Das Bundesland wird anstatt Typ an der X-Achse abgebildet und die Achsen werden via coord_flip() vertauscht. Dies hat den Vorteil, dass nun jedes Bundesland nur einmal auf der Y-Achse auftaucht und die invertierten Balken einen besseren Vergleich zwischen den Bundesländern ermöglichen.

# Sortierreihenfolge für regionale Auswertung
sort_data <- strom_df %>%
  # Netto-Nennleistung pro Jahr, Bundesland und Energieträger (Klasse) aufsummieren
  group_by(Bundesland) %>%
  summarise(Reihenfolge_Nennleistung = sum(Netto_Nennleistung, na.rm = TRUE)/1000) 

strom_df %>%
  # Nur Kraftwerke mit Standort in einem Bundesland behalten
  filter(!(Bundesland %in% c("AWZ","Dänemark","Luxemburg", 
                             "Österreich", "Schweiz","ohne Zuordnung"))) %>%
  # Netto-Nennleistung pro Jahr, Bundesland und Energieträger (Klasse) aufsummieren
  group_by(Jahr, Bundesland, Klasse) %>%
  summarise(Summe_Nennleistung = sum(Netto_Nennleistung, na.rm = TRUE)/1000) %>%
  # Merkmal für Sortierung verknüpfen
  left_join(sort_data, by = "Bundesland") %>%
  # Balkendiagramm mit ggplot erstellen
  ggplot(data = ., aes(x = reorder(Bundesland, Reihenfolge_Nennleistung), 
                       y = Summe_Nennleistung, fill = Klasse)) +
    geom_bar(stat = "identity") + 
    coord_flip() + 
    facet_grid(. ~ Jahr) +
    scale_y_continuous(breaks = c(0, 10, 20, 30, 40), 
                      limits = c(0, 45)) +
    scale_fill_manual(name = "Energieträger:",
                      values = farbskala) +
    labs(title = "",
         x = "",
         y = "Netto-Nennleistung in Gigawatt") +
    theme(legend.position = "bottom") +
    guides(fill = guide_legend(nrow = 4)) 

Nordrhein-Westfalen ist Deutschlands Spitzenreiter bei der Stromproduktion! Braun- und Steinkohle sowie Erdgas sind hier die dominanten Energieträger. Dabei produziert NRW fast genau so viel Strom wie alle neuen Bundesländer zusammen. Interessant finde ich, dass in Bayern die Solarenergie einen sehr hohen Anteil an der Stromerzeugung aufweist. Dies könnte möglicherweise auf viele private Haushalte und landwirtschaftliche Betriebe zurückzuführen sein, die Solarstrom in das Netz einspeisen. Niedersachsen ist der Vorreiter bei der Windenergie, dicht gefolgt von Brandenburg und Schleswig-Holstein. Auch Thüringen hat gemessen an ihrer eigenen Stromproduktion einen hohen Anteil bei der Wind- und Solarenergie. Rheinland-Pfalz hat allerdings einen mehr als doppelt so hohen Anteil bei der Windenergie bei nur geringfügig höherer Gesamtfläche als Thüringen. Doch auch Bayern liegt beim Thema Windkraft trotz seiner großen Fläche auf einem abgeschlagenen Platz. Aber von hier kamen ja kürzlich erst Forderungen nach strengeren Abstandsregelungen.

Kraftwerksstandorte kartieren

In den Daten befinden sich genaue Angaben zum Standort der Kraftwerke. Ich will daher die Geocoding API von Google nutzen, um deren Koordinaten zu beschaffen und diese dann auf einer Deutschlandkarte abzubilden. Da einige Kraftwerke mehrere Anlagen oder Blöcke am selben Standort haben, berücksichtige ich pro Energieträger eines Kraftwerks, den Standort nur einmal. Wie man in RStudio mit der Geocoding API von Google Adressangaben in Koordinaten umwandelt, habe ich in diesem Artikel beschrieben.

Im Datensatz gibt es auf Ebene der Energieträger 1.714 Standorte innerhalb von Deutschland. Zu 12 Adressen konnten keine Koordinaten gefunden werden. Teilweise befinden sich Namen der Flurstücke in den Adressfeldern, sodass hier eine gründliche Datenbereinigung durchgeführt werden müsste.

Für die Kartierung der Standorte verwende ich das R-Paket ggmap. Wichtig: Man benötigt auch für die Kartierung einen API Key, um den Google-Dienst Maps Static API zu nutzen. Hier gibt es eine Anleitung, wie man sich diesen generiert. Für die Kartierung werden nur Kraftwerke aus dem Jahr 2020 verwendet, um ein möglichst aktuelles Bild zu erhalten. Mit der Funktion get_map() erstellt man nun eine Basiskarte von Deutschland, auf welcher dann die Koordinaten eingezeichnet werden. Eine farbliche Unterscheidung der Standorte wird mit dem Merkmal Klasse vorgenommen.

library(ggmap)

# Adressfeld aus den vorhandenen Standort-Merkmalen generieren
strom_df %>%
  mutate(adressen = trimws(
    str_c(
      PLZ, Ort, str_replace_na(strom_df$Strasse_Hausnummer, replacement = ""), sep = " "
      )
    )
  ) -> strom_df

strom_df %>%
  # Standorte ohne Adressfeld entfernen
  filter(Jahr == 2020 & !is.na(adressen)) %>%
  # Extrahierte Koordinaten mit mod_data verknüpfen
  left_join(koordinaten_df, by = "adressen") %>%
  group_by(Energieträger) %>%
  distinct(adressen, .keep_all = T) -> karte_df

# Basiskarte Deutschland
Get_Map_Country <- get_map(location = "Germany", zoom = 6, 
                           maptype ="stamen_toner_background", 
                           filename = "ggmapTemp", color = "bw", source = "stadia")

karte_deutschland <- ggmap(ggmap = Get_Map_Country)

# Karte für 2020
karte_deutschland + 
  geom_point(data = karte_df, 
             aes(x = longitude, y = latitude, color = Klasse), 
             size = 2) +
    scale_color_manual(name = "Energieträger:",
                       values = farbskala) +
  labs(title = "Kraftwerksstandorte in Deutschland (April 2020)", 
       x = "Längengrad", 
       y = "Breitengrad") +
  theme(legend.position="bottom") +
  guides(colour = guide_legend(nrow = 4))

Man erkennt eine hohe Dichte von Windkraftanlagen im Norden von Deutschland sowie eine Konzentration von Kohle- und Erdgaskraftwerken im Ruhrgebiet. Auch Wasserkraftwerke an Donau, Lech, Isar und Inn sowie entlang der Mosel sind gut zu sehen. Bayern hatte einen hohen Anteil der Solarenergie aufgewiesen, obwohl ich anhand der Karte nicht sonderlich viele Solarparks erkennen kann. Die These, dass diese erzeugte Strommenge von privaten Haushalten und landwirtschaftlichen Betrieben stammt, könnte also stimmen, da nur geringfügig eingespeiste Mengen aus erneuerbaren Energien in der Kraftwerksliste nicht mit einem genauen Standort erfasst werden. Was ist so in Südthüringen los? Ziemlich viel Platz bis auf ein Paar Erdgaskraftwerke und zwei Pumpspeicher. Im Norden Thüringens sind jedoch schon einige Windräder in Betrieb.

Kraftwerksstandorte animieren

Mit dem R-Paket gganimate kann man die Ausprägungen vom Merkmal Klasse nacheinander und einblenden lassen, sodass die Standortverteilung auf der Karte noch präziser ablesbar ist.

library(gganimate) 

# Karte erstellen und Animation spezifizeren
karte_animation <- karte_deutschland + 
  geom_point(data = karte_df, 
             aes(x = longitude, y = latitude, color = Klasse), 
             size = 2) +
  scale_color_manual(name = "Energieträger:",
                     values = farbskala)  +
  labs(title = "Kraftwerksstandorte in Deutschland (April 2020)", 
       x = "Längengrad", 
       y = "Breitengrad") +
  transition_states(Klasse,
                    transition_length = 12,
                    state_length = 12) +
  ggtitle("Zeigt gerade Standorte von: {closest_state}")

# Animation starten (Achtung: relativ lange Ladezeit)
animate(karte_animation, nframes = 100, fps = 3)
Posted on:
April 5, 2020
Length:
13 minute read, 2690 words
Categories:
R Analyse Kartierung
See Also: