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.
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
)
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()
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 !