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 gdalCode 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.

RGEOS

Le fichier téléchargé peut être installé avec le gestionnaire de modules de RStudio:

InstallRGEOSfromsource

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)

 

fondsautoextensifsDiapositive08
Germanophones: valeurs brutes
Italophones: valeurs brutes
Italophones: valeurs brutes
Germanophones: proportion dans la population totale.
Germanophones: proportion dans la population totale.
Italophones: proportion dans la population totale
Italophones: proportion dans la population totale