Nuit Debout !

cartenuitdebout

Camarades cartographes, je partage aujourd’hui une carte des rassemblements du mouvement Nuit Debout. La réalisation de cette carte s’effectue en deux étapes. Premièrement, la carte est générée directement avec le langage R en allant chercher la liste des lieux de rassemblement sur le site http://www.nuitdebout.fr/, grâce à des techniques de web scrapping. Le géocodage et la représentation cartographique sont également effectués dans R grâce à des packages dédiés (photon, cartography). Dans un second temps, la carte est retravaillée et mise en scène dans un logiciel de DAO. Ce processus traduit assez bien, selon moi, une façon efficace d’aborder la production cartographique, à la fois reproductible et éditoriale.

Sur la carte, figurent deux éléments. Des points rouges viennent indiquer les lieux de rassemblement. Des traits bleu foncé relient les lieux distants de moins de 100 km à vol d’oiseau (choix relativement arbitraire). Cette symbolique du réseau est ici choisie pour mettre en scène l’idée que le mouvement Nuit Debout s’ancre, se diffuse et s’interconnecte sur l’ensemble du territoire national. Bref, cette carte invite à aller voir au delà de la seule place de la République à Paris.

Voici ci-dessous l’ensemble du code R.

#------------------------------------
# Carte de France des "NUIT DEBOUT"
# cc - Nicolas Lambert, avril 2016
#------------------------------------
 
### [ETAPE 1] webscrapping (récupérer la liste des rassemblements sur le site http://www.nuitdebout.fr/) ###
 
# extraction du site web
library(xml2)
webpage <- read_html(x = "http://www.nuitdebout.fr/#assembly")
# Mise en forme
library(rvest)
rassemblements <- as.vector(webpage %>% html_nodes(".chip a") %>% html_text())
 
### [ETAPE 2] géocodage ###
 
# Géocodage
library(photon) # devtools::install_github(repo = 'rCarto/photon')
rassemblements.geocoded <- geocode(rassemblements, limit=1, lang="fr", key="place")
# Corrections 
rassemblements.geocoded[rassemblements.geocoded$location=="Orleans",] <- geocode("Orleans", limit=NULL, lang="fr", key="place")[2,]
# Nettoyage
rassemblements.geocoded <- rassemblements.geocoded[,c("location","country","lon","lat")]
# Selection (on ne garde que les localisation en France)
rassemblements.geocoded <- rassemblements.geocoded[rassemblements.geocoded$country=="France",]
# création des centroides
library("sp")
rassemblements.spdf <- SpatialPointsDataFrame(coords = rassemblements.geocoded[,c("lon","lat")], data = rassemblements.geocoded[,c("location","country")],proj4string = CRS("+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"))
 
### [ETAPE 3] cartographie ###
 
# chargement du package de cartographie
library("cartography")
data(nuts2006)
 
# choix de projection
library("proj4")
lambert93 <- "+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
france.spdf <-  spTransform(nuts0.spdf[nuts0.spdf@data$id=="FR",], CRS(lambert93))
countries.spdf <- spTransform(nuts0.spdf, CRS(lambert93))
rassemblements.spdf <- spTransform(rassemblements.spdf, CRS(lambert93))
rassemblements.spdf$id <- row.names(rassemblements.spdf)
 
# Fond de carte et mise en page
layoutLayer(title="La carte de France des #NuitDebout",
            sources = "", 
            author = "", 
            col = "black", 
            coltitle = "white",
            bg = "#C9E2FF",
            scale = NULL,
            frame = FALSE,
            extent=france.spdf)
plot(countries.spdf,col="#D9B99370", border="white",lwd="1.5", add=T)
plot(france.spdf,col="#B89C7D", border="white",lwd="1.5", add=T)
 
# Liens
library(rgeos)
library(reshape2)
mydist <- 100000
dist<-gDistance(rassemblements.spdf,byid=TRUE)
dist<-melt(dist,variable.name=1, na.rm=TRUE)
colnames(dist) <- c("i","j","fij")
dist <- dist[dist$fij <=mydist,]
links <- getLinkLayer(spdf=rassemblements.spdf, df=dist,spdfid="id")
plot(links,col="blue",add=T)
 
# lieux
rassemblements.spdf$sizes <- 1
propSymbolsLayer(spdf = rassemblements.spdf, df = rassemblements.spdf@data,
                 var = "sizes", 
                 symbols = "circle", 
                 col =  "#920000",
                 legend.pos = "n",
                 inches = 0.05,
                 add=T)
 
# ....... Il reste à finaliser la carte dans un logiciel de DAO

NuitDebout_R

Figure : Carte de travail générée par le programme R (avant mise en page)


Nicolas Lambert

Ingénieur de recherche CNRS en sciences de l'information géographique. Membre de l'UMS RIATE et du réseau MIGREUROP / CNRS research engineer in geographical information sciences. Member of UMS RIATE and the MIGREUROP network.

Vous aimerez aussi...

13 réponses

  1. Bon travail! Cette carte m’apprends beaucoup et me donne a reflechir. Je vois sans étonement, l’isolement relatif de la region parisienne, une ville conçue pour dominer les provinces, la concentration plus surprenante autour de Bordeaux, le corridor de Lion a Marseilles bien sur. Je constate le manque de communication et peu etre d’enthusiasme dans les regions de montagne. Utiliser la distance me semble une idée valable, J’habite aux antipodes et je suis fauché, conduire cinquante km pour un meeting ou une demonstration coute cher dans mon budget même si la cause est bonne. Psychologiquement L’internet n’a pas remplacé le contact réel en politique. On prends confiance au coude a coude.
    Je vois aussi d’autre applications pour ce genre de methode qui produit essentiellement une toile d’araignée plus ou moins serrée, pollution des eaux par exemple, propagation d’une maladie dans les ruches, phenomène dépendant d’un mouvement. Bravo pour ajouter le programme.

  2. Merci pour l’article, c’est au top et très intéressant 😉

  3. Kaoré dit :

    L’agenda Nuit Debout est Open Data, tout est récupérable dans l’export json: https://openagenda.com/nuitdebout/actions/

  4. L’exercice est sympa, mais je ne comprends pas l’idée de rajouter ces “connexions” qui tranchent avec la sémiologie cartographique conventionnelle: si on les représente, alors c’est qu’elles ont un rapport avec les données qui font la carte. Or, ici, elles sont décoratives puisque la diffusion du mouvement Nuit Debout n’a rien à voir avec la proximité des lieux de manifestation, ce n’est pas un individu qui a parcouru ces distances pour répandre le mouvement. D’ailleurs, si on cherchait à représenter cette diffusion, à l’heure des réseaux sociaux, il y a fort à parier que la carte serait une étoile autour de Paris/de la place de la République.

    • Nicolas Lambert dit :

      Bonjour Martin. Je reconnais que ces connexions sont en grande partie décoratives. Et effectivement, la donnée a vol d’oiseau a assez peu de sens. Néanmoins, j’ai voulu jouer de la proximité pour mettre en exergue le fait que le mouvement nuit debout, c’e n’est pas ce qui se passe place de la république mais qu’il s’agit d’un véritable maillage territorial en construction. Avec cette figuration linéaire, je souhaitais insister visuellement sur cette emprise territoriale à la façon d’une toile d’araignée. L’idée n’est pas du tout du suggérer des distances potentiellement parcourues par des individus. Evidemment, il y avait, il y avait 1000 autres façons de procéder. En tout cas, j’entends les remarques 🙂

      • Merci pour la réponse! Autre idée pour rendre cette question de la proximité bien visible mais moins interprétable comme une “relation” formelle entre les lieux : représenter cette carte sous la forme d’une “heatmap”, ou alors dessiner des cercles concentriques autour des points pour un rendu topographique en “courbes de niveau”. 😉

        • Nicolas Lambert dit :

          Oui mais de ce cas, le visage cartographique et sa symbolique ne seraient pas les mêmes. Mais de toute façon, on ne peut enfermer le réel dans une représentation unique. Toutes les cartes du mouvement sont les bienvenues 🙂

  5. qwerty dit :

    Une idée intéressante et de faire une carte montrant la diffusion des nuits debout, selon la date de la première nuit à tel ou tel endroit. Pour voir si, à la base, c’est un phénomène métropolitain et urbain, et comment ça infuse jusqu’à la campagne profonde !

  1. 28/04/2016

    […] la carte des rassemblements Nuit Debout en reproduisant la même méthodologie que précédemment (voir billet précédent). Je réponds par la même aux quelques critiques et remarques qui ont été émises concernant la […]

  2. 29/04/2016

    […] la carte des rassemblements Nuit Debout en reproduisant la même méthodologie que précédemment (voir billet précédent). Je réponds par la même aux quelques critiques et remarques qui ont été émises à propos […]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Rechercher dans OpenEdition Search

Vous allez être redirigé vers OpenEdition Search