• 12 heures
  • Difficile

Ce cours est visible gratuitement en ligne.

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 16/04/2024

Ajoutez une dimension spatiale à vos données

Après avoir voyagé dans le temps, initions-nous à la dimension spatiale.

Dans le jeu de données fourni par Camille, les chefs-lieux des départements sont géolocalisés grâce à la latitude et la longitude ; mais ça veut dire quoi ?

Identifiez votre système géographique

La terre n’étant ni plate, ni une sphère parfaite, une projection est nécessaire pour réaliser les cartes.

Forcément, le système de projection va influencer le rendu de la carte. Il existe différents systèmes en fonction des régions du monde. En Europe on utilise beaucoup de Lambert 93 en mètres (code 2154). Pour en apprendre plus sur les différences entre les projections et les systèmes de coordonnées associés, rendez-vous sur le site de l’Institut National de l'Information Géographique et Forestière (IGN).

Comme le jeu de données est sur la France métropolitaine et que nous ne calculons pas de surface, nous allons utiliser ici le système de coordonnées géographiques en degrés-minutes 4326.

En spatial, il existe plusieurs types d’objets, du plus réaliste au plus simplifié :

  • Les rasters ; ce sont des carrés qui représentent la réalité. Si vous avez déjà vu des cartes d’occupation des sols générées par l’IGN, c’est ça. Les carrés peuvent être déformés pour coller à l’altitude, la troisième coordonnée.

  • Les vecteurs : ce sont des objets présents sur les cartes. Il y en a trois types : 

    • Les points avec au moins deux coordonnées, latitude et longitude. Dans notre jeu de données, ce sont les chefs-lieux.

    • Les lignes qui représentent une suite de points : cours d’eau, rues...

    • Les polygones qui représentent des espaces uniformes. Dans notre jeu de données, ce sont les départements et les régions. Pour être traités en tant que tels, il faut une multitude de points qui définissent la forme du polygone. Les limites des départements vous sont fournies dans un fichier à part afin de ne pas alourdir les données.

Les différentes strates de la cartographie avec de haut en bas : les différents vecteurs (point, ligne, polygone), les raster et la réalité.
Les différentes strates de la cartographie 

Préparez les données spatiales

Vous savez déjà que les coordonnées associées aux chefs-lieux ne sont pour le moment pas considérées comme des données spatiales. Il va falloir les traduire avec le bon système de coordonnées grâce à la fonction  st_as_sf()  du package  {sf}  .

Ces données vont être stockées dans un jeu de données à part afin de ne pas inutilement alourdir le jeu de données d’origine.

Avant de faire cela, nous allons vérifier que les chefs-lieux ne sont associés qu’à un seul couple de coordonnées géographiques, afin de nous assurer qu’une ville a bien des coordonnées géographiques uniques.

Voici les codes de la vidéo :

# Vérification que les couples de coordonnées sont uniques pour un chef-lieu
donnees_temperature |>
distinct(chef_lieu, longitude, latitude) |>
count(chef_lieu) |>
filter(n != 1)
 
# transformation des données en coordonnées géographiques
chef_lieu_coord_geo <- donnees_temperature |>
distinct(chef_lieu, longitude, latitude) |>
st_as_sf(
coords = c("longitude", "latitude"),
crs = 'EPSG:4326'
)

Comment je peux savoir que le système de coordonnées c’est 4326 ou 2154 ?

Grâce aux variations des latitudes et longitudes. En 4326, la France métropolitaine (Corse comprise) a une latitude qui varie entre 41°N et 51°N et une longitude entre 5°W (soit -5) et 10°E. En Lambert 93, la même surface varie entre 6 000 000 m et 7 200 000 m pour la latitude, et la longitude entre 100 000 m et 1 300 000 m.

Représentez les données spatiales

Votre but est d’intégrer les données sur la page HTML de votre entreprise, donc vous allez pouvoir utiliser  {leaflet}  pour une carte interactive et  {ggplot2}  pour une carte statique.

Avant d’être un package R, Leaflet est une bibliothèque JavaScript. Elle permet de réaliser des cartes interactives grâce au projet de cartographie open-source OpenStreetMap.

La réalisation de carte est encore plus simple sur Leaflet, il suffit de faire un tableau de résumé des données puis de rentrer dans leaflet() en lui précisant la latitude, la longitude et le nom de la commune.

donnees_temperature |>
distinct(chef_lieu, latitude, longitude, region) |>
leaflet() |>
addTiles() |>
addMarkers(
lng = ~ longitude,
lat = ~ latitude,
label = ~ chef_lieu
)
Exemple de carte interactive
Exemple de carte interactive

L’avantage de la carte interactive, c’est que vous voyez que les coordonnées de la ville de Valence en France ont été remplacées par les coordonnées de la ville de Valence en Espagne !

Pour faire une carte statique,{ggplot2 est très bien. Par contre, il faut lui donner les contours des départements. Il ne les connaît pas par défaut, et il faut que les coordonnées géographiques soient des objets de type  sf  .

ggplot(departement) +
aes(fill = INSEE_REG) +
geom_sf() +
geom_sf(data = donnees_temperature, fill = "black", color  = "black") +
coord_sf(crs = 4326) +
theme(legend.position = "none") +
theme_classic()
Carte avec les contours de département
Carte avec les contours de département

En plus de Valence qui est en Espagne, il n’y aurait pas un problème avec l’Aisne (région 32 en vert) qui a deux chefs-lieux, et l’Allier (région 84 en violet) qui n’en a pas ?

Effectivement, le chef-lieu de l’Allier, Moulins, a été confondu avec la petite ville de Moulins dans l’Aisne. C’est à cela que sert l’analyse descriptive, à détecter les valeurs non cohérentes !

Dans l'activité suivante, vous avez à votre disposition un jeu de données corrigé, vous allez donc pouvoir vérifier qu’il n’y a pas d’autres erreurs.

À vous de jouer

Contexte

Vous avez croisé Antoine dans les couloirs qui vous a expliqué que vous pouvez remplacer les coordonnées erronées des villes de Moulins et Valence par les coordonnées ci-dessous :

  • Moulins : longitude = 3.334417 et latitude = 46.568059

  • Valence : longitude = 4.89236 et latitude = 44.933393

Consignes

Vous modifiez les données grâce aux fonctions  mutate()  et  case_when()  du package  {dplyr}  , et aux informations envoyées par Antoine.

Une fois les données modifiées, il vous reste à représenter grâce aux packages  {ggplot2}  et/ou  {leaflet}  les positions des chefs-lieux pour les vérifier.

En résumé

  • Les données géographiques dépendent du système choisi.

  • Le système choisi doit être cohérent avec la localisation de la carte.

  • Les coordonnées géographiques sont au minimum deux : latitude et longitude.

  • Il est facile de faire des cartes statiques avec  {ggplot2}  , et interactives avec  {leaflet}  .

C’est bien beau de regarder les variables une par une, mais cela ne va pas suffire pour répondre aux demandes. Il reste maintenant à regarder les liens entre les variables. Mais avant cela, testez vos connaissances le quiz juste après !

Exemple de certificat de réussite
Exemple de certificat de réussite