Date de la première bordée de neige à Montréal

12 Nov 2019 in visualisationneigechangements climatiques

En novembre 2019, il y a eu une bordée de neige précoce à Montréal. Assez précoce pour faire l'objet d'un communiqué de presse. Rapidement, celle-ci a été associée à une anomalie causée par les changements climatiques. Qu'en est-il vraiment ? Est-ce un évènement historique ? C'est le moment de faire une petite analyse !

Environnement Canada possède des archives quotidiennes sur les précipitations à l'aéroport Montréal/Pierre-Elliott Trudeau. Nous allons utiliser cette source pour obtenir les quantités de neige. La période qui nous intéresse est de 2004 à 2019. Les résultats ont été exportés en CSV depuis le site web et placés dans un répertoire de travail.

fichiers <-
  list.files(path = "data",
             pattern = "*.csv",
             full.names = TRUE)

On procède à l'importation de ces fichiers en corrigeant quelques anomalies et en identifiant les symboles qui représentent des valeurs manquantes.

col_spec <- cols(
  .default = col_double(),
  `Nom de la Station` = col_character(),
  `Date/Heure` = col_date()
)

data_neige <- fichiers %>%
  lapply(
    FUN = function(x)
      x %>%
      read_csv(
        # Séparateur décimal
        locale = locale(decimal_mark = ","),
        col_types = col_spec,
        # Valeurs manquantes
        na = c("T", "E", "M", "<31")
      )
  ) %>%
  bind_rows()

Nous allons par la suite déterminer ce qu'est une "bordée". Selon plusieurs médias populaires, il semble qu'on parle d'une accumulation de plus de 10 centimètres. Nous allons aussi établir que le premier mois pour mesurer une bordée qui débute l'hiver est septembre.

bordee <- 10
premier_mois <- 9

Nous pouvons maintenant extraire cette première bordée pour chaque année

premiere_bordee <-
  data_neige %>% 
  # On sélectionne les données d'intérêt
  select(`Date/Heure`, `Année`, Mois, Jour, `Neige tot. (cm)`) %>%
  # On sélectionne les bordées
  filter(`Neige tot. (cm)` >= bordee) %>%
  # On sélectionne à partir de septembre de chaque année
  filter(Mois >= premier_mois) %>%
  # On trie par date
  arrange(`Année`, Mois, Jour) %>%
  # On regroupe par année
  group_by(`Année`) %>%
  # On garde la première date par année
  filter(row_number() == 1) %>%
  # On formate les données pour affichage sur un graphique
  transmute(Date = ISOdate(0, Mois, Jour), neige_cm = `Neige tot. (cm)`)

Nous pouvons maintenant générer un graphique qui permet de visualiser ces données. Une façon simple d'illustrer le temps et le volume de neige est d'utiliser un nuage de points. On fait varier la taille des points selon la quantité de neige. On place la date sur l'axe des ordonnées et les années sur l'axe des abscisses.

graph.neige <-
  ggplot2::ggplot(data = premiere_bordee, aes(x = `Année`, y = Date)) +
  geom_point(aes(size = neige_cm)) +
  ggtitle("Date de la première bordée (10 cm) à Montréal")

On exporte enfin le graphique pour l'afficher ici.

ggsave("montreal_neige_2019_premiere_bordee.png", plot = graph.neige)

Voilà, un graphique qui illustre la date et le volume de la première bordée de neige à Montréal depuis 2004 !

Il s'agit bien de la bordée la plus hâtive des dernières années, mais elle n'est pas très précoce !

Source des données

Code complet