Cartographie
Pourquoi étudier les représentations cartographiques ?
Dans les chapitres précédents, en particulier le chapitre Compléments utiles, nous avons esquissé l’inférence spatiotemporelle au travers du krigeage, des séries temporelles, des champs vectoriels et des variogrammes, l’idée générale étant que les features que l’on peut associer à une coordonnée spatiale 2D ou 3D dépendent souvent de ces coordonnées, des valeurs de diverses features sur d’autres coordonnées plus ou moins éloignées et du temps. Par ailleurs, des formes ou des topologies apparaissent ou préexistent au même titre que sur des images habituelles. Pour vous en convaincre, essayez d’imaginer les éléments caractéristiques de la formation et de l’évolution d’un ouragan faisant l’objet d’une représentation sur une carte.
Nous avons également abordé le filtrage des images qui, de fait, permet souvent de faire apparaître des topologies dans celles-ci, comme par exemple des contours significatifs. Par ailleurs, le chapitre précédent nous apporte les clés de la diffusion de nos résultats.
Mais il nous manque encore un point clé pour pouvoir exprimer l’information géographique : des fonds de carte...
Accéder à l’information géographique
Pour utiliser une information géographique, il faut identifier la codification des données associées, en particulier le système géodésique dans lequel sont codées les positions et/ou le système de projection dans lesquelles les positions seront projetées sur votre carte. Le plus connu des systèmes géodésiques se nomme WGS84 (World Geodetic System 1984). C’est celui qui correspond aux coordonnées GPS, et il est souvent associé au système de projection UTM (Universal Transverse Mercator), dénommé Gauss-Krüger par les Allemands.
Il existe de nombreux systèmes géodésiques et de projection, mais concentrez-vous sur ce qui suit, ce qui vous permettra d’aborder d’autres systèmes avec sérénité ! Prenez le temps de bien assimiler ces notions pour éviter d’être complètement désorienté par les paramètres et les notations des packages géographiques que vous pourriez utiliser.
Voici un exemple de coordonnées WGS84 dans la représentation utilisée par Google.
longitude latitude
Lima, Peru -77.04275 -12.04637
Paris, France 2.352222 48.85661
New York, NY, USA -74.005973 40.71278
Tokyo, Japan 139.691706 35.68949
On constate ici que les coordonnées sont exprimées en degrés décimaux par rapport au méridien de Greenwich et à l’équateur. Paris et Tokyo sont dans le quart nord-est et les valeurs sont positives, Lima est dans le quart sud-ouest et les valeurs sont négatives, New York est dans le quart nord-ouest et sa longitude est négative.
Les degrés décimaux (DDD) sont plus faciles à manipuler que les représentations comme les représentations sexagésimales (degré, minutes, secondes avec partie décimale : DMS). Les coordonnées de Paris en DMS sont : 48° 51’ 23.81" (nord) 2° 21’...
Création de cartes statiques avec R
Il existe de nombreux packages utiles pour la création de cartes en utilisant R, nous allons donc nous focaliser sur des packages très connus ou très faciles d’utilisation.
Après avoir téléchargé un fichier shape (.shp) sur le site de StatSilk, nous allons utiliser une vieille fonction (aujourd’hui dépréciée) du package maptools pour le lire et visualiser le résultat.
library(maptools) # référence pour les cartes
s <- readShapeSpatial("map/map.shp") # lecture format shape
summary(s) # pas trop simple à lire ...
plot(s) # La France !
Object of class SpatialPolygonsDataFrame
Coordinates:
min max
x -5.143751 9.560416
y 41.333752 51.093193
Is projected: NA
proj4string : [NA]
Data attributes:
MM_UID CODE NAME1 NAME2 DIVISION
FR.AB Île-de-France Ain Region
...
On reconnaît les coordonnées GPS de la France métropolitaine (Corse incluse).
La France métropolitaine par départements, au plus simple
Nous allons maintenant lire les mêmes données via le package sf, et visualiser cette France sur deux features différentes (départements et anciennes régions administratives). La fonction plot est invoquée après avoir identifié la signature de l’objet à visualiser. Comme celui-ci provient du package sf, le plot utilisé est celui défini dans le package.
library(sf) # pour avoir sf::st_read
s_ <-sf::st_read("map/map.shp", stringsAsFactors = FALSE)
summary(s_)
plot(s_[,c("CODE","NAME1","geometry"), ]) # départements...
Création de cartes dynamiques avec R
Nous allons maintenant mettre en œuvre des cartes "raster" + "shape" interactives. Nous allons générer deux cartes qui vont être synchronisées, c’est-à-dire que les mouvements sur l’une vont générer le mouvement d’un pointeur sur l’autre.
library(mapview) # cartes interactives
# au plus simple
# [NON IMPRIMÉ DANS L'OUVRAGE]
mapview(c_lorraine,
zcol = c("Z_MOYEN"),
legend = TRUE)
mapview(s_lorraine, # lecture shape
zcol = c("NAME2"),
legend = TRUE)
# [EXEMPLE INTÉRESSANT]
# cartes synchronisées
library(RColorBrewer) # gestion des couleurs
clrs <- colorRampPalette(brewer.pal(9, "Greens"))
mapview(c_lorraine,
...