Les instructions de ce document sont encore valables, mais l’univers des modules R a beaucoup évolué depuis 2016. Aujourd’hui, les principaux développements en matière de données vectorielles se sont détachés des 3 anciens modules documentés ci-dessous (sp
, rgdal
, rgeos
) pour se reposer principalement sur le modules sf
. Pour une version mise à jour de cet exercice, je vous recommande de vous rendre sur la page Cartographie avec R (2023).
Approche d’avant 2020 avec RGDAL et RGEOS
Les applications systèmes nécessaires
Pour cartographier avec R, vous avez besoin des bibliothèques logicielles GDAL (Geospatial Data Abstraction Library) et GEOS (Geometry Engine – Open Source). On peut faciliter leur installation en installant qGIS, qui les inclut.
Installer spécifiquement GDAL et GEOS
Mais vous pouvez aussi les installer directement. Pour cela:
Allez sur le site GEOS. Parmi les téléchargements proposés, vous trouvez les “binaries” pour votre système d’exploitation. Ce choix peut vous amener sur un autre site. Voici un chemin plus direct:
Pour Windows, téléchargez et installez OSGeo4W à partir d’ici. Ceci installe GEOS, GDAL ainsi que qGIS.
Pour un Mac téléchargez et installez GEOS et GDAL depuis ce site. Alternativement, si vous avez installé le gestionnaire d’applications Homebrew, exécutez simplement les commandes suivantes dans le terminal (que vous trouverez dans le dossier Applications/Utilitiares)
brew install geos --enable-unsupported --with-libkml --with-mysql
brew install gdal
Code language: JavaScript (javascript)
Si vous le souhaitez, exécutez les commandes suivantes pour installer aussi qGIS :
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH pip install numpy scipy matplotlib processing psycopg2 brew tap osgeo/osgeo4mac brew install qgis-28 brew linkapps qgis-28
Pour Linux Ubuntu, il suffit d’exécuter la commande suivante dans le terminal:
sudo apt-get install libgdal1-dev libproj-dev
Installer RGDAL et RGEOS
Pour relier R à GDAL et GEOS, il est nécessaire d’installer les modules RGDAL et RGEOS.
En principe, cela peut être fait à l’aide du gestionnaire de modules dans l’interface de RStudio ou en exécutant la ligne de commande suivante:
install.packages("rgeos")
Installation manuelle [si besoin]
Si le gestionnaire de modules ne trouve pas RGEOS, et si la commande précédente renvoie un message d’erreur, il faut l’installer à partir du fichier téléchargé ici. En fonction de votre plateforme, choisissez la source (pour Linux), ou les “binaries” Windows ou Mac.
Le fichier téléchargé peut être installé avec le gestionnaire de modules de RStudio:
Alternativement, exécutez la commande suivante, qui marchera si vous avez déposé le fichier rgeos_0.3-15.tar.gz dans le dossier (working directory) de votre projet.
install.packages("rgeos_0.3-15.tar.gz", repos = NULL, type = "source")
RGDAL
La même procédure d’installation s’applique à RGDAL:
install.packages("rgdal")
Au besoin, téléchargez RGDAL ici. Puis installez RGDAL avec le gestionnaire de modules de RStudio ou avec la commande suivante:
install.packages("rgdal_1.1-1.tar.gz", repos = NULL, type = "source")
Une fois rgeos et rgdal installés
Ensuite, activez les paquets en cochant la case correspondante ou en exécutant les commandes suivantes.
library(rgeos) library(rgdal) library(maptools) library(RColorBrewer) library(ggmap)
Si vous rencontrez des erreurs, installez les paquets manquants.
Téléchargement des données
Téléchargez le fichier unine_exercice1.zip depuis le site du cours.
Décompressez le contenu de l’archive zip dans le dossier du projet que vous avez créé. Pour apprendre comment créer des projets dans R, reportez-vous à l’exercice https://ourednik.info/maps/2015/11/09/visualiser-des-donnees-avec-r/.
Cartes
Produire quelques cartes avec R.
Tester le paquet ggmap
Ce paquet permet de visualiser un fond de carte à partir de l’internet en spécifiant une région par son nom. Ici “Neuchâtel”. Changez la valeur du paramètre zoom de la fonction qmap et observez le résultat. Apprenez davantage sur la fonction qmap ici.
qmap("neuchatel", zoom = 14, source="stamen", maptype = "watercolor")
Charger les fonds de carte shape dans R
Ici nous chargeons des données points (les centres des communes) et les données polygones (les frontières des communes).
map.poly <- readShapePoly("unine_exercice1/shp/Poly.shp",proj4string=CRS("+init=epsg:21782")) map.points <- readShapePoints("unine_exercice1/shp/Pnts.shp",proj4string=CRS("+init=epsg:21782"))
Associez les données aux unités spatiales
La suite présuppose que vous avez chargé les données d’exemple rfpdata comme décrit dans l’exercice précédent. Associez ces données aux communes en vous basant sur une variable d’identification (dans notre cas, “ID0”).
map.poly.rfp <- merge(map.poly,rfpdata,by.x="ID0",by.y="GMDE") map.poly.rfp@data$p_P00B22 # vérification d'une variable
Affichez les cartes
Exécutez les commandes suivantes, bloc par bloc.
# spplot marche tout de suite: spplot(map.poly.rfp,zcol="P00B21") # pour cartographier avec ggplot, il faut convertir l'objet SpatialPolygonsDataFrame en dataframe map.poly.rfp.gg <- fortify(map.poly.rfp, region = "ID0") # chargez d'abord le découpage des communes. Pour l'instant, rien ne s'affichera mais cette préparation est nécessaire. La commande retourne un "Warning". Ignorez-le: gg <- ggplot() + geom_map(data=map.poly.rfp.gg, map=map.poly.rfp.gg, aes(x=long, y=lat, map_id=id), color="#7f7f7f", size=0.15) # À présent les cartes proprement dites: germanophones gg + geom_map(data=map.poly.rfp@data, map=map.poly.rfp.gg, aes(fill=P00B21, map_id=ID0), color="#7f7f7f", size=0.15) # italophones gg + geom_map(data=map.poly.rfp@data, map=map.poly.rfp.gg, aes(fill=P00B23, map_id=ID0), color="#7f7f7f", size=0.15) # prop germanophones gg + geom_map(data=map.poly.rfp@data, map=map.poly.rfp.gg, aes(fill=p_P00B21, map_id=ID0), color="#7f7f7f", size=0.15) # prop italophones gg + geom_map(data=map.poly.rfp@data, map=map.poly.rfp.gg, aes(fill=p_P00B23, map_id=ID0), color="#7f7f7f", size=0.15)