#DatasprintAAF : évolution cartographique de la ville de Rennes à travers les permis de construire

Sommaire

  1. Objectif du projet
  2. Nettoyage de données

2. 1. Objectif

2. 2. En pratique : tutoriel OpenRefine

3. Géolocalisation automatique du fichier de données

3. 1. Préparer le fichier nettoyé issu d’OpenRefine

3.2. Géolocaliser automatiquement avec adresse.data.gouv.fr

4. Réalisation de la carte avec CartoDB


  1. Objectif du projet

Faire une carte de chaleur de l’évolution de Rennes à partir des inventaires de permis de construire (1908-1973).

Exemple de carte de chaleur : https://daieuxetdailleurs.cartodb.com/viz/d5783230-92b7-11e5-91a5-0ecfd53eb7d3/public_map

C’est également l’occasion de découvrir deux outils qui peuvent être très utile pour transformer, nettoyer et harmoniser des données, et les géolocaliser en masse.

Le but est de s’essayer au nettoyage d’un fichier en suivant le mode d’emploi ci-dessous (long mais très illustré pas à pas). La cerise sur le gateau, c’est qu’une fois qu’on est arrivé du nettoyage d’un premier fichier… on peut enregistrer le script de nettoyage et le réappliquer sur d’autres fichiers beaucoup plus rapidement !

Répartition du travail :

http://donnees.datasprint.forum2016.archivistes.org/FRAC035_rennes/ (rappel  identifiant : datasprintaaf / mot de passe ZZg2137)

[ ]    FRAC035_Rennes_743W_permis_construire.xml >

[ ]    FRAC035_Rennes_744W_permis_construire.xml >

[ ]    FRAC035_Rennes_745W_permis_construire.xml >

[ ]    FRAC035_Rennes_746W_permis_construire.xml  >

[ ]    FRAC035_Rennes_747W_permis_construire.xml >

[ ]    FRAC035_Rennes_748W_permis_construire.xml >

[ ]    FRAC035_Rennes_749W_permis_construire.xml >    

[ ]    FRAC035_Rennes_750W_permis_construire.xml >

[ ]    FRAC035_Rennes_759W_permis_construire.xml  >

[ ]    FRAC035_Rennes_760W_permis_construire.xml >

[ ]    FRAC035_Rennes_761W_permis_construire.xml >

[ ]    FRAC035_Rennes_762W_permis_construire.xml >  

[ ]    FRAC035_Rennes_763W_permis_construire.xml  >

[ ]    FRAC035_Rennes_764W_permis_construire.xml  >

[ ]    FRAC035_Rennes_765W_permis_construire.xml  >

[ ]    FRAC035_Rennes_766W_permis_construire.xml  >

[ ]    FRAC035_Rennes_767W_permis_construire.xml   >

[ ]    FRAC035_Rennes_769W_permis_construire.xml  >

[ ]    FRAC035_Rennes_770W_permis_construire.xml  >

[ ]    FRAC035_Rennes_772W_permis_construire.xml  >          

[ ]    FRAC035_Rennes_777W_permis_construire.xml  >

[ ]    FRAC035_Rennes_799W_permis_construire.xml  >        

  1. Nettoyage de données

2. 1. Objectif

Le but est de transformer les fichiers d’origine (fichiers XML - non EAD - issus du logiciel Avenio) en tableau structuré permettant de réaliser une carte de chaleur grâce à l’outil CartoDB.

Le tableau devra contenir a minima les colonnes suivantes : Adresse, Année (pour l’évolution dans le temps), Latitude et longitude pour la géolocalisation.

Les descriptions de permis de construire ont été faites, malgré quelques petites erreurs à corriger, sur le modèle suivant :

-PC 1234 - {demandeur}, 1 rue de Nantes (01/01/1910)

Il va donc falloir extraire à chaque fois l’adresse et l’année de cette analyse (informations en gras).

Partir de ça : (voir en grand : https://framapic.org/Esg5KdQgh4qt/vCC48VRS2W6g.jpg)

exemple_fichier_origine_xml.jpg

Pour aboutir à quelque chose dans ce genre (voir en grand : https://framapic.org/ec2xR4HkRV9D/IOWpufI1sFvZ.jpg)

exemple_fichier_final_geolocalise.jpg

2. 2. En pratique : tutoriel OpenRefine

Logiciel (en anglais) à installer : http://openrefine.org/download.html (kit Windows, ou autre selon le système d’exploitation, version GoogleRefine - pas les beta ; demande de mise à jour de Java possible).

Tutoriels rapides :

Pour ne pas prendre peur et avoir une première approche, regarder juste les vidéos. Puis faire pas à pas avec les captures d’écrans ci-dessous. Le but est surtout de comprendre le principe et d’essayer. Tout est enregistré et toute manipulation peut être annulée (Undo/Redo à gauche).

OpenRefine s’ouvre dans le navigateur Internet.

Il va d’abord permettre de transformer le fichier XML d’origine en tableau

>> Create Project


Pour plus de lisibilité, on peut renommer les colonnes en cliquant sur l’entête Edit column > Rename.

Ensuite il va s’agir d’effectuer des transformations en masse, en s’appuyant sur des séparateurs communs, puisque les descriptions de PC sont relativement normalisées. En gros c’est du “rechercher / remplacer par” en masse :

Fonction Edit Cells > “Split multi-valued cells” sur la base d’un séparateur récurrent -PC (puisque chaque description de PC commence ainsi)

 

Fonction Edit Column > Split into several Columns > Séparateur commun : },

(chaque adresse est précédée du nom du demandeur entre accolade, suivi d’une virgule : on veut donc créer une nouvelle colonne après le nom du demandeur)

Fonction Edit Column > Split into several Columns > Séparateur commun : [espace](

On va ensuite supprimer dans cette nouvelle colonne de date la parenthèse fermante restante pour avoir une date bien formatée : on va rechercher dans la colonne les parenthèses fermantes “)” et les remplacer par rien “”.

Fonction Edit Cells > Transform > Formule : value.replace (“)”,””)

On va ensuite pouvoir extraire uniquement l’année de cette colonne

value.toDate (‘DD/MM/yy’).toString(‘yyyy’)


Une fois que le fichier semble propre, il peut être exporter sous Excel (où il sera toujours possible de corriger d’ultimes coquilles) !

Une fois toutes ces manipulations de subdivision de ligne et de cellules effectuées une première fois, il y a un moyen rapide de les réappliquer sur d’autres fichiers semblables : toutes les transformations sont enregistrées par le logiciel, et le script de ces modifications peut être sauvegardé

 

Sélectionner tout le code dans la partie droite de la fenêtre et l’enregistrer dans un fichier Bloc-Note ou Traitement de texte.


3. Géolocalisation automatique du fichier de données

Il existe plusieurs outils permettant d’obtenir les coordonnées de géolocalisation (latitude et longitude) d’un fichier CSV. Dans le cadre de présent, et notamment parce qu’on a des numéros de rues qui demandent de la précision, nous allons utiliser un outil proposé par la plateforme de l’Etat : adresse.data.gouv.fr.

3. 1. Préparer le fichier nettoyé issu d’OpenRefine

Le fichier nettoyé dans OpenRefine doit être propre autant que possible, surtout la colonne contenant l’adresse :

N’hésitez pas à renommer les entêtes de colonne pour y voir clair !

Pour pouvoir minimiser le nombre d’erreurs de géolocalisation, il faut rajouter deux colonnes dans le fichier Excel :

Une fois terminé, enregistrez le fichier en CSV. Passer outre les mises en garde d’Excel.

3.2. Géolocaliser automatiquement avec adresse.data.gouv.fr

La plateforme est simple d’utilisation :

L’application sort très rapidement un fichier CSV contenant les données de géolocalisation.

Quelques petites précisions sur ce fichier :

Pour fignoler le fichier et repérer les lignes qui n’auraient pas été géolocalisés du fait de la subsistance de quelques coquilles, on peut filtrer les lignes sur la colonne “Result_type” = City :

Pour corriger les coordonnées géographiques erronées, mieux vaut utiliser un outil comme GPSFrance : http://www.gpsfrance.net/adresse-vers-coordonnees-gps plutôt que recharger le fichier complet dans l’outil adresse.data.gouv.fr

Le nettoyage et la complétion de données est quasi terminée ! C’est ce qui prend 80% du temps dans la création d’une visualisation...

Les différents fichiers sont ensuite rassemblés en un seul fichier.

Note : pour faire une carte animée dans le temps sur CartoDB, la colonne Date doit être sous le formation international suivant :

La colonne Date a donc été dupliquée, et fusionnée avec une colonne rajoutée contenant les informations manquantes (-01-01T00:00:00Z)

4. Réalisation de la carte avec CartoDB

Création d’un compte sur le site CartoDB qui permet de faire de nombreux types de cartes, statiques ou animées : www.cartodb.com

Un compte gratuit permet de faire pas mal de choses.

Les données sont affichées dans un tableau. CartoDB détecte automatiquement les éventuelles colonnes de latitude et longitude et crée une colonne qui va lui permettre de cartographier les données (colonne the_geom). S’il ne les trouve pas, il est possible de lui indiquer celles à choisir (cliquer sur Edit > Georeference.

Dans la version gratuite, CartoDB intègre la géolocalisation automatique de données, mais dans un nombre limité.

En cliquant en haut sur Map View, on bascule en vue Carte.

Le volet de droite permet de définir toute sorte de paramètres :

Dans le cadre des permis de construire, la carte de chaleur (heatmap) a été choisie, sous sa forme animée, avec comme critère chronologique la colonne “date_rectifiée”

Une fois terminée, la carte peut être visualisée, partagée (url directe), intégrée à un site Internet (code d’intégration dans une page HTML)

Et voilà le résultat :

 https://datasprintaaf.cartodb.com/viz/b6025a3c-f141-11e5-8814-0ecd1babdde5/map