Reducing greenhouse gas emissions in Europe to save our climate

by Melanie H

Summary

Anthropogenic greenhouse gas emissions are known to be a driving force for global warming which affects the natural balance of ecosystems, species distributions, crop productivity and consequently human wellbeing. Renewable energies provide a solution to reduce emissions, conserve resources and decelerate global warming. Using free online available data from the World Bank and Our World in Data, I investigate the current status and progress in these fields in Europe to evaluate the urgency of action in European countries. The development in the last decades shows a slight decline in CO2 emissions in many European countries and a more pronouned decline in CH4 and N2O emissions. However, many countries still have similar emssions as in the 1970s. Only topographically favoured countries for hydropower and wind energy like Norway, Iceland and Switzerland have an appreciable share of electricity production from renewables although the renewable energy consumption increased everywhere since 1990. The remaining countries with sufficient economical stability should efficiently improve their efforts in developing technologies and policies for generating more CO2-neutral energy and counteract global warming.

Introduction

The UN members agreed on 17 Sustainable Development Goals to achieve a more sustainable future for the planet and its living individuals. The goals include progress towards peace, prosperity, justice and less poverty and environmental degradation (United Nations 2018). Annex IV of the Report of the Inter-Agency and Expert Group on Sustainable Development Goal Indicators (E/CN.3/2016/2/Rev.1) provides a list of indicators for the goals and more detailed targets that the Agenda for 2030 desires to accomplish. Goal 7 (Ensure access to affordable, reliable, sustainable and modern energy for all) and Goal 13 (Take urgent action to combat climate change and its impacts) relate to climate change and consider indicators like policies for low greenhouse gas emissions and increasing share of renewable energies in the total final energy consumption (United Nations 2016). Anthropogenic greenhouse gas emissions are known to be a driving force for global warming and climate change (Crowley 2000). This bears risks for the natural balance of ecosystems (e.g. Ayres & Lombardero 2000) and is likely to affect species distribution and extinction, plant physiology and productivity and consequently also human health and wellbeing (Hughes 2000; McMichael, Woodruff & Hales 2006). One solution for incrasing temperatures are renewable energies to reduce emissions, conserve the environment and decelerate global warming (Jacobson 2009). I investigate the current status and progress in these fields in Europe to evaluate the urgency of action in European countries which contribute to global emissions and temperature increase by nearly 20 % (Rocha et al. 2015).

Data and Methods

The data used for this analysis comes from the World Bank’s compilation of international statistics on global development and is downloaded from this Website in the category “Environment” as CSV files (The World Bank Group 2018). There is also some data downloaded as CSV from Our World in Data. This is a web publication by Max Roser at Oxford University that presents how our world is changing in terms of living conditions (Roser 2018). The data sets were downloaded, sometimes renamed and saved in the workspace. Descriptive first lines in the files were removed prior to reading in R, if necessary. I used R Markdown for presenting code as well as visualizations and text. Spatial data for mapping European countries comes from the R package rnaturalearth. I chose the polygons representing Europe ans saved them as an sf object. Emission and renewable energy data was joined with spatial data for mapping. Maps are made interactive by using the R package ggiraph. Charts are displayed using ggplot2.

Results

# Install and load necessary packages
library(sf)
library(sp)
library(dplyr)
library(rnaturalearth)
library(ggplot2)
library(broom)
library(ggiraph)
library(tidyr)

Trends in CO2 emissions in Europe

Global warming is mostly attributed to anthropogenic greenhouse gas emissions. CO2 is the reference for the quantification of greenhouse gas emissons. To display the CO2 emissions in Europe as a map, the data has to be selected and joined to the spatial data.

co2em <- read.csv("./co2_emiss_kt.csv", sep = ",", dec = ".", header = TRUE) # contains CO2 emissions in kt for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed
# For spatial display we need borders of European countries, here I use spatial data provided by the R package rnaturalearth
world <- rnaturalearth::countries110 %>% st_as_sf()
europe <- world[world$region_un=="Europe"&world$name!='Russia',]  %>% dplyr::select("iso_a3", "name")
countrycodes_eu <- pull(europe, iso_a3)  # get the European country codes as template for filtering the emission data
co2em_eur <- filter(co2em, Country.Code %in% countrycodes_eu)
# join spatial and emission data and project crs
co2_europe <- inner_join(europe, co2em_eur, by=c("iso_a3" = "Country.Code")) 
st_transform(co2_europe, crs="+proj=laea +lon_0=18.984375")
class(co2_europe)
# plot CO2 emissions in Europe

# getlongitude and latitude for plotting with ggplot 
eu.centers <- st_centroid(co2_europe)  # center points

eu.spdf <- methods::as(co2_europe, 'Spatial')  # convert to spatial class object
eu.spdf@data$id <- row.names(eu.spdf@data) # create id column with numbers

eu.tidy <- broom::tidy(eu.spdf) # now it is just a regular dataframe

eu.tidy <- dplyr::left_join(eu.tidy, eu.spdf@data, by='id') 

eu.tidy <- eu.tidy[!(eu.tidy$long < -50 | eu.tidy$lat > 73), ]  # remove islands belonging to Europe but situated far away in the world (for better map display)

Maps of CO2 emissions in Europe for 1998, 2006 and 2014

# mapping with ggplot
g1998 <- ggplot(eu.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X1998,
        tooltip=sprintf("%s<br/>%s",iso_a3,round(X1998, digits = 0)))) +  # display country code and emissions by hovering
# coord_fixed(xlim=c(-28,40),ylim=c(30,74)) +  # set coordinate extent manually
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 1000000))+ # set limits for comparison of different maps
# alternatively   viridis::scale_fill_viridis(option="plasma", direction = -1)+
  labs(title='CO2 emissions 1998', subtitle='in Europe',
       caption='Source: World Bank', fill="CO2 [kt]")


g2006 <- ggplot(eu.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2006,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2006, digits = 0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 1000000))+ # set limits for comparison of different maps
  labs(title='CO2 emissions 2006', subtitle='in Europe',
       caption='Source: World Bank', fill="CO2 [kt]")


g2014 <- ggplot(eu.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group = group, fill=X2014,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2014, digits =0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 1000000))+ # set limits for comparison of different maps
  labs(title='CO2 emissions 2014', subtitle='in Europe',
       caption='Source: World Bank', fill="CO2 [kt]")


ggiraph(code=print(g1998))
ggiraph(code=print(g2006))
ggiraph(code=print(g2014))

The maps show the highest CO2 emissions in Germany in all three selected years. Northern and south-eastern countries have the lowest CO2 emissions. Several countries indicate slight decreases.

A Graphical demonstration of European trend in CO2 emissions for selected countries gives further insights to the developments over the last decades (where data is available).

# select some European countries of interest
countries <- c("DEU", "DNK", "FIN", "FRA", "GBR", "ITA", "UKR", "SWE")
selcountries <- co2em_eur[co2em_eur$Country.Code %in% countries,] # select only rows with countries of interest
selcountries <- selcountries[, -c(3,4)]  # remove unnecessary variable columns
#saveRDS(selcountries, file = "eightcountries.rds")
selcountries_long <- selcountries %>%
    gather(year1, value, X1960:X2014) %>%  # change data structure with row for each year
    mutate(year = as.integer(substr(year1, 2,5)) ) # add column with years as integer
## Warning: attributes are not identical across measure variables;
## they will be dropped
selcountries_long <- selcountries_long[, -c(3:6)]  # remove unnecessary columns
#saveRDS(selcountries_long, file = "eightcountries_long.rds")


selcountries_long$year <- as.numeric(selcountries_long$year)  # make numeric for plotting
selcountries_long$value <- as.numeric(selcountries_long$value)
selcountries_long$Country <- selcountries_long$Country.Name  # rename column

colvec <- c("#6161b1","#489b41", "#8fff48", "#1344d4", "#d49d13", "#d62d0a", "#17d6e4", "black") # choose hex colors for plotting the different countries

ggplot(selcountries_long, aes(x = year, y = value, colour = Country))+
  geom_line(size=1.2)+
  labs(x = "Year", y = "CO2 emissions [kt]") +
  theme_classic()
## Warning: Removed 63 rows containing missing values (geom_path).

The line graph shows clearly that total CO2 emissions decreased in several countries since 1980. Germany and Ukraine show steep declines since the early 1990s. In contrast, the decrease is very low for scandinavian countries like Sweden and Finland, but they also had very low CO2 emissions before.

Methane and Nitrous oxide emissions in Europe

Other important greenhouse gases are methane and nitrous oxide emissions. Their amount is often given in CO2 equivalents (CO2-eq).

methane_em <- read.csv("./methane_emiss_co2equiv.csv", sep = ",", dec = ".", header = TRUE) # contains methane emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed
metcountries <- methane_em[methane_em$Country.Code %in% countries,] # select only rows with countries of interest
metcountries <- metcountries[, -c(3:14)]  # remove unnecessary variable columns
metcountries_long <- metcountries %>%
    gather(year1, value, X1970:X2012) %>%  # change data structure with row for each year
    mutate(year = as.integer(substr(year1, 2,5)) ) # add column with years as integer
metcountries_long <- metcountries_long[, -c(3:8)]  # remove unnecessary columns


metcountries_long$year <- as.numeric(metcountries_long$year)  # make numeric for plotting
metcountries_long$value <- as.numeric(metcountries_long$value)
metcountries_long$Country <- metcountries_long$Country.Name  # rename column

colvec <- c("#6161b1","#489b41", "#8fff48", "#1344d4", "#d49d13", "#d62d0a", "#17d6e4", "black") # choose hex colors for plotting the different countries

ggplot(metcountries_long, aes(x = year, y = value, colour = Country))+
  geom_line(size=1.2)+
  labs(x = "Year", y = "Methane emissions [kt of CO2-eq]") +
  theme_classic()

nitr_em <- read.csv("./nitr_emiss_ktCO2equiv.csv", sep = ",", dec = ".", header = TRUE) # contains nitrous oxide emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed
nitcountries <- nitr_em[nitr_em$Country.Code %in% countries,] # select only rows with countries of interest
nitcountries <- nitcountries[, -c(3:14)]  # remove unnecessary variable columns
nitcountries_long <- nitcountries %>%
    gather(year1, value, X1970:X2012) %>%  # change data structure with row for each year
    mutate(year = as.integer(substr(year1, 2,5)) ) # add column with years as integer
nitcountries_long <- nitcountries_long[, -c(3:8)]  # remove unnecessary columns


nitcountries_long$year <- as.numeric(nitcountries_long$year)  # make numeric for plotting
nitcountries_long$value <- as.numeric(nitcountries_long$value)
nitcountries_long$Country <- nitcountries_long$Country.Name  # rename column

colvec <- c("#6161b1","#489b41", "#8fff48", "#1344d4", "#d49d13", "#d62d0a", "#17d6e4", "black") # choose hex colors for plotting the different countries

ggplot(nitcountries_long, aes(x = year, y = value, colour = Country))+
  geom_line(size=1.2)+
  labs(x = "Year", y = "Nitrous oxide emissions [kt of CO2-eq]") +
  theme_classic()

The line graphs for Methane and Nitrous oxide emissions show a simlar trend as the CO2 emissions but the decrease for several countries is more pronounced. Especially UK, Germany and Ukraine reduced their CH4 emissions considerably since 1990, whereas France and Italy stagnate. Nitrous oxide emissions have a higher variability among the years but are declining in all selected countries.

Total greenhouse gas emissions in Europe

To summarize all greenhouse gas emissions in europe (including all anthropogenic CH4 sources, N2O sources and F-gases (HFCs, PFCs and SF6)) maps of European emissions between 1970 and 2013 are presented.

# get data
total_em <- read.csv("./totalGHG_ktCO2equiv.csv", sep = ",", dec = ".", header = TRUE) # contains total greenhouse gas emissions emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed

total_eur <- filter(total_em, Country.Code %in% countrycodes_eu)  # select only European countries (see above)
total_eur <- total_eur[, -c(3:14)]  # remove unnecessary columns
# join with spatial data and prepare for plotting
total_europe <- inner_join(europe, total_eur, by=c("iso_a3" = "Country.Code")) 
st_transform(total_europe, crs="+proj=laea +lon_0=18.984375")

# getlongitude and latitude for plotting with ggplot 
eutotal.centers <- st_centroid(total_europe)  # center points

eutotal.spdf <- methods::as(total_europe, 'Spatial')  # convert to spatial class object
eutotal.spdf@data$id <- row.names(eutotal.spdf@data) # create id column with numbers

eutotal.tidy <- broom::tidy(eutotal.spdf) # now it is just a regular dataframe

eutotal.tidy <- dplyr::left_join(eutotal.tidy, eutotal.spdf@data, by='id')

eutotal.tidy <- eutotal.tidy[!(eutotal.tidy$long < -50 | eutotal.tidy$lat > 73), ]  # remove islands belonging to Europe but situated far away in the world (for better map display)
# mapping with ggplot
g_total_1970 <- ggplot(eutotal.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X1970,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X1970, digits = 0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "YlOrRd", direction = 1, limits=c(0, 1300000))+  # palette = "Spectral"
  labs(title='Total greenhouse gas emissions 1970', subtitle='in Europe',
       caption='Source: World Bank', fill="[kt of CO2-eq]")



g_total_2012 <- ggplot(eutotal.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2012,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2012, digits = 0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "YlOrRd", direction = 1, limits=c(0, 1300000))+  # alternativ palette = #"YlOrRd", direction = 1
  labs(title='Total greenhouse gas emissions 2012', subtitle='in Europe',
       caption='Source: World Bank', fill="[kt of CO2-eq]")


ggiraph(code=print(g_total_1970))
ggiraph(code=print(g_total_2012))

The reduced amount of emissions represented by the lighter colours between 1970 and 2012 supports the trends shown above and is summarized in the following line graph. Spain and Italy, however, are displayed in darker colors in 2012 and thus increased their total greenhouse gas emissions compared to 1970.

totalcountries <- total_eur[total_eur$Country.Code %in% countries,] # select only rows with countries of interest

totalcountries_long <- totalcountries %>%
    gather(year1, value, X1970:X2012) %>%  # change data structure with row for each year
    mutate(year = as.integer(substr(year1, 2,5)) ) # add column with years as integer
totalcountries_long <- totalcountries_long[, -c(3:8)]  # remove unnecessary columns


totalcountries_long$year <- as.numeric(totalcountries_long$year)  # make numeric for plotting
totalcountries_long$value <- as.numeric(totalcountries_long$value)
totalcountries_long$Country <- totalcountries_long$Country.Name  # rename column

colvec <- c("#6161b1","#489b41", "#8fff48", "#1344d4", "#d49d13", "#d62d0a", "#17d6e4", "black") # choose hex colors for plotting the different countries

ggplot(totalcountries_long, aes(x = year, y = value, colour = Country))+
  geom_line(size=1.2)+
  labs(x = "Year", y = "Total greenhouse gas emissions \n[kt of CO2-eq]") +
  theme_classic()

Relation of CO2 emissions and electric power consumption

Another way of looking at the data are CO2 emissions in metric tons per capita.

# get data
co2percap_em <- read.csv("./Co2emiss_metrictonspercap.csv", sep = ",", dec = ".", header = TRUE) # contains total greenhouse gas emissions emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed

co2percap_eur <- filter(co2percap_em, Country.Code %in% countrycodes_eu)  # select only European countries (see above)
co2percap_eur <- co2percap_eur[, -c(3,4)]  # remove unnecessary columns
# join with spatial data and prepare for plotting
CO2cap_europe <- inner_join(europe, co2percap_eur, by=c("iso_a3" = "Country.Code")) 
st_transform(CO2cap_europe, crs="+proj=laea +lon_0=18.984375")

# getlongitude and latitude for plotting with ggplot 
CO2cap.centers <- st_centroid(CO2cap_europe)  # center points

CO2cap.spdf <- methods::as(CO2cap_europe, 'Spatial')  # convert to spatial class object
CO2cap.spdf@data$id <- row.names(CO2cap.spdf@data) # create id column with numbers

CO2cap.tidy <- broom::tidy(CO2cap.spdf) # now it is just a regular dataframe

CO2cap.tidy <- dplyr::left_join(CO2cap.tidy, CO2cap.spdf@data, by='id')

CO2cap.tidy <- CO2cap.tidy[!(CO2cap.tidy$long < -50 | CO2cap.tidy$lat > 73), ]  # remove islands belonging to Europe but situated far away in the world (for better map display)
# mapping with ggplot
g_CO2cap_1992 <- ggplot(CO2cap.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X1992,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X1992, digits = 2)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 16))+  # palette = "YlOrRd", direction = 1
  labs(title='CO2 emissions per capita 1992', subtitle='in Europe',
       caption='Source: World Bank', fill="[metric tons\nper capita]")



g_CO2cap_2014 <- ggplot(CO2cap.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2014,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2014, digits = 2)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 16))+  # palette = "Spectral"
  labs(title='CO2 emissions per capita 2014', subtitle='in Europe',
       caption='Source: World Bank', fill="[metric tons\nper capita]")


ggiraph(code=print(g_CO2cap_1992))
ggiraph(code=print(g_CO2cap_2014))

Here, the results look very different. Germany is still among the highest emitting countries but the maps show more levelled CO2 emissions in the European countries especially in 2014. Norway’s CO2 emissions per capita increased since 1992, whereas the central European countries and Ukraine decreased their emissions per capita. Estonia has lasting high emissions. Moreover, currently the southern European countries lie below the European average and the northern countries lie above it (see following map).

eu_mean <- mean(co2percap_eur$X2014)  # calculate mean CO2 emissions per capita in European countries in 2014
CO2cap.tidy$X2014[CO2cap.tidy$X2014 > eu_mean] <- "higher"
CO2cap.tidy$X2014[CO2cap.tidy$X2014 != "higher"] <- "lower"

g_avg <- ggplot(CO2cap.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2014,color= factor(X2014),
        tooltip=sprintf("%s<br/>%s",iso_a3,X2014))) +
  coord_fixed(xlim=c(-27,40),ylim=c(31,72)) +
 hrbrthemes::theme_ipsum() +
#   viridis::scale_fill_viridis(option="plasma", direction = -1)+
  labs(title='Relation of CO2 emissions per capita', subtitle='compared to European average in 2014',
       caption='Source: World Bank', fill = "")

g_avg

The CO2 emissions per capita can be compared with the electric power consumption per capita to investigate their relationship.

# get data
elpower_em <- read.csv("./elPowerConsKWhpercap.csv", sep = ",", dec = ".", header = TRUE) # contains total greenhouse gas emissions emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed

elpower_eur <- filter(elpower_em, Country.Code %in% countrycodes_eu)  # select only European countries (see above)
elpower_eur <- elpower_eur[, -c(3,4)]  # remove unnecessary columns
# join with spatial data and prepare for plotting
elpow_europe <- inner_join(europe, elpower_eur, by=c("iso_a3" = "Country.Code")) 
st_transform(elpow_europe, crs="+proj=laea +lon_0=18.984375")

# getlongitude and latitude for plotting with ggplot 
elpow.centers <- st_centroid(elpow_europe)  # center points

elpow.spdf <- methods::as(elpow_europe, 'Spatial')  # convert to spatial class object
elpow.spdf@data$id <- row.names(elpow.spdf@data) # create id column with numbers

elpow.tidy <- broom::tidy(elpow.spdf) # now it is just a regular dataframe

elpow.tidy <- dplyr::left_join(elpow.tidy, elpow.spdf@data, by='id')

elpow.tidy <- elpow.tidy[!(elpow.tidy$long < -50 | elpow.tidy$lat > 73), ]  # remove islands belonging to Europe but situated far away in the world (for better map display)
# mapping with ggplot
g_elpow_1992 <- ggplot(elpow.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X1992,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X1992, digits = 0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 55000))+  # palette = "YlOrRd", direction = 1
  labs(title='Electric power consumption per capita 1992', subtitle='in Europe',
       caption='Source: World Bank', fill="[KWh per\ncapita]")


g_elpow_2014 <- ggplot(elpow.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2014,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2014, digits = 0)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 55000))+  # palette = "YlOrRd", direction = 1
  labs(title='Electric power consumption per capita 2014', subtitle='in Europe',
       caption='Source: World Bank', fill="[KWh per\ncapita]")


ggiraph(code=print(g_elpow_1992))
ggiraph(code=print(g_elpow_2014))

Interestingly, there seems to be no obvious correlation between electric power consumption and CO2 emissions per capita because the scandinavian countries have the highest power consumption in 1992 but not the highest CO2 emissions. In 2012 Iceland has the highest electric power consumption but not the highest CO2 emissions. However, Acaravci & Ozturk (2010) found evidence of a long-run relationship between CO2 emissions per capita and energy consumption per capita for several European countries. The relationship between CO2 emissions and electricity consumption seems to be individually different for different countries depending on economies, policies and energy sources (Bella, Massidda & Mattana 2014).

Renewable energies as an antagonist against global warming

A good way towards reduced emissions are renewable energies. The renewable energy consumption as percent of the total final energy consumption is displayed in the following maps.

# get data
renEnergy_em <- read.csv("./renEnergycons.csv", sep = ",", dec = ".", header = TRUE) # contains total greenhouse gas emissions emissions in kt of CO2 equivalents for the countries in the world for the last decades, downloaded from World Bank website, first few descriptive lines were removed and the file renamed

renEnergy_eur <- filter(renEnergy_em, Country.Code %in% countrycodes_eu)  # select only European countries (see above)
renEnergy_eur <- renEnergy_eur[, -c(3:34)]  # remove unnecessary columns
# join with spatial data and prepare for plotting
renEnergy_europe <- inner_join(europe, renEnergy_eur, by=c("iso_a3" = "Country.Code")) 
st_transform(renEnergy_europe, crs="+proj=laea +lon_0=18.984375")

# getlongitude and latitude for plotting with ggplot 
renEnergy.centers <- st_centroid(renEnergy_europe)  # center points

renEnergy.spdf <- methods::as(renEnergy_europe, 'Spatial')  # convert to spatial class object
renEnergy.spdf@data$id <- row.names(renEnergy.spdf@data) # create id column with numbers

renEnergy.tidy <- broom::tidy(renEnergy.spdf) # now it is just a regular dataframe

renEnergy.tidy <- dplyr::left_join(renEnergy.tidy, renEnergy.spdf@data, by='id')

renEnergy.tidy <- renEnergy.tidy[!(renEnergy.tidy$long < -50 | renEnergy.tidy$lat > 73), ]  # remove islands belonging to Europe but situated far away in the world (for better map display)
# mapping with ggplot
g_renEnergy_1990 <- ggplot(renEnergy.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X1990,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X1990, digits = 1)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 80))+  # palette = "YlOrRd", direction = 1
  labs(title='Renewable energy consumption 1990', subtitle='in Europe',
       caption='Source: World Bank', fill="[% of total\nenergy\nconsumption]")



g_renEnergy_2015 <- ggplot(renEnergy.tidy) +
  geom_polygon_interactive(
    color='black',
    aes(long, lat, group=group, fill=X2015,
        tooltip=sprintf("%s<br/>%s",iso_a3, round(X2015, digits = 1)))) +
 hrbrthemes::theme_ipsum() +
  scale_fill_distiller(palette = "Spectral", limits=c(0, 80))+  # palette = "YlOrRd", direction = 1
  labs(title='Renewable energy consumption 2015', subtitle='in Europe',
       caption='Source: World Bank', fill="[% of total\nenergy\nconsumption]")


ggiraph(code=print(g_renEnergy_1990))
ggiraph(code=print(g_renEnergy_2015))

The percentage of renewable energy consumption has increased considerably since 1990 in all European countries.

From Our World in Data the global renewable energy consumption of modern sources (i.e hydropower, wind, solar and others like modern biofuels, geothermal, wave & tidal) and the share of electricity production from renewable sources are available.

# get data
RE_con <- read.csv("./modern-renewable-energy-consumption.csv", sep = ",", dec = ".", header = TRUE) # from Our World in Data, renewable energy consumption in terrawatt hours

names(RE_con) <- c("Entity", "Code", "Year", "Hydro", "Wind", "Solar", "Other")

RE_con_eur <- filter(RE_con, Code %in% countrycodes_eu)  # select only European countries (see above)

RE_con_2015_eur <- RE_con_eur %>% filter(Year == 2015) # select only 2015

RE_con_2015_eur <- RE_con_2015_eur[, -c(1,3)]  # remove unnecessary columns

bsp <- c("DEU", "NOR", "CHE", "GBR","UKR", "ESP")

RE_con_2015_some <- RE_con_2015_eur[RE_con_2015_eur$Code %in% bsp,] # select only rows with countries of interest

library(reshape2)
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
RE_con_2015_some_long <- melt(RE_con_2015_some, id.var="Code")  # convert to long format for plotting

ggplot(RE_con_2015_some_long, aes(x = Code, y = value, fill = variable)) + 
  geom_bar(stat = "identity")+
  scale_fill_manual(values=c("#60b8e9","#4b993c", "#d8c45a", "#885edf"))+
  labs(x = "Country Code", y = "Renewable energy consumption [terrawatt hours]", fill = "Source") +
  theme_classic()

# get data
RE_share <- read.csv("./share-of-electricity-production-from-renewable-sources.csv", sep = ",", dec = ".", header = TRUE) # from Our World in Data, share of electricity production from renewables in % of total

names(RE_share) <- c("Entity", "Code", "Year", "Renewable")

RE_share_eur <- filter(RE_share, Code %in% countrycodes_eu)  # select only European countries (see above)

RE_share_2014_eur <- RE_share_eur %>% filter(Year == 2014) # select only 2014

RE_share_2014_eur <- RE_share_2014_eur[, -c(1,3)]  # remove unnecessary columns

bsp <- c("DEU", "NOR", "CHE", "GBR","UKR", "ESP", "ISL")

RE_share_2014_some <- RE_share_2014_eur[RE_share_2014_eur$Code %in% bsp,] # select only rows with countries of interest

ggplot(data=RE_share_2014_some, aes(x=Code, y=Renewable)) +
  geom_bar(stat="identity", fill = "darkgrey")+
  labs(x = "Country Code", y = "Electricity production from renewables [% of total]") +
  theme_classic()

The absolute values show high renewable energy consumption from hydropower especially in Norway. The topography in this country is very suitable for hydropower generation. It has a long tradition in hydropower use und thus operates with an established and efficient hydropower sector (IHA 2017). Germany generates more energy from renewables than Norway but needs more energy in total so that the relative electricity production from renewables is only one fourth of the nearly 100 % in Norway. The share of electricity production from renewables makes clear that Iceland, Norway and alpine countries like Switzerland are leading the way in becoming independent from fossile energy.

Norway and Iceland can barely increase their share in electricity production from renewables because they reached already around 100 %. Switzerland, however, has a good share of renewable energy since 1990 but does not increase its efforts any more (see below). For example Germany and Spain increased their share of renewables since the 2000s.

# line plot for trend of renewable energy share
RE_share_trend_some <- RE_share_eur[RE_share_eur$Code %in% bsp,] # select only rows with countries of interest

colvec <- c("#6161b1","#489b41", "#8fff48", "#1344d4", "#d49d13", "#d62d0a", "#17d6e4") # choose hex colors for plotting the different countries

ggplot(RE_share_trend_some, aes(x = Year, y = Renewable, colour = Entity))+
  geom_line(size=1.2)+
  labs(x = "Year", y = "Electricity production from renewables [% of total]", colour = "Country") +
  theme_classic()

Conclusions

Although European greenhouse gas emissions partly declined during the last decades, climate change is still continuing. One has to bear in mind that a decrease from a very high level is still a high amount of climate changing greenhouse gas emissions. Also many European countries report only slightly or no decreasing CO2 emissions. These countries need to work on more effective solutions especially for CO2 emissions. Furthermore, the already caused damage may affect global change for several hundred years because many effects are irreversible for a long time (Salomon et al. 2009). Renewable energies are an important way of counteracting emissions and generate clean energy. As the renewable energy consumption increased in nearly all European countries, the policies for climate goals seem to show some effect in this respect. However, very few topographically favoured countries reached an appreciable share electricty production from renewables. Economically stable countries as Germany, France, UK and the Netherlands should improve their efforts in developing technologies and policies for generating more CO2 neutral energy.

References

Acaravcia A., Ozturk I. (2010): On the relationship between energy consumption, CO2 emissions and economic growth in Europe. Energy, 35(12), 5412-5420. DOI: https://doi.org/10.1016/j.energy.2010.07.009

Ayres M. P., Lombardero M. J. (2000): Assessing the consequences of global change for forest disturbance from herbivores and pathogens. Science of The Total Environment, 262(3), 263-286. DOI: https://doi.org/10.1016/S0048-9697(00)00528-3

Bella G., Massidda C., Mattana P. (2014): The relationship among CO2 emissions, electricity power consumption and GDP in OECD countries. Journal of Policy Modeling, 36(6), 970-985. DOI: https://doi.org/10.1016/j.jpolmod.2014.08.006

Crowley T. J. (2000): Causes of Climate Change Over the Past 1000 Years. Science, 289(5477), 270-277. DOI: 10.1126/science.289.5477.270

Hughes L. (2000): Biological consequences of global warming: is the signal already apparent? Trends in Ecology & Evolution, 15(2), 56-61. DOI: https://doi.org/10.1016/S0169-5347(99)01764-4

IHA, International Hydropower Association (2017): Norway. URL: https://www.hydropower.org/country-profiles/norway

Jacobson M. Z. (2009): Review of solutions to global warming, air pollution, and energy security. Energy Environmental Science, 2, 148-173. DOI: 10.1039/B809990C

McMichael A.J., Woodruff R.E., Hales S. (2006): Climate change and human health: present and future risks. The Lancet, 367(9513), 859-869. DOI: https://doi.org/10.1016/S0140-6736(06)68079-3

Rocha M., Krapp M., Guetschow J., Jeffery L., Hare B., Schaeffer M. (2015): Historical Responsibility for Climate Change - from countries emissions to contribution to temperature increase. Report Climate Analytics. URL: https://climateanalytics.org/media/historical_responsibility_report_nov_2015.pdf

Roser M. (2018): Our World in Data. Web publication. URL: https://ourworldindata.org/

Salomon S., Plattner G.-K., Knutti R., Friedlingstein P. (2009): Irreversible climate change due to carbon dioxide emissions. Proceedings of the National Academy of Sciences of the United States of America. 106(6), 1704-1709. DOI: https://doi.org/10.1073/pnas.0812721106

The World Bank Group (2018): Indicators. URL: https://data.worldbank.org/indicator

United Nations (2016): Economic and Social Council. Report of the Inter-Agency and Expert Group on Sustainable Development Goal Indicators. E/CN.3/2016/2/Rev.1. URL: https://unstats.un.org/unsd/statcom/47th-session/documents/2016-2-iaeg-sdgs-rev1-e.pdf

United Nations (2018): About the Sustainable Development Goals. URL: https://www.un.org/sustainabledevelopment/sustainable-development-goals/