Categories

Photos

Archives de la catégorie : 'cartographie'

Quelques courbes de niveau

Sur la carte suivante, chaque point représente le lieu de réunion d’une “église d’expression africaine” :

Cette série de points montre la dispersion, mais ne permet pas de repérer “immédiatement” une sorte de centre. Ce que fait la carte suivante, à lire comme des courbes de niveau. Il y a peut-être des espaces “inégalement religieux”.

Mais que trouve-t-on donc au centre ? Des églises plus anciennement implantées ? des “grosses” églises qui attirent, comme un supermarché des petits concurrents différenciés, d’autres églises, plus petites, qui tentent de capter le public… ?
Ces cartes ont été produites à partir de cet exemple de cartographie du crime à Houston, TX.

R, cartographie, suite

Comment obtenir rapidement cette carte représentant le taux brut de natalité dans divers pays d’Europe, en 2009 :

Il faut tout d’abord disposer de données (issues de Eurostat) et d’un fichier shapefile — trouvé sur le site de la Commission européenne par François “Politbistro” B. — (Voici le tout dans une archive zippée : maps.zip)

Voici le code.

library(maptools)
library(RColorBrewer)
library(classInt)
library(reshape)
setwd("~/Desktop/maps")
data <- read.table("tauxbrutnatalite.csv",header=T,sep=";")
head(data)
europe<- readShapeSpatial("CNTR_RG_60M_2006.shp",proj4string=CRS("+proj=longlat"))
summary(europe)
xcoord <- c(-10,40)
ycoord <- c(35,70)
nclr <- 6
colours <- brewer.pal(nclr, "RdBu")
v<-data$X2009
class <- classIntervals(v, nclr, style="equal")
colcode <- findColours(class, colours)
test<-match(europe$CNTR_ID,data$code)
x<-colcode[test]
x[ is.na(x) ] <- "darkgrey"
plot(europe,col=x,xlim=xcoord,ylim=ycoord)
legend(-10,70,legend=names(attr(colcode,"table")), fill=attr(colcode, "palette"), cex=1.2, bty="n")

Somme toute, ce n’est pas un code très lourd pour générer une aussi jolie carte (les couleurs auraient pu être mieux choisies, ainsi que les intervalles, mais tout ceci est grandement modifiable). Ce qui est compliqué, c’est d’associer les données dont on dispose et le fichier shapefile. Deux problèmes se posaient ici :

  1. les pays, dans le shapefile, sont indexés par leur code à 2 lettres (FR pour France…) : il fallait donc travailler un peu les données d’Eurostat, en Français
  2. il fallait ensuite être certain que R coloriait les pays avec les bonnes indications : c’est à cela que l’instruction match sert : elle établit, dans l’objet “test” une grille de correspondance entre le code-pays du fichier de données et le code-pays du fichier shapefile.

J’ai colorié en gris les pays pour lesquels les données manquent.
Maintenant, François “Politbistro” B., à toi de jouer.

Basques et bretons au collège

Dans un quotidien, récemment, l’un des frères Fassin disait que la culture, ce n’est pas une explication, c’est ce qu’il faut expliquer. Pour cela, il faut probablement encore croire que la culture existe un tant soit peu, ce qui n’est pas vraiment mon cas.
Cependant, il faut reconnaître que certaines personnes construisent activement des identités collectives et qu’on ne peut les effacer aussi rapidement. J’avais déjà mentionné l’existence de prénoms bretons : depuis une cinquantaine d’années, des promoteurs de la culture bretonne publient dictionnaires, calendriers, listes… comprenant ce qu’ils appellent des “prénoms bretons”. Si l’on agrège différentes listes, l’on finit par obtenir une grosse liste de prénoms bretons.
Le “fichier des prénoms” de l’INSEE propose des données au niveau national et au niveau de chaque département. Mais rien en dessous : rien au niveau des communes ou des cantons.
Mais, peut-être par inadvertance, l’éducation nationale, elle, donne accès à des données intéressantes. Une bonne partie des académies publient les résultats nominatifs au brevet des collèges. Henry Ciesielski a repéré cela et a réussi à récupérer une bonne partie de cette liste.
L’on dispose ainsi d’informations assez fines au niveau de chaque collège. La suite est le résultat d’une collaboration entre Henry et moi. Les 4800 collèges ont été géolocalisés (assez grossièrement et avec des erreurs, car nous ne disposions que de la commune, pas de l’adresse postale complète). Et, pour chaque collège, la proportion de “prénoms bretons” parmi les admis au brevet a été calculée.
La carte suivante permet de voir, rapidement, qu’il y a plus de prénoms bretons en Bretagne qu’en dehors. Il est bien dommage que les académies limitrophes n’aient pas publié les résultats au brevet : l’on aurait pu voir où s’arrêtait la frontière culturelle… [Notez : la taille des points est fonction du nombre de prénoms bretons, la couleur fonction de la proportion.]

Des résultats plus fins sont disponibles : les collèges “Diwan” regroupent plus d’enfants avec des prénoms bretons.
La carte suivante m’intéresse plus. En effet, les promoteurs de la culture bretonne semblent avoir réussi un double essai : rendre visible les prénoms bretons à l’état civil pour une minorité non négligeable d’enfants, et diffuser à l’ensemble de la Bretagne-région cette pratique. Cela dans un contexte intéressant : plus personne ou presque ne parle breton…
Les promoteurs du basque n’en sont pas là encore. Voyez la carte : seuls une poignée de collèges contiennent une proportion importante de prénoms basques, et cela est limité à l’extrême sud-ouest du Sud-Ouest. Autant les Morgane, les Gwenn et les Ewen se sont diffusés au delà du monde des bretonisants, autant les Bixente, les Ainhoa et les Aguxtin restent confinés au pied des Pyrénées-Atlantiques. [Ce n'est peut-être pas vrai pour quelques prénoms, mais, pris collectivement, ils n'ont aucune existence en dehors de la micro-région.]

Prenez ces deux cartes comme un début de recherche, une première visualisation des effets à la fois de la libéralisation du choix du prénom et, je le pense, des entreprises politiques de différenciation culturelle.

Amusements cartographiques

Pour rédiger mon tutoriel cartographique pour R, je cherchais des données variées. J’ai réussi à trouver les résultats à la présidentielle de 2007, par départements. J’ai du retravailler un peu le fichier, que je donne à la collectivité :
presidentielles.csv
Avec ça, on peut faire de jolies cartes. Mes premières essaient de repérer les zones où les candidats ont reçu leur pourcentages maxi et mini de votes.
Je classe les données par intervalles avec le package classInt :
class<-classIntervals(plotvar, nclr, style=”equal”)

 

 

Je sais, ces cartes n’ont rien de formidable, on en trouve de mieux sur internet, il n’y a pas de légende… Mais vous pouvez les reproduire ces cartes. Talk about empowerment !

plotvar <- presidentielles$schivardi/presidentielles$exprime
nclr <- 6
plotclr <- brewer.pal(nclr,”RdBu”)
plotclr <- plotclr[nclr:1] # reorder colors
class <- classIntervals(plotvar, nclr, style=”equal”)
colcode <- findColours(class, plotclr)
plot(departements,col=colcode,lty=”blank”,lwd=.5)
title(main=”Votes pour Schivardi”)

Cartographie avec R, “tutoriel”

Voici une oeuvre en voie de composition : un tutoriel pour la cartographie avec R. Considérez que le fichier, disponible à l’adresse suivante http://coulmont.com/cartes/rcarto.pdf, est pour l’instant une version très préliminaire. Disons une version 0.1
Il existe de bons “tutoriels” en ligne en français, notamment pour la régression logistique (Lemercier et Sofio 1) ou l’analyse factorielle (Sofio et Lemercier 2).
Je n’en connais pas pour la cartographie, d’où mon initiative.
Les commentaires sont les bienvenus.

L’art de ne pas être gouverné

[Petit hommage à moitié ironique à James C. Scott via Daniel Little]
 
L’amphithéâtre est un espace social politique. Il suffit d’en avoir fréquenté pour savoir que les people of the hills, ceux qui s’assoient tout en haut, sont rétifs à l’étatisation représentée par le professeur. Le discours enseignant classique leur a donné une nature propre, presque une ethnicité : ils seraient les étudiants potentiels non civilisés, ils représenteraient in vivo une condition pré-étudiante ancestrale. Leur destin serait de descendre, petit à petit, de la “zomia” (cette zone haute peu accessible au pouvoir étatique en raison de la “friction” du terrain) pour se rapprocher du centre étatisé.
Mais une autre tradition de recherche comprend ces rebelles comme ayant été générés par l’étatisation : on peut comprendre toute leur organisation sociale comme une réponse rationnelle à la pression étatique. Egalitarisme des relations sociales, agriculture non sédentaire…

La rebellion estudiantine ne s’objective pas dans des raids esclavagistes, mais dans l’absentéisme ou diverses formes de grèves du zèle. Un indicateur archéologique existe cependant — archéologique au sens où il persiste dans le temps : le graffi-table (graffiti sur table).

Proposons un plan d’un petit amphi universitaire (à peine six rangées). Il est probable que l’on puisse observer ceci, où l’intensité des graffitis à un endroit donné (i) est fonction du carré de la distance au professeur (d) :

i=ƒ(d²)

et — de manière plus qualitative — où, à des rangées particulières, sont associés des types de graffitis particuliers.
Un espace sans graffitable a été repéré dans plusieurs amphithéâtres. Les versions professorales y voient une objectivation de l’espace du charisme personnel — ou du charisme d’institution — reconnu au professeur. D’autres y voient l’espace dit des postillons, une zone trop proche de l’État pour que des étudiants s’y installent.

 


 
En bon empiriste positiviste, il me fallait vérifier cela. Ce fut fait lors d’une surveillance d’examen.

Pour en savoir plus : Une longue tradition d’enquête sur graffitis existe, dont je ne donnerai que quelques exemples : 1, 2, 3

Cartographie avec R (suite)

Je cherche à donner à voir, par des points sur une carte, la localisation d’églises (ou de boulangeries, ou de sex-shops, ou de lobbyistes…) en région parisienne. Il est possible de créer un “mashup” avec google maps, ou une carte dans google earth, mais cela ne donne pas de jolis fichiers PDF utilisables dans une publication scientifique qui se respecte. Imaginons que je dispose des données “Longitude / Latitude” des églises.

Il me faut un fond de carte. On trouve une carte de la France (avec les frontières administratives) sur “cloudmade” : http://downloads.cloudmade.com/europe/france. Il faut télécharger le fichier : “france.shapefiles.zip”
On trouve aussi, ailleurs, une carte des principales rues, routes, autoroutes… d’Île de France : http://download.geofabrik.de/osm/europe/france/ : il faut télécharger la carte de l’Île de France : ile-de-france.shp.zip

Ces cartes “open source” proviennent du projet OpenStreetMap : il y a des erreurs, des morceaux non complets, des manques. Mais à notre échelle, cela suffira. Les fichiers téléchargés sont des “shapefiles”. Ils consistent en 4 fichiers différents : un fichier .prj qui contient des informations concernant la projection, puis trois autres fichiers contenant les données elles-mêmes (un fichier dbf, un fichier shp et un fichier shx).

Ouvrons maintenant R.

library(maptools) #charge le package "maptools"
france<-readShapeLines(
"Desktop/france/france_administrative.shp",
proj4string=CRS("+proj=longlat")
)

l’instruction précédente demande à R de charger les informations de la carte de France dans “france”.

summary(france) # donne la structure de "france" 

On constate que dans cette “Data frame” il est indiqué, par “ADMIN_LEVE” le type de frontière administrative: 8 pour les communes, 6 pour les départements.

routesidf<-readShapeLines(
"Desktop/ile-de-france/roads.shp",
proj4string=CRS("+proj=longlat")
)
summary(routesidf)

permet de constater que le type de route est indiqué par “type” : “primary”, “secondary”, “residential”…

les fichiers peuvent être longs à se charger : ce sont des objets très lourds et il serait préférable de demander à ne charger qu’une petite partie des fichiers (par exemple les routes principales et pas tous les chemins communaux). Mais je ne sais pas le faire… pas encore du moins.

plot(france,xlim=c(2.35,2.45),ylim=c(48.87,48.97),lty=3)

donne l’image suivante. Seul un regard averti y discernera le nord de Paris et une partie de la Seine-Saint-Denis :
Paris-Nord
Rendons cette carte un peu plus lisible :

plot(france[france$ADMIN_LEVE==6,],add=TRUE,lwd=2)
plot(routeidf[routeidf$type=="primary",],add=TRUE,lwd=2,col="lightgray")
plot(routeidf[routeidf$type=="secondary",],add=TRUE,lwd=2,col="lightgray")

Paris-Nord2
J’ai ajouté les routes principales (de type “primary” et “secondary”), j’ai indiqué certaines des frontières départementales par un trait noir. Je vais maintenant ajouter mes églises, qui sont dans l’objet “coordeglises” : X indiquant la longitude et Y la latitude. :

points(coordeglises$X,coordeglises$Y,pch=20,cex=2,col="red")

Paris-Nord3

Il me semble pouvoir remarquer que mes églises s’installent assez souvent à proximité de ces grandes routes, voire même à proximité du croisement de deux de ces grandes routes.

Note : Mis à part le bel iMac sur lequel j’ai réalisé ces cartes, tout le reste fut “gratuit”. Open Source ou non. Seashore, R, OpenStreetMaps… et l’indispensable géocodage offert par google….

Cartographies

La semaine dernière, deux collègues m’ont contacté, apparemment indépendamment l’un de l’autre, pour me poser la même question : “pour cartographier [insérer thème de recherche], que faut-il utiliser ?”. Dans les deux cas, parce qu’ils travaillent sur des pays européens, les fonds de cartes précis sont payants ou difficile à trouver. Nous, Européens, n’avons rien d’équivalent aux fichiers Tiger du recensement US. Essayez-donc de trouver un fond de carte des communes françaises au format E00 ou shapefile… (ou un fond de carte représentant la zone couverte par chaque bureau de vote en 2007).
Pour cartographier, par exemple, la localisation des boulangeries en Île de France, j’ai trouvé un fonds de carte utilisable. Le projet OpenStreetMap, sorte de carto-wiki, commence à être assez bien renseigné, grâce au travail de milliers de contributeurs.
exemple : Paris, 19e arrondissement.
Les données sont librement téléchargeables, ce qui permet de produire ensuite ses propres cartes. OpenStreetMap donne ainsi naissance à OpenCycleMap et à d’autres sites.
Il est ainsi possible de trouver des fichiers “shapefile” proposant les frontières administratives de certains pays (parfois assez précis jusqu’au niveau de la commune). Pour la France par exemple : ici et .

Chose très intéressante, il est possible de télécharger en PDF les cartes d’OpenStreetMap (en cliquant sur l’onglet “Export”) et ensuite de les imprimer.

View Larger Map

A venir : quelques mots sur Rgdal, Maptools et les projections cartographiques avec R. En attendant, vous pouvez consulter le blog d’Arthur Charpentier.

Race, religion, richesse

Petite collaboration avec rue89.com et surtout avec Frédéric Dejean, géographe :
La pauvreté, terrain fertile pour les églises noires d’Ile-de-France.

Jeux d’échelles : circulations évangéliques

Parlons un peu de circulation régionale, de circulation internationale et de religion.
Il y a quelques jours, je proposais cette carte de la répartition des églises évangéliques “noires”, ou “d’expression africaine” en région parisienne, en me basant sur une collection d’affiches :
eglisesnoires1
Cette carte incite implicitement à une lecture “locale” : les lieux de culte sont situés dans les communes les plus pauvres de la région parisienne [pour être plus précis dans les communes où sont sur-représentés les ménages pauvres]. Et comme le soulignait en commentaire F. Dejean une autre lecture “locale” est possible, en associant cette carte à celle de la répartition des immigrés d’Afrique sub-saharienne.
L’on pourrait ainsi comprendre ces églises comme ancrées sur un espace communal. Mais le processus même de recueil des données incite à une autre interprétation. Toutes les affiches dont je dispose (presque 80) ont été photographiées à Château Rouge, un quartier commerçant de Paris proche de Barbès fréquenté par les diasporas africaines, qui sert ici de “plaque tournante” ou de “redistributeur” : c’est en allant faire ses courses à Château Rouge que l’on peut rencontrer l’église dans laquelle on ira le vendredi soir ou le dimanche suivants.
oursinlocalL’on pourrait donc représenter les adresses des lieux de culte comme des directions plutôt que comme des points. Si l’on considère que Château-Rouge est l’origine, alors il est possible de dresser cette carte étoilée, “en oursin” [au centre, Château Rouge, et à chaque extrémité, un lieu de culte]. Inversement, cette carte montre l’attraction régionale (ou le rayonnement) de ce quartier parisien.
Quel est l’intérêt d’une telle carte ? Elle donne peut-être un peu mieux l’idée du mouvement ou des déplacements que les fidèles peuvent faire.
exempleaffiche
Elle entre aussi en résonnance avec la carte des invitations de pasteurs. La carte suivante est une ébauche de représentation spatiale des voyages des pasteurs mentionnés sur les affiches d’églises africaines.
Car l’on trouve souvent, sur ces affiches, mention d’un “pasteur invité” accompagné de son pays de résidence (parfois aussi de la ville). Au centre de l’étoile l’on trouve la région parisienne (les lieux de culte mentionnés sur les affiches), et au bout des rayons, les villes de résidence de ces pasteurs.
pasteurs invitations

Avec ces cartes, je souhaite rendre visible la multiplicité des échelles utilisables pour décrire ces églises. J’ai précédemment cartographié la répartition des églises en Île de France : c’est principalement en Seine-Saint-Denis qu’elles sont localisées.
Ici l’on voit qu’à cet espace s’est “accroché” une dimension transnationale, qu’au “local” s’est accroché le “global” mais que ces deux dimensions sont “lues” simultanément sur ces affiches. Je multiplie ici à dessein les guillemets : je n’ai pas encore de vocabulaire précis à ma disposition qui me plaise suffisamment. Le passage obligé par l’objectivation statistique m’aide donc à asseoir l’usage de termes comme “global” sur les possibilités offertes par la cartographie.
Continuons.
L’espace dessiné par les invitations de pasteurs étrangers révèle plusieurs choses :
1- Un espace africain : l’afrique sub-saharienne uniquement. Peut-être parce que certaines églises sont des boutures européennes de créations congolaises (par exemple). Peut-être parce que d’autres, inscrites dans des liens préalables à l’immigration, continuent à entretenir la référence à l’Afrique.
2- Un espace européen : Londres, Berlin, Bruxelles sont les pointes d’un polygone qui inclut la Seine-Saint-Denis en tant qu’”espace européen” ou “espace TGV”. Est-il alors suffisant de décrire ces églises comme “noires” ou “africaines” ou même “d’expression africaine” ? Même en acceptant, et l’hypothèse est très restrictive, que les fidèles sont des locaux, à l’échelle régionale, il semble que les pasteurs (sous cette dénomination ou une autre, apôtre, prophète…) dessine un espace clérical à une autre échelle : ils circulent entre pays.
3- Un espace américain : Canada, Bahamas, Etats-Unis et même au Sud. L’Amérique, c’est à la fois des sessions de formation, des stages bibliques, auxquels ont pu participer certains pasteurs, mais c’est aussi le lieu mythique de la réussite, réussite évangélique et réussite sociale.

Note sur la méthode : J’ai utilisé R pour tracer les cartes, puis un logiciel de dessin vectoriel. Pour dessiner des cartes en oursin, il m’a semblé “simple” de faire ainsi :
Mes données ont cette structure. Les données, ici, s’appellent “oursinlocal”

Adresse		lon		lat
briand 		2.448342	48.868919
ChatRouge 	2.351933	48.887745
arago 		2.325025	48.904659
ChatRouge	2.351933	48.887745

Je répète, une fois sur deux, la longitude latitude de Château-Rouge ce qui permet de tracer des lignes.
J’ai téléchargé un fichier shapeline (.shp) de la France sur le site de l’IGN (qui s’appelle GEOFLA ou un truc de ce genre). Il faut aussi les packages “maptools” et “sp” pour R
franceshp<-read.shape("geofla/LIMITE_DEPARTEMENT.shp", dbf.data = TRUE, verbose=TRUE, repair=FALSE)
plot(franceshp,xlim=c(2,2.6),ylim=c(48.6,49))
lines(oursinlocal$lon,oursinlocal$lat,col="red")

J’en profite pour signaler que je n’ai pas compris comment passer d’une projection à une autre… Ce qui donne, au départ, des cartes un peu “écrasées” par rapports aux projections habituelles de la France. Mais si j’utilise le fichier GEOFLA en projection “lambert”, je n’arrive plus à placer mes églises…
Pour la carte “mondiale”, il existe, dans le package “maps”, des données sur les principales villes du monde, world.cities. La partie complexe consiste à lier ces données, world.cities, à la liste des villes relevées sur les affiches.

Mise à jour
franceshp< -readShapeSpatial("Desktop/geofla/LIMITE_DEPARTEMENT.shp",proj4string=CRS("+proj=longlat")) fonctionne parfaitement (avec R 2.11.1)