The goal of Net Zero by 2050 is critical for countries to achieve to limit the global temperature rise to 1.5 degrees Celsius according to the Paris Agreement. Although the number of countries pledging to achieve net zero emissions has been growing, our current efforts still fall short of what is necessary to meet the Net Zero by 2050 goal, indicating that our transition to a fully renewable energy system needs to accelerate.
With the oversupply of Solar PVs and growing electricity demand with the global transition to green economy in the future, we would like to explore the supply and demand of Solar PVs from today to 2050. The demand of Solar PVs will be projected under three different scenarios, including Stated Policy scenario, Net Zero Emissions by 2050 scenario and 100% Solar PVs scenario, using the data on the estimated amount of electricity generation by the Net Zero Emissions by 2050 scenario provided by the IEA.
Current Stated Policy Scenario
The Stated Policies Scenario (STEPS) is designed to provide a sense of the prevailing direction of energy system progression, based on a detailed review of the current policy landscape. It provides a more granular, sector-by-sector evaluation of the policies that have been put in place to reach stated goals and other energy-related objectives, taking account not only of existing policies and measures but also those that are under development. The STEPS provides a more conservative benchmark for the future.
Net Zero Emissions by 2050 Scenario
The Net Zero Emissions by 2050 Scenario (NZE Scenario) is a normative scenario that shows a pathway for the global energy sector to achieve net zero CO2 emissions by 2050, with advanced economies reaching net zero emissions in advance of others. This scenario also meets key energy-related Sustainable Development Goals (SDGs), in particular universal energy access by 2030 and major improvements in air quality. It is consistent with limiting the global temperature rise to 1.5 °C
---title: "Final project draft"format: htmleditor: visualcode-fold: falsecode-tools: true---## Solar PVs Supply VS DemandThe goal of Net Zero by 2050 is critical for countries to achieve to limit the global temperature rise to 1.5 degrees Celsius according to the Paris Agreement. Although the number of countries pledging to achieve net zero emissions has been growing, our current efforts still fall short of what is necessary to meet the Net Zero by 2050 goal, indicating that our transition to a fully renewable energy system needs to accelerate.With the oversupply of Solar PVs and growing electricity demand with the global transition to green economy in the future, we would like to explore the supply and demand of Solar PVs from today to 2050. The demand of Solar PVs will be projected under three different scenarios, including Stated Policy scenario, Net Zero Emissions by 2050 scenario and 100% Solar PVs scenario, using the data on the estimated amount of electricity generation by the Net Zero Emissions by 2050 scenario provided by the IEA.## Current Stated Policy ScenarioThe Stated Policies Scenario (STEPS) is designed to provide a sense of the prevailing direction of energy system progression, based on a detailed review of the current policy landscape. It provides a more granular, sector-by-sector evaluation of the policies that have been put in place to reach stated goals and other energy-related objectives, taking account not only of existing policies and measures but also those that are under development. The STEPS provides a more conservative benchmark for the future.## Net Zero Emissions by 2050 ScenarioThe Net Zero Emissions by 2050 Scenario (NZE Scenario) is a normative scenario that shows a pathway for the global energy sector to achieve net zero CO~2~ emissions by 2050, with advanced economies reaching net zero emissions in advance of others. This scenario also meets key energy-related Sustainable Development Goals (SDGs), in particular universal energy access by 2030 and major improvements in air quality. It is consistent with limiting the global temperature rise to 1.5 °C```{r}#| echo: false#| message: false#| warning: false# A standalone HTML version of launchApp()# devtools::install_github("rstudio/leaflet@56eb3ecbb25ddc195c1cc6f530246dbb565f99ee")library(leaflet)# devtools::install_github("ropensci/plotly@dce5a288b2b7daddf3884b4f57dbfa4e02b9fab8")# options(repos = c(CRAN = "https://cran.rstudio.com/"))library(readxl)library(dplyr)library(leaflet)library(rnaturalearth)library(rnaturalearthdata)library(ggplot2)library(here)library(patchwork)library(scales)library(tidyverse)library(pkgdown)library(tidyr)library(readxl)library(plotly)``````{r}#| echo: falsepath_to_sheet <-here("data_raw", "CO2 data.xlsx")Egen_data <-partial(.f = read_excel,path = path_to_sheet,sheet ="Elec_gen",col_names =FALSE)sheet_header <-suppressMessages(Egen_data(range ="A1:B1"))Egen_data <-suppressMessages(Egen_data(range ="A2:B79"))Egen_data <- Egen_data |>rename(country_name =`...1`, value =`...2`)Egen_data <- Egen_data |>mutate(country_name =ifelse(country_name =="United States", "United States of America", country_name))|>mutate(country_name =ifelse(country_name =="Democratic Republic of Congo", "Dem. Rep. Congo", country_name))|>mutate(country_name =ifelse(country_name =="South Sudan", "S. Sudan", country_name))|>mutate(country_name =ifelse(country_name =="Central African Republic", "Central African Rep.", country_name))|>mutate(country_name =ifelse(country_name =="Cote d'Ivoire", "Côte d'Ivoire", country_name))world_map <-ne_countries(scale ="medium", returnclass ="sf")world_egen_map <-left_join(world_map, Egen_data, by =c("name"="country_name"))leaflet_map <-leaflet(data = world_egen_map) %>%addTiles() %>%addPolygons(fillColor =~colorQuantile(palette ="YlGnBu", domain =na.omit(world_egen_map$value), n =5)(value),weight =1,opacity =1,color ="white",dashArray ="3",fillOpacity =0.7,highlight =highlightOptions(weight =2,color ="#666",dashArray ="",fillOpacity =0.7,bringToFront =TRUE ),label =~paste("Country:", name, "& Electricity generation by Solar Power:", value),labelOptions =labelOptions(style =list("font-weight"="normal", padding ="3px 8px"),textsize ="15px",direction ="auto" ) ) %>%addLegend(position ="bottomright",pal =colorQuantile(palette ="YlGnBu", domain =na.omit(world_egen_map$value), n =5),values =~value,title ="Electricity generation by Solar Power(GWh)",labFormat =labelFormat(prefix =""),opacity =0.7 )%>%setView(lng =100, lat =0, zoom =1.5)leaflet_maphtmlwidgets::saveWidget(leaflet_map, file="leaflet_map.html")``````{r, echo=FALSE}path_to_sheet <- here("data_raw", "CO2 data.xlsx")CO2_data <- partial( .f = read_excel, path = path_to_sheet, sheet = "CO2", col_names = FALSE)CO2_data <- suppressMessages( CO2_data(range = "B2:C274"))CO2_data <- CO2_data |> rename(year = `...1`, CO2_emissions = `...2`)CO2_data$scenario <- "Historical"path_to_sheet <- here("data_raw", "WEO2023_Free_Dataset.xlsx")CO2proj_data <- partial( .f = read_excel, path = path_to_sheet, sheet = "World CO2 Emissions", col_names = FALSE)CO2_STEPS_data <- suppressMessages(CO2proj_data(range = "N7:Q8"))CO2_NZE_data <- suppressMessages(CO2proj_data(range = "AF7:AI8"))CO2_NZE_data <- t(CO2_NZE_data)|> as.data.frame()CO2_STEPS_data <- t(CO2_STEPS_data)|> as.data.frame()colnames(CO2_STEPS_data) <- c('year', 'CO2_emissions')colnames(CO2_NZE_data) <- c('year', 'CO2_emissions')combined_CO2_STEPS<- bind_rows(CO2_data, CO2_STEPS_data)|> filter(year > 1900)combined_CO2_STEPS$scenario <- "STEPS"combined_CO2_NZE<- bind_rows(CO2_data, CO2_NZE_data)|> filter(year > 1900)combined_CO2_NZE$scenario <-"NZE 2050"combined_CO2<- bind_rows(combined_CO2_NZE, combined_CO2_STEPS)p1 <- ggplot(combined_CO2, aes(x = year, y = CO2_emissions, color = scenario)) + geom_line()+ scale_color_manual(values = c("NZE 2050" = "#008000", "STEPS" = "blue")) + labs(title = "Global CO2 Emissions from 1900 to 2050", subtitle = "An assessment on future projections under STEPS vs NZE 2050 scenario", x = "Year", y = "CO2 Emissions (in tonnes)", color = "Scenario") + theme_minimal(base_size = 14) + theme(plot.title = element_text(face = "bold", size = 18), plot.subtitle = element_text(face = "italic", size = 14), plot.caption = element_text(size = 8), axis.title = element_text(size = 14), axis.text = element_text(size = 12), legend.position = "bottom") + scale_x_continuous(breaks = seq(1900, 2050, by = 10)) + scale_y_continuous(labels = scales::comma) interactive_plot <- ggplotly(p1)|> layout( title = list( text = 'Global CO2 Emissions from 1900 to 2050<br><sub>An assessment of historical data and NZE by 2050 scenario projections</sub>', x = 0.5, xanchor = 'center', yanchor = 'top' ) )interactive_plot``````{r}path_to_sheet <-here("data_raw", "WEO2023_Free_Dataset.xlsx")CO2proj_data <-partial(.f = read_excel,path = path_to_sheet,sheet ="World CO2 Emissions",col_names =FALSE)```