Sociologie d’un quartier
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 :
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).
Ensuite, google maps permet d’exporter les “shapes” au format .kml
Voici une explication en vidéo :
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) #dessiner 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
Cliquez pour avoir un PDF vraiment yummy-yummy
Par comparaison, voici un morceau de la carte originale :
Je ne sais pas ce que mon correspondant va faire avec ses cartes, mais l’objectivation cartographique peut sans doute contribuer au raisonnement sociologique.
4 commentaires
Un commentaire par nananov (19/03/2013 à 20:36)
La “commande” me fait pas mal penser à ce bon vieux Charles Booth qui avait fait une carte des pâtés de maison à Londres en fonction de la composante sociale.
Et ce, au XIXe siècle ! Et avec des critères de classement assez rigolos (présence de prostituées dans la rue, fenêtres cassées, rideaux etc.).
Un commentaire par Baptiste Coulmont (19/03/2013 à 20:42)
En effet, l’archive utilisée ressemble à ces “enquêtes sociales” à vocation disciplinaire/paternalistes [d’autres exemples se trouveraient dans cet article : Astier Isabelle, Laé Jean-François. «La notion de communauté dans les enquêtes sociales sur l’habitat en France. Le groupe d’Économie et humanisme, 1940-1955» Genèses, 5, 1991. pp. 81-106. doi : 10.3406/genes.1991.1078 ]
Un commentaire par Kart (20/03/2013 à 14:41)
D’un autre côté, si la présence de rideaux aux fenêtres / de fenêtres cassées est fortement corrélé avec la CSP, je vois pas pourquoi on se prive aujourd’hui…
Un commentaire par Somewhere else, part 41 | Freakonometrics (29/03/2013 à 5:01)
[…] coulmont a toujours réponse à tout ! http://coulmont.com/blog/2… par exemple créer des maisons avec […]