Anima Mundi

Qualité de l'air dans le Métro Parisien - Part 1

Hello !

Ceci est le début d'une série d'articles autour d'un sujet qui plus que jamais intéresse tout(e) citadin(e), celui de la qualité de l'air que nous respirons. Je vais plus particulièrement m'intéresser à l'air dans les transports parisiens. En effet, il est réputé assez pollué du fait de la circulation des rames & de la fréquentation.

Nous utiliserons des données publiques issues de capteurs de pollution du réseau SQUALES (Surveillance de la Qualité de l'Air de L'Environnement Souterrain). Elles sont disponibles en temps réel ici.

N'ayant pas trouvé d'analyse approfondie sur le sujet, j'ai décidé de me lancer dessus :)

Nous allons utiliser les données récoltées dans la station de métro/RER Auber (Opéra).

Cette première partie sera purement exploratoire, et permettra de visualiser les mesures en les confrontant aux valeurs limites permettant de protéger sa santé.

I. D'abord, les données

1. Import

Commençons par récupérer les données, à disposition sur le portail OpenData de la RATP (merci à eux !) Nous les transformons ensuite en une série chronologique multivariée. Cela veut dire que les données de capteurs sont représentées en fonction du temps, ce qui permet d'en suivre l'évolution.

Plus d'informations sur le site de l'organisme Airparif, un organisme français agréé par le ministère de l'Environnement pour la surveillance de la qualité de l'air en Île-de-France.

library(readr)
df <- read_delim("qualite-de-lair-mesuree-dans-la-station-auber.csv", 
     ";", escape_double = FALSE, col_types = cols(`DATE/HEURE` = col_character(), NO = col_integer()), trim_ws = TRUE) %>%
  as.data.frame()

2 Quels indicateurs de pollution ?

Nous avons donc les données suivantes :

library(kableExtra)
kable(readr::read_delim("pollution.csv", 
    ";", escape_double = FALSE, locale = locale(encoding = "LATIN1"), 
    trim_ws = TRUE), align ='c') %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  column_spec(c(1,4), bold = T) %>%
  column_spec(4,color = 'red')

PM vient de l'anglais "Particulate Matter" et désigne les matières solides en suspension dans l'air. C'est un mélange complexe de substances chimiques organiques et inorganiques, communément appelé "particules". Elles sont classées selon leur taille en µm (1 micromètre = un millième de millimètre). Les particules les moins fines (+ de 10µm) sont retenues par le nez et la bouche. Les PM10 sont dites respirables et peuvent pénétrer dans les bronches. Les PM2.5 pénètrent plus profondément, jusqu'aux alvéoles pulmonaires.

Ces polluants sont principalement issus de l'activité humaine. Ils sont produits dans les souterrains ou à l'extérieur, à Paris-même ou transportés sur de longues distances.

Les principales causes de pollution de l'air sont :

La notice explicative officielle des données est par ici

II. Exploration

Nous avons donc r nrow(df) observations, dont voici un extrait :

kable(tail(df),align = 'c') %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) 
library(dygraphs)

Dans ce qui suit, quelques éléments vous permettent de mieux comprendre les données :

1. Monoxyde d'azote (NO)

var <- "NO"

dygraphs::dygraph(ts_all[,var], 
                  main = "Concentration de NO",
                  ylab = "µg/m3") %>%
  dyRangeSelector() %>%
  dyLimit(40, color = 'red',label = 'Valeur limite') %>% 
  dyRoller(rollPeriod = 250)

r round(nrow(filter(df, NO >= 40))/nrow(df)*100,1)% des mesures sont au-dessus de la valeur limite.

Les mesures prises dans la station sont proches de celles relevées en extérieur, dans l'air parisien. Cette pollution n'est pas produite par la circulation des trains. En effet, les bouches d’aération des stations se trouvent souvent à proximité immédiate d’axes de circulation importants.

2. Dioxyde d'azote (NO2)

var <- "NO2"

dygraphs::dygraph(ts_all[,var], 
                  main = "Concentration de NO2",
                  ylab = "µg/m3") %>%
  dyRangeSelector() %>%
  dyLimit(40, color = 'red',label = 'Valeur limite')  %>% 
  dyRoller(rollPeriod = 50)

r round(nrow(filter(df, NO2 >= 40))/nrow(df)*100,1)% des mesures sont au-dessus de la valeur limite.

Même chose que précédemment, les pics coïncident avec les périodes de grand froid hivernal durant lesquelles beaucoup de chaudières thermiques tournent à pleine puissance.

3. PM10

var <- "PM10"

dygraphs::dygraph(ts_all[,var], 
                  main = "Concentration de PM10",
                  ylab = "µg/m3") %>%
  dyRangeSelector() %>%
  dyLimit(40, color = 'red',label = 'Valeur limite') %>% 
  dyRoller(rollPeriod = 50)

r round(nrow(filter(df, PM10 >= 40))/nrow(df)*100,1)% des mesures sont au-dessus de la valeur limite.

Aïe, nous avons comme un sujet sur les particules en suspension.

Causées par l'activité ferroviaire (le freinage, principalement), elles sont significativement supérieures à ce qui s'observe en extérieur. Le passage des rames a de plus tendance à remettre en suspension les particules déposées. Les systèmes de ventilation opèrent ensuite un transfert de ces particules vers l'extérieur.

4. PM2.5

var <- "PM2.5"

dygraphs::dygraph(ts_all[,var], 
                  main = "Concentration de PM2.5",
                  ylab = "µg/m3") %>%
  dyRangeSelector() %>%
  dyLimit(25, color = 'red',label = 'Valeur limite') %>% 
  dyRoller(rollPeriod = 100)

r round(nrow(filter(df, PM2.5 >= 25))/nrow(df)*100,1)% des mesures sont au-dessus de la valeur limite.

Même chose, les PM2.5 sont au-delà des limites la majorité du temps. Ceci est embêtant, dans le sens où ces particules très fines pénètrent le système respiratoire en profondeur.

5. Dioxyde de carbone CO2

var <- "CO2"

dygraphs::dygraph(ts_all[,var], 
                  main = "Concentration de CO2",
                  ylab = "ppm") %>%
  dyRangeSelector() %>%
  dyLimit(1000, color = 'red',label = 'Valeur limite') %>% 
  dyRoller(rollPeriod = 50)

r round(nrow(filter(df, NO >= 1000))/nrow(df)*100,1)% des mesures sont au-dessus de la valeur limite.

Rien à signaler de ce côté !

6. Température

var <- "TEMP"

dygraphs::dygraph(ts_all[,var], 
                  main = "Température",
                  ylab = "°C") %>%
  dyRangeSelector() %>%
  dyLimit(mean(ts_all$TEMP),color = 'blue',label = 'Moyenne') %>% 
  dyRoller(rollPeriod = 20)

Allo ? Jean-Pierre Pernaut ?

7. Humidité

library(dygraphs)

var <- "HUMI"

dygraphs::dygraph(ts_all[,var], 
                  main = "Humidité Relative",
                  ylab = "%") %>%
  dyRangeSelector() %>%
  dyLimit(mean(ts_all[,var]),color = 'blue',label = 'Moyenne') %>% 
  dyRoller(rollPeriod = 50)

III. Corrélations

Même si cette approche est très discutable du point de vue méthode (Promis, on fera mieux dans la Partie II), regardons s'il existe des corrélations linéaires évidentes entre nos données :

corrplot::corrplot.mixed(cor(ts_all), upper = "ellipse")

Rien à signaler de ce côté, mis à part la corrélation entre PM10 et PM2.5 qui s'explique assez facilement. En effet, les PM10 (particules de taille < 10µm) englobent les PM2.5 d'une part, et les sources des deux sont identiques d'autre part. Le CO2 présente également un lien très léger avec les PM2.5 et 10, ce qui s'explique par le fait que ces trois polluants soient dus au trafic routier.

Packages utilisés :

Conclusions

L'air dans les souterrains du métro est en effet pollué et cette pollution a des raisons qui parfois vont au-delà de l'enceinte du réseau :

"Pour Airparif, “dans les enceintes du métro ou du RER, la qualité de l'air est mitigée. Certains polluants comme le dioxyde d'azote sont en plus faible quantité qu'à l'extérieur, ou quasiment absents comme l'ozone. D'autres comme les particules peuvent atteindre des niveaux beaucoup plus élevés dus à la circulation des rames et la fréquentation.” La RATP quant à elle est beaucoup plus mesurée. Pour elle, la qualité de l'air dans les espaces souterrains est globalement bonne. “Les résultats montrent un environnement chaud et sec, avec un bon renouvellement d'air des espaces (de 4 à 40 renouvellements d'air par heure)”, assure la compagnie dans un communiqué. “En ce qui concerne la pollution particulaire, due aux systèmes de freinage du matériel roulant, il s'agit d'un phénomène constaté dans tous les réseaux ferroviaires du monde, ajoute la RATP. S'il n'existe pour l'heure aucune norme en matière de particules dans les espaces souterrains, la RATP a engagé, dans une démarche volontariste, une série d'actions visant à réduire la présence des microparticules dans l'air.” Ainsi, l'entreprise est en train de généraliser, sur les nouveaux trains, le freinage électrique qui réduit les émissions de particules fines."

Sources :


#Science #Tech #french