💾 Archived View for unbon.cafe › lejun › posts › 20240207_conflationPointsRepere.gmi captured on 2024-08-18 at 17:41:50. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2024-03-21)
-=-=-=-=-=-=-
Les points de repères constituent un langage commun entre les membres d'un même organisation en charge d'un réseau routier[1]. La non-linéarité des itinéraires rend complexe la conversion en coordonnées GPS plus utilisées en général, ce qui conduit bien souvent à des difficultés de communication entre les personnes.
Comme contribution à cette problématique, et encourager le développement et test d'outils, j'ai injecté les points du réseau départemental du Doubs disponible en opendata[2]. J'ai procédé par conflation à plusieurs passes à l'image de ce que j'avais réalisé pour le stationnement vélo à Strasbourg[3], d'où le fait que le contenu est ici plus concis.
Le jeu de données comporte 4565 éléments au total. Chacun portant les clés :
À partir de ces données, il est possible de remplir les clés `ref`, `carriageway_ref`, `distance`, et ajouter l'attribut `highway=milestone`.
Que l'on soit anesthésiste ou cartographe ; toujours vérifier ce que l'on injecte.
Pour une raison qui m'échappe le jeu de données comporte non seulement les points de repères départementaux, mais également certains nationaux. Les éliminer est simple, une recherche de « N » dans les valeurs de `axe` suffit à les isoler.
Ensuite, il apparaît dans `plod` des valeurs fantaisistes telles que des fin de route (ce qui correspond probablement à un point localisant non matérialisé plutôt qu'un point de repère), ou des débuts (probablement un reliquat technique). On peut respectivement les éliminer en cherchant les valeurs « + » et « D ». Par mesure de précaution j'ai préféré remplacer les « D » par des « 0 » quitte à avoir des doublons à traiter par la suite.
Enfin, il est nécessaire d'ajouter un espace entre la lettre de catégorie et le numéro de la route. Autant les étapes précédentes sont réalisables sous JOSM, autant pour celle-ci j'ai préféré passer par sed[4]. Il m'a suffit d'appliquer au fichier la commande `sed -i s/D/"D "/g`.
Côté OpenStreetMap c'est très rapide, il m'a suffit de faire une requête Overpass des `highway=milestone` dans le Doubs.
[out:json][timeout:25]; {{geocodeArea:Doubs}}->.searchArea; nwr["highway"="milestone"](area.searchArea); out geom;
J'ai été moins assidu que pour le stationnement vélo, je rédige à posteriori et n'ai pas assuré un suivi des nombres à chaque étape.
Dans une première passe j'ai comparé les données OpenStreetMap et le jeu de données du Conseil Départemental. Pas tant pour l'appariemment, que pour mettre en évidence les éléments uniquement en référence. Ceux-ci sont potentiellement des doublons dûs à mon remplacement de « D » par « 0 ». J'ai ainsi procédé à une vérification manuelle des 400 éléments où j'ai fusionné les paires de nœuds là où nécessaire — Pour me faciliter la tâche j'ai utilisé l'extension Todo[5]. Une fois terminé, j'ai enregistré précieusement le fichier.
Par soucis de simplicité, j'ai opté pour une approche en deux passes. La première étant pour la clé `carriageway_ref` correspondant au code de point de repère complet avec indice de tronçon, et une seconde pour la clé `ref` sans cet indice.
Entre les deux passes j'ai de nouveau utilisé sed pour éliminer les suffixes tels que : Ax, Bx, Cx,… L'outil n'ayant pas l'air d'apprécier ma commande `sed -i s/"[0-9][A-Z][0-9]* \/>"/\/>/g`, j'avoue avoir procédé en plusieurs passes de remplacement. Sûrement une histoire d'options, j'en ai pas assez besoin pour aller chercher et mémoriser.
Enfin, et pour être tout à fait honnête, j'ai quand même eu quelques erreurs lors de la validation dûes à des valeurs étranges de `plod` que je ne saurais expliquer. J'ai simplement supprimé l'attribut, à défaut de quoi j'aurais probablement dû contacter le Conseil Départemental pour renseignements.
[1] Points de repère, LeJun 2024
[2] Points de repère, Conseil Départemental du Doubs 2018