Cartographie avec R

Tuesday, December 13th, 2016 | Author:

La cartographier dans R demande une installation relativement complexe. On peut la faciliter en installer qGIS avant de procéder à la suite. La procédure d’installation complète de qGIS pour tous les systèmes d’exploitation est décrite ici.

Installer GDAL et GEOS

L’installation complète de qGIS installe GDAL et GEOS, car qGIS dépend de ces bibliothèques. 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:

brew install geos --enable-unsupported --with-libkml --with-mysql
brew install gdal

Et les commandes suivantes pour installer aussi qGIS dans la volée:

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

Dans certaines installations de R, RGEOS peut être installé directement à l’aide du gestionnaire de paquets, en se servant de l’interface de RStudio ou en exécutant la ligne de commande suivante:

install.packages("rgeos")
Installation manuelle [si besoin]

Si le gestionnaire de paquets ne trouve pas rgeos et si commande précendante 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.

RGEOSInstallez RGEOS avec l’installeur de paquets 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 l’installeur de paquets 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 http://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

Cite as: André Ourednik (2016) « Cartographie avec R » in Maps and Spaces from https://ourednik.info/maps/2016/12/13/cartographie-avec-r/ [Last-seen November 19th 2017].
Category: Courses, Tools