Catégorie : Logiciels Libres
Affichages : 1866

Openstreetmap logoLe projet OpenStreetMap (OSM en abrégé) est LE projet de cartographie libre que tout le monde peut compléter à la façon de Wikipédia. Il est une alternative préférable à Google Maps qui avait un avantage historique (premier acteur sur ce type d'outils) mais qui présente beaucoup d'inconvénients (mises à jour, accès payant, monopole,...). D'ailleurs, les pouvoirs publics ne se sont pas trompés en proposant des données ouvertes s'appuyant sur OSM.
Voir cette autre page sur QGIS en lien avec les données géographiques.

Site officiel :

Liens utiles :

 

Comment intégrer des données ouvertes de l'Éducation nationale dans OSM ?

AVERTISSEMENT : l'intégration "automatique" des données est tolérée mais non recommandée dans OSM car cela peut causer pas mal de dégâts. À grands pouvoirs, grandes responsabilités ! Il y a des règles à suivre que vous trouverez ici : https://wiki.openstreetmap.org/wiki/FR:Code_de_conduite_des_modifications_automatis%C3%A9es

Voici une méthode qui vous permettra de compléter OSM en se servant des données ouvertes fournies par l'Éducation nationale. Je vais me servir des données fournies par ce site concernant l'Occitanie : https://data.occitanie.education.gouv.fr.

A- Récupérer les données
  1. Il faut se placer sur l'onglet "Données" et faire une recherche avec le mot "annuaire". Voici la page que l'on cherche : https://data.occitanie.education.gouv.fr/explore/dataset/fr-en-annuaire-education/
  2. On filtre les données qui nous intéressent en fonction des critères choisis dans la colonne de gauche. J'ai filtré par "nom_circonscription" pour n'avoir que les écoles de ma circonscription.
  3. On se place sur le sous-onglet "Export"
  4. On choisit ses données au format .csv (le séparateur est le point virgule).

    OSM data EN export
B- Traiter les données

Les données telles quelles proposées par l'Éducation nationale ne sont pas étiquetées pour être intégrées directement dans OSM. Il est donc obligatoire de les adapter en supprimant les colonnes qui ne nous intéressent pas, en les renommant avec les étiquettes (tags) d'OSM, en en rajoutant, en traduisant certaines valeurs... Bref, il y a pas mal de boulot. Mais il est possible d'automatiser tout cela avec LibreOffice Calc. J'ai donc créé un classeur Calc avec des macros pour faire ce nettoyage (voir fichier à télécharger en bas de page).

  1. On ouvre le fichier "Importation_csv_écoles_pour JOSM_v0-10.ods" et il faut activer les macros pour que ça fonctionne.
  2. On se place sur la feuille "Traitements" et on clique sur le bouton "Traitement des données".
  3. On choisit le fichier .csv qu'on a récupéré à l'étape A ci-dessus, on laisse les choix proposés par défaut dans la boîte de dialogue qui apparaît (UTF8, séparateur point virgule) et on clique sur le bouton "Valider".
  4. Quand le nettoyage a été réalisé, une fenêtre d'enregistrement pour le nouveau fichier .csv s'ouvre et on l'enregistre. C'est tout.
  5. On ferme le classeur et on peut alors travailler le fichier .csv dans LibreOffice Calc pour supprimer les lignes des écoles qui existent déjà dans OSM (impératif pour ne pas doublonner). Attention lors de l'enregistrement du fichier .csv modifié de bien régler les paramètres d'enregistrement du .csv. Pour cela il faut aller dans le menu "Fichier" -> "Enregistrer sous ..." (raccourci CTRL+Maj+S) et cocher la case "Éditer les paramètres du filtre" :
    OSM LibreOfficeCalc export csv
    On choisit pour l'encodage Unicode (UTF-8), comme séparateur de champ le point-virgule ; et comme séparateur de chaine ".
    OSM LibreOfficeCalc export csv filtreSi on ne fait pas ces réglages, on ne pourra pas intégrer le .csv plus tard.

Remarque : le classeur .ods proposé et les macros qu'il contient sont adapté⋅e⋅s aux données obtenues sur la page https://data.occitanie.education.gouv.fr/explore/dataset/fr-en-annuaire-education/. Mais il est tout à fait possible de le ré-utiliser pour d'autres données à condition de modifier les macros...

C- Intégrer les données traitées dans OSM via JOSM

JOSM est une application que l'on installe sur son ordinateur permettant de travailler sur les données à intégrer, corriger dans OSM. Il faut lui adjoindre le plugin "OpenData" : https://wiki.openstreetmap.org/wiki/FR:JOSM/Plugins/OpenData.
Remarque : j'ai découvert après coup qu'il était possible d'insérer des données au format .ods... ce qui éviterait de travailler avec les fichiers .csv par la suite.

  1. On ouvre JOSM et on va dans le menu "Fichier" -> "Ouvrir". On choisit le fichier .csv qu'on a obtenu dans l'étape B précédente.
  2. On laisse le choix par défaut concernant la projection : "WGS 84" avec ESPG:4326 (ne pas utiliser l'ESPG qui est indiqué dans les données de l'EN qui est l'ESPG:2154 correspondant à Lambert 3 sinon les points se retrouveront dans l'océan Atlantique 😋). On valide.
  3. Les points des écoles apparaissent dans JOSM et on peut vérifier que les tags et attributs sont corrects.
  4. Pour pouvoir envoyer vers les serveurs OSM, il est nécessaire que les données aient été modifiées dans JOSM... Du coup, j'ai sélectionné tous les points (touches CTRL+A) et modifié la valeur de l'étiquette "source". Cela a pour effet d'activer le bouton avec la flèche verte vers le haut "Envoyer les modifications du calque actif (Ctrl+Maj+haut)".
  5. On envoie vers OSM en appuyant sur ce bouton. Un message de dissuasion apparaît ; rappellez-vous "Grands pouvoirs, grandes responsabilités". Vous continuez et vous n'oubliez surtout pas d'indiquer ni l'objet de la modification ni la source.

Remarque : attention, il peut arriver que certaines données de l'Éducation nationale soient incorrectes notamment l'emplacement géographique. Il faudra donc déplacer certains points après l'intégration.

D- Récupérer des données déjà existantes dans OSM sur JOSM

Info donnée par Arnaud Champollion (sur forum Tchap OpenStreetMap).

Pour intégrer des données, il est possible dans JOSM de ne récupérer qu'un certain type de données. De toute façon si on devait récupérer toutes les données vu leur quantité, on ne pourrait travailler que sur une très petite zone (d'autant que JOSM empêche de télécharger toutes les données d'une zone si celle-ci est trop grande).
Pour cela, il faut élaborer une requête qu'on pourra construire via le site https://overpass-turbo.eu/.

  1. On va dans le menu "Fichier" -> "Télécharger les données...(Ctrl+Maj+Bas) ou on clique sur le bouton avec la flèche verte vers le bas.
  2. On clique sur le 2e onglet "Télécharger depuis l'API Overpass" :

    OSM JOSM API Overpass

  3. On peut alors coller la requête obtenue sur le site Overpass (ou en créer une à l'aide de l'assistant directement dans JOSM). Dans mon cas la requête principale s'appuie sur amenity=school.
  4. On peut aussi délimiter une zone particulière pour n'avoir que les données de cette zone.
  5. Si l'on veut exclure les données de l'envoi sur OSM comme les écoles déjà existantes, on les sélectionne et on appuie sur le raccourci CTRL+V.