Géospatial et Machine Learning
Pourquoi étudier les représentations cartographiques ?
L’idée générale est ici 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 sur les éléments spatio-temporels 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.
Le Machine Learning sur des données cartographiques est maintenant très partagé depuis les évènements comme le COVID ou la guerre en Ukraine.
Il y a un point clé pour pouvoir exprimer l’information géographique : les fonds de carte et des systèmes de coordonnées réalistes (souvent des coordonnées terrestres !). Ces fonds de carte peuvent être de différentes natures sémantiques au travers des features embarquées : physique, géophysique, administrative, sociologique, économique… Comme pour une "image" habituelle, la représentation...
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...
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.
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 et régions
Les polygones sont colorés suivant les départements ou les régions.

La France métropolitaine par départements et par anciennes régions
Nous pouvons en extraire les Vosges :
s_vosges <- s_[s_$CODE=="FR.VG", ] # extraction Vosges
# Rq : main est spécifique à plot.sf
plot(s_vosges[ ,c("CODE","geometry")],
main ="Les Vosges")
Nous pouvons en extraire la Lorraine et visualiser ses 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]
#...Données spatiales, gradient, laplacien et convolution
1. Préliminaire, créer un échantillon : LHS (hypercube latin)
Quand on manipule des données issues de la réalité physique, comme des données de cartographie, des données spatiales, des données 3D comme des données sur les sous-sols, ou tout simplement des images, des vidéos ou des sons captés, on est souvent amené à extraire certaines informations point par point. On passe donc d’un mode continu à un échantillon de valeurs issues de ce monde, que l’on nomme "valeurs discrètes". Le résultat de cette opération s’appelle ici : un échantillon.
En préliminaire de nos travaux sur un espace de données spatiales, nous allons donc nous pencher sur une technique d’échantillonnage fort ancienne mais très instructive : les hypercubes latins.
Pour créer un échantillonnage efficace, en particulier quand le problème possède de nombreuses dimensions, il est tentant de fabriquer un échantillonnage où on retrouve un minimum d’interactions entre les variables. Évidemment, ce type d’échantillonnage est d’autant plus utile que l’on soupçonne une faible covariance entre celles-ci, car ce mode d’échantillonnage ne va pas facilement aider à capturer l’effet des interactions entre variables.
Dans le cas des problèmes en petite dimension (2D, 3D) mais avec beaucoup de points par paquet d’observations (image, géographie...), ces méthodes d’échantillonnage trouvent également tout leur sens.
Les joueurs d’échecs connaissent le problème des huit reines sur un échiquier, qui consiste à poser sur l’échiquier huit reines qui ne seront pas en prise. Les carrés magiques, les sudokus et les huit reines sont des problèmes de construction d’une répartition d’objets sous des contraintes d’interaction précises et souvent minimales.
LHS (Latin Hypercube Sampling) ressemble à un problème de "tours" d’un jeu d’échecs, chaque tour ne devant pas être en prise avec les autres.
L’idée est simple :...
Krigeage (kriging)
Cette méthode est également connue sous le nom Wiener Kolmogorov prediction.
Le krigeage est largement utilisé dans divers domaines d’application, tels que la cartographie des sols, la modélisation de la pollution atmosphérique, l’hydrologie, la géologie et la prospection minière, pour estimer les valeurs d’une variable régionalisée en un point donné à partir des valeurs mesurées aux points voisins et pour produire des cartes d’isovaleurs (ou cartes de contour) des valeurs estimées.
1. La théorie, en bref
Cette petite section est à lire pas à pas, elle fait appel à certaines notions que nous avons déjà rencontrées, mais une lecture trop rapide serait sans doute infructueuse.
L’analogie entre les données spatiales et les données temporelles AR(1) se retrouve également dans la façon de les modéliser comme des processus gaussiens (GP) de la façon suivante :

Un kriging model (D. Krige, G. Matheron...) possède la formulation générale suivante, qui dépasse le champ des données spatiales :

GP étant un processus gaussien. Nous savons déjà que les processus gaussiens sont caractérisés par leur moyenne et leur covariance (ici cette dernière sera notée K(s, t), et pas C(s, t), afin d’introduire la notion de noyau). Cela se note : GP(m,K).
Dans le cas du krigeage, on a affaire à un GP(0,K).
En 2D ou 3D, on parle aussi de Gaussian Random Field.
Le kernel (la fonction de covariance) encapsule toutes les informations sur les dépendances spatiales, qui peuvent donc être travaillées via celui-ci. Comme on exhibe une covariance, le modèle de variogramme et le modèle de noyau sont intimement liés (voir...