Sociologie d’un quartier

March 19, 2013
By

This post was kindly contributed by Baptiste Coulmont » R - go there to comment and to read the full post.

Un correspondant m’envoie un problème. Dans le cadre d’une enquête portant sur la socio-histoire d’un quartier, il a eu accès à des archives qui indiquent, pour quelques pâtés de maison (pâtés d’immeubles), la composition sociale.
Ces données apparaissent sur des cartes réalisées à différents moments :
quartier
Les zones les plus foncées sont celles où la population a fréquemment une certaine caractéristique (peu importe la caractéristique, que ce soit la composition sexuée, la proportion de cadres ou de joueurs de banjo).
La question posée était : comment refaire la carte ? Plus précisément, il m’écrit : “Je souhaite montrer les évolutions que connaissent ces différentes zones en utilisant les fonctions cartographiques de R, surtout les cartes choroplèthes et en cercles proportionnels. En bref, comment faire pour coder ces zones ?”

Ce n’est pas très compliqué :
Pour commencer, il faut retracer les formes. Pour cela, il est possible de créer une carte sur google maps (cliquer sur “My places” (à côté de “Get Directions”) dans l’interface de google maps (il vous faudra peut-être un compte google).
Il est ensuite possible de dessiner des formes (“shapes”), et de leur associer un identifiant (qui sera la “clé” à partir de laquelle associer les données chiffrées).
map-google-quartier
Ensuite, google maps permet d’exporter les “shapes” au format .kml

Et dès qu’on a du .kml, alors on peut lancer R.
Imaginons que notre fichier .kml s’appelle quartier.kml

Dans R : (Note : il faut le package osmar, que j’ai présenté ici)

library(maptools)
library(rgdal)
library(osmar)
#charger les polygones du quartier :
quartier < - readOGR("Desktop/quartier.kml",layer="quartier")
#charger la carte du quartier
#grâce au package osmar [info] 
src < - osmsource_api()
bb <- center_bbox(LONGITUDE,LATITUDE, 800, 800)
ua <- get_osm(bb, source = src)
#dessinner les bâtiments (c'est optionnel)
bg_ids <- find(ua, way(tags(k == "building")))
bg_ids <- find_down(ua, way(bg_ids))
bg <- subset(ua, ids = bg_ids)
bg_poly <- as_sp(bg, "polygons")
#dessiner les routes (pour donner une idée)
plot(bg_poly, col = "lightgray",border="#ffffff00")
cw_ids <- find(ua, way(tags(k %in% c("highway"))))
cw_ids <- find_down(ua, way(cw_ids))
cw <- subset(ua, ids = cw_ids)
cw_line <- as_sp(cw, "lines")
plot(cw_line, add = TRUE, col = "black",lwd=10)
plot(quartier,add=TRUE,col=CODECOULEUR)

Created by Pretty R at inside-R.org

carto-quartier
Cliquez pour avoir un PDF vraiment yummy-yummy

Par comparaison, voici un morceau de la carte originale :
quartier-comparaison
Je ne sais pas ce que mon correspondant va faire avec ses cartes, mais l’objectivation cartographique peut sans doute contribuer au raisonnement sociologique.

Tags: , , , ,

Comments are closed.