Dans ce blog, nous ferons des analyses sur les particules fines (PM2,5), qui sont des polluants qui existe dans l’air ambiant et qui sont très néfastes pour la santé humaine. Ces données présentes ont été publié par l’Environmental Protection Agency (EPA), qui publie sa base de donnée sur les émissions de (PM2,5) tous, les 3 ans et connu sous le nom d’Inventaire national des émissions (NEI).
Pour plus d’infos sur le NEI voir NEI.
Les données que nous utiliserons pour effectuer nos analyses sont celles de 1999, 2002, 2005, 2008. et peuvent être télécharger. ici: donnée.
Le contenu du fichier zip:
1) summarySCC_PM25.rds: Base de donnée avec les données sur les émissions de PM2,5 pour les années 1999, 2002, 2005 et 2008. Le tableau contient un nombre de tonnes de PM2,5 émis par un type de source spécifique pendant toute l’année.
Variables: - fips: Comté américain. - Pollutant: Le polluant. - SCC : Le nom de la source. - Emissions: Quantité de PM2,5 émise. - Année : Année des émissions enregistrées. - Type : Le type de source.
2) Source_Classification_Code.rds: Mappage des chaînes de chiffres SCC dans la table des émissions au nom réel de la source PM2,5.
# Tidyverse
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.6.3
## -- Attaching packages ----------------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.2 v purrr 0.3.4
## v tibble 3.0.3 v dplyr 1.0.0
## v tidyr 1.1.0 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## Warning: package 'ggplot2' was built under R version 3.6.3
## Warning: package 'tibble' was built under R version 3.6.3
## Warning: package 'tidyr' was built under R version 3.6.3
## Warning: package 'purrr' was built under R version 3.6.3
## Warning: package 'dplyr' was built under R version 3.6.3
## Warning: package 'forcats' was built under R version 3.6.3
## -- Conflicts -------------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
# gridExtra
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
# Plotly
library(plotly)
## Warning: package 'plotly' was built under R version 3.6.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
# Lecture du fichier contenant les données sur les émissions de PM2.5
fichier_NEI <- file.choose("summarySCC_PM25.rds")
NEI_data <- readRDS(file = fichier_NEI)
# Lecture du fichier contenant les données sur les émissions de PM2.5
fichier_SCC <- file.choose("Source_Classification_Code.rds")
SCC_data <- readRDS(file = fichier_SCC)
glimpse(NEI_data)
## Rows: 6,497,651
## Columns: 6
## $ fips <chr> "09001", "09001", "09001", "09001", "09001", "09001", "09...
## $ SCC <chr> "10100401", "10100404", "10100501", "10200401", "10200504...
## $ Pollutant <chr> "PM25-PRI", "PM25-PRI", "PM25-PRI", "PM25-PRI", "PM25-PRI...
## $ Emissions <dbl> 15.714, 234.178, 0.128, 2.036, 0.388, 1.490, 0.200, 0.081...
## $ type <chr> "POINT", "POINT", "POINT", "POINT", "POINT", "POINT", "PO...
## $ year <int> 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 199...
cat("Notre data NEI a",nrow(NEI_data),"lignes et",ncol(NEI_data),"colonnes")
## Notre data NEI a 6497651 lignes et 6 colonnes
# Conversion
NEI_data$year <- as.character.Date(NEI_data$year)
# Aperçu des changements
glimpse(NEI_data)
## Rows: 6,497,651
## Columns: 6
## $ fips <chr> "09001", "09001", "09001", "09001", "09001", "09001", "09...
## $ SCC <chr> "10100401", "10100404", "10100501", "10200401", "10200504...
## $ Pollutant <chr> "PM25-PRI", "PM25-PRI", "PM25-PRI", "PM25-PRI", "PM25-PRI...
## $ Emissions <dbl> 15.714, 234.178, 0.128, 2.036, 0.388, 1.490, 0.200, 0.081...
## $ type <chr> "POINT", "POINT", "POINT", "POINT", "POINT", "POINT", "PO...
## $ year <chr> "1999", "1999", "1999", "1999", "1999", "1999", "1999", "...
unique(NEI_data$year)
## [1] "1999" "2002" "2005" "2008"
unique(NEI_data$type)
## [1] "POINT" "NONPOINT" "ON-ROAD" "NON-ROAD"
glimpse(SCC_data)
## Rows: 11,717
## Columns: 15
## $ SCC <fct> 10100101, 10100102, 10100201, 10100202, 1010020...
## $ Data.Category <fct> Point, Point, Point, Point, Point, Point, Point...
## $ Short.Name <fct> "Ext Comb /Electric Gen /Anthracite Coal /Pulve...
## $ EI.Sector <fct> Fuel Comb - Electric Generation - Coal, Fuel Co...
## $ Option.Group <fct> , , , , , , , , , , , , , , , , , , , , , , , , ,
## $ Option.Set <fct> , , , , , , , , , , , , , , , , , , , , , , , , ,
## $ SCC.Level.One <fct> External Combustion Boilers, External Combustio...
## $ SCC.Level.Two <fct> Electric Generation, Electric Generation, Elect...
## $ SCC.Level.Three <fct> Anthracite Coal, Anthracite Coal, Bituminous/Su...
## $ SCC.Level.Four <fct> "Pulverized Coal", "Traveling Grate (Overfeed) ...
## $ Map.To <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ Last.Inventory.Year <int> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,...
## $ Created_Date <fct> , , , , , , , , , , , , , , , , , , , 6/6/2003 ...
## $ Revised_Date <fct> , , , , , , , , , , , , , , , , , , , , , , , , ,
## $ Usage.Notes <fct> , , , , , , , , , , , , , , , , , , , , , , , , ,
cat("Notre data NEI a",nrow(SCC_data),"lignes et",ncol(SCC_data),"colonnes")
## Notre data NEI a 11717 lignes et 15 colonnes
unique(SCC_data$Data.Category)
## [1] Point Nonpoint Onroad Nonroad Biogenic Event
## Levels: Biogenic Event Nonpoint Nonroad Onroad Point
On peut voir que on les mêmes données que celle des types de NEI_data.
# Requête 1
req_1 <- NEI_data %>% group_by(year) %>% summarise(total_emission = round(sum(Emissions),0))
## `summarise()` ungrouping output (override with `.groups` argument)
req_1
## # A tibble: 4 x 2
## year total_emission
## <chr> <dbl>
## 1 1999 7332967
## 2 2002 5635780
## 3 2005 5454703
## 4 2008 3464206
# Graphe
emissions_par_an <- req_1 %>% ggplot(aes(year, total_emission, fill = total_emission)) +
geom_bar(stat = "identity", color = "white") +
geom_text(aes(label = total_emission, hjust = 0.5,vjust = -0.5), size = 3,color = 'black') +
xlab("Année") +
ylab("Total Émission") +
labs("Émission") +
scale_fill_gradient(low = "yellow", high = "red") +
ggtitle("Émission de particules fines PM2,5 par année au USA") +
theme(plot.title = element_text(color = "blue", hjust = 0.5, face = "bold", size = 12),
axis.title.x = element_text(color = "red", face = "bold"),
axis.title.y = element_text(color = "red", face = "bold"),
axis.line = element_line(colour = "darkblue", size = 3, linetype = "solid"),
axis.text = element_text(color = "blue"),
legend.background = element_rect(fill = "lightblue",
size=0.5, linetype="solid", colour = "white"))
emissions_par_an %>% ggplotly()
Conclusion : D’après nos précédents résultats, on peut bien se rendre compte que les émissions de particules fines PM2,5 ont bel et bien diminué de 1999 à 2008!
# Requête 2
req_2 <- NEI_data %>% filter(fips == "24510") %>% group_by(year) %>% summarise(total_emission = round(sum(Emissions),1))
## `summarise()` ungrouping output (override with `.groups` argument)
req_2
## # A tibble: 4 x 2
## year total_emission
## <chr> <dbl>
## 1 1999 3274.
## 2 2002 2454.
## 3 2005 3091.
## 4 2008 1862.
# Graphe
pm_par_an_balt <- req_2 %>% ggplot(aes(year, total_emission, fill = total_emission)) +
geom_bar(stat = "identity", color = "white") +
geom_text(aes(label = total_emission), size = 3, color = 'blue') +
xlab("Année") +
ylab("Total Émission") +
scale_fill_gradient(low = "#00AFBB", high = "red") +
ggtitle("Émission de particules fines PM2,5 par année à Baltimore au Maryland") +
theme(plot.title = element_text(color = "#FC4E07", hjust = 0.5, face = "bold", size = 10),
axis.title.x = element_text(color = "red", face = "bold"),
axis.title.y = element_text(color = "red", face = "bold"),
axis.line = element_line(colour = "#FC4E07", size = 3, linetype = "solid"),
axis.text = element_text(color = "blue"),
legend.background = element_rect(fill = "lightblue",
size = 0.5, linetype = "solid", colour = "white"))
pm_par_an_balt %>% ggplotly()
Conclusion : D’après nos précédents résultats, on peut bien se rendre compte que les émissions de particules fines PM2,5 n’ont pas diminué de 1999 à 2008, il y’a des fluctuations de dimunition parfois et d’augmentation.
# Requête 3
req_3 <- NEI_data %>% filter(fips == "24510") %>% group_by(year,type) %>% summarise(total_emission = round(sum(Emissions),1))
## `summarise()` regrouping output by 'year' (override with `.groups` argument)
req_3
## # A tibble: 16 x 3
## # Groups: year [4]
## year type total_emission
## <chr> <chr> <dbl>
## 1 1999 NON-ROAD 523.
## 2 1999 NONPOINT 2108.
## 3 1999 ON-ROAD 347.
## 4 1999 POINT 297.
## 5 2002 NON-ROAD 241.
## 6 2002 NONPOINT 1510.
## 7 2002 ON-ROAD 134.
## 8 2002 POINT 569.
## 9 2005 NON-ROAD 249.
## 10 2005 NONPOINT 1510.
## 11 2005 ON-ROAD 130.
## 12 2005 POINT 1202.
## 13 2008 NON-ROAD 55.8
## 14 2008 NONPOINT 1373.
## 15 2008 ON-ROAD 88.3
## 16 2008 POINT 345
# Graphe
pm_par_an_route_balt <- req_3 %>% ggplot(aes(year, total_emission, group = type, color = type)) +
geom_point() +
geom_line(linetype = "solid", alpha = 1) +
geom_text(aes(label = total_emission), size = 3, color = 'red', face = "bold") +
xlab("Année") +
ylab("Total Émission") +
scale_fill_gradient(low = "darkblue", high = "blue") +
ggtitle("Émission de particules fines PM2,5 par source à Baltimore") +
theme(plot.title = element_text(color = "blue", hjust = 0.5, face = "bold", size = 10),
axis.title.x = element_text(color = "red", face = "bold"),
axis.title.y = element_text(color = "red", face = "bold"),
axis.line = element_line(colour = "darkblue", size = 3, linetype = "solid"),
axis.text = element_text(color = "blue"),
legend.background = element_rect(fill = "lightblue",
size = 0.5, linetype = "solid", colour = "white"))
## Warning: Ignoring unknown parameters: face
pm_par_an_route_balt %>% ggplotly()
## Warning: `group_by_()` is deprecated as of dplyr 0.7.0.
## Please use `group_by()` instead.
## See vignette('programming') for more help
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_warnings()` to see where this warning was generated.
Conclusion : D’après nos précédents résultats, on peut bien voir que les routes ayant subit des diminutions des émissions de 1999 à 2008 sont: NonPoint, On-Road, Non-Road.
# Lignes liée à la combustion du charbon
# >str <- c("Regular", "expression", "examples of R language")
# >x <- grepl("x*ress",str)
charbon <- grepl("coal", SCC_data$Short.Name, ignore.case = TRUE) | grepl("coal", SCC_data$EI.Sector,ignore.case = TRUE)
# Sélection des lignes liée à la combustion du charbon dans un nouveau dataframe
charbon <- SCC_data[charbon, ]
charbon <- NEI_data[NEI_data$SCC %in% charbon$SCC,]
# Requête 4
req_4 <- charbon %>% group_by(year) %>% summarise(total_emission = round(sum(Emissions),1))
## `summarise()` ungrouping output (override with `.groups` argument)
req_4
## # A tibble: 4 x 2
## year total_emission
## <chr> <dbl>
## 1 1999 604691.
## 2 2002 567130.
## 3 2005 571768.
## 4 2008 358219.
# Graphe
pm_charbon_USA <- req_4 %>% ggplot(aes(year, total_emission, fill = total_emission)) +
geom_bar(stat = "identity", color = "white") +
geom_text(aes(label = total_emission), size = 3, color = 'black') +
xlab("Année") +
ylab("Total Émission") +
scale_fill_gradient(low = "#660000", high = "brown") +
ggtitle("Émission de particules fines provenant des sources liées au charbons au USA") +
theme(plot.title = element_text(color = "brown", hjust = 0.5, face = "bold", size = 10),
axis.title.x = element_text(color = "red", face = "bold"),
axis.title.y = element_text(color = "red", face = "bold"),
axis.line = element_line(colour = "black", size = 3, linetype = "solid"),
axis.text = element_text(color = "red"),
legend.background = element_rect(fill = "lightblue",
size = 0.5, linetype = "solid", colour = "white"))
pm_charbon_USA %>% ggplotly()
req_6 <- NEI_data %>% filter((fips == "24510" | fips == "06037") & type == "ON-ROAD") %>% group_by(year,fips) %>% summarise(total_emission = round(sum(Emissions),0)) %>% mutate(fips = replace(fips, fips == "24510","Baltimore") , fips = replace(fips, fips == "06037","Californie") )
## `summarise()` regrouping output by 'year' (override with `.groups` argument)
req_6
## # A tibble: 8 x 3
## # Groups: year [4]
## year fips total_emission
## <chr> <chr> <dbl>
## 1 1999 Californie 3931
## 2 1999 Baltimore 347
## 3 2002 Californie 4274
## 4 2002 Baltimore 134
## 5 2005 Californie 4601
## 6 2005 Baltimore 130
## 7 2008 Californie 4101
## 8 2008 Baltimore 88
# Graphe
pm_baltimore_vs_Cal <- req_6 %>% ggplot(aes(year, total_emission)) +
facet_grid(~fips) +
geom_bar(stat = "identity",aes(fill = year)) +
geom_text(aes(label = total_emission), size = 3, color = 'black') +
xlab("Année") +
ylab("Total Émission") +
ggtitle("Émission des particules des véhicules à moteur Baltimore vs Californie") +
theme(plot.title = element_text(color = "orange", hjust = 0.5, face = "bold", size = 10),
axis.title.x = element_text(color = "red", face = "bold"),
axis.title.y = element_text(color = "red", face = "bold"),
axis.line = element_line(colour = "black", size = 2, linetype = "solid"),
axis.text = element_text(color = "orange"),
legend.background = element_rect(fill = "lightblue",
size = 0.5, linetype = "solid", colour = "white"))
pm_baltimore_vs_Cal %>% ggplotly()
Conclusion : D’après nos précédents résultats, on constater que les Émissions de particules PM2,5 des véhicules à moteur dans la ville de Baltimore ont diminué de manière abyssal de 1999 à 2008, ce qui est complètement différent en Californie où on peut voir une augmentation d’émission de particules 1999 à 2005 puis une dimunition de 2005 à 2008. On peut en déduire qu’il est préférable de vivre à Baltimore que en Californie si on veut pas être exposé aux particules fines.
Comment les émissions des véhicules à moteur ont-elles changé de 1999 à 2008 dans la ville de Baltimore?
Conclusion : D’après nos précédents résultats, on constater que les Émissions de particules PM2,5 des véhicules à moteur dans la ville de Baltimore ont diminué de manière abyssal de 1999 à 2008.