Le blog de nlehuby

mai 16, 2014

Ordre des arrêts de bus dans OSM

Oui, encore un article sur les lignes de bus dans OSM ! Promis, après j'arrête. D'ailleurs, je fais faire très court !

Toujours dans l'idée d'enrichir et d'améliorer la qualité des données OSM à l'aide des données opendata disponibles dans navitia, voici un quick hack, facile et, si j'ose dire, à la portée de n'importe qui :p

Prenons, par exemple, la ligne 325 de la RATP : c'est une ligne très simple, sans fourche ou boucle ou autres joyeusetés.

Dans OSM, elle est plutôt pas mal cartographiée, on a l'essentiel des routes et une grande partie des arrêts.

Mais, en utilisant sketch-line (l'outil de génération de thermomètre de ligne à partir des données OSM), le résultat est ... décevant ...

image : bus 325 dans le désordre

source : http://overpass-api.de/api/sketch-line?network=RATP&ref=325&style=paris%C2%A0

Déjà, OSM n'arrive même pas clairement à déterminer son origine et sa destination ... Ensuite, ses parcours ont l'air assez chaotiques.

C'est un cas typique où les arrêts sont mal ordonnés dans les relations (car oui, les relations sont ordonnées ! relisez la partie théorique de mon article sur la carto d'une ligne de bus si vous avez un doute).

Comment remédier à tout ça et avoir nettoyer la donnée dans OSM ?

En utilisant navitia.io évidemment :p

Pas de script cette fois-ci, juste un appel pour récupérer l'ordre des dessertes :

image : bus 325 dans navitia.io

Puis, il suffit de regarder ce qu'il y a dans OSM et de corriger si nécessaire dans JOSM (car l'éditeur iD ne permet pas de modifier l'ordre des éléments dans une relation) :

image : bus 325 dans le désordre

On peut aussi en profiter pour corriger les fautes dans les noms (Brunesseau ou Bruneseau ? École vétérinaire de Maisons Alfort ou Maisons Alfort école vétérinaire ? etc)

C'est un peu long mais pas difficile. 

Et assez rapidement, on se retrouve avec un thermomètre de ligne tout beau tout propre, et surtout qui reflète nettement mieux la réalité !

image : bus 325 tout bien

avril 29, 2014

Script d’intégration des arrêts de bus dans OSM à partir de navitia.io

Vous l'aurez compris, mon TOC (trouble obsessionnel cartographique) du moment, c'est les arrêts de bus !

Et en travaillant sur le projet KartoKartier, avec mes collègues, dans le cadre du concours Cartoviz, je me suis rendue compte qu'il y avait une belle marge de manoeuvre pour améliorer la qualité des données OSM pour les arrêts de bus : j'en parlais ici.

C'est ainsi que je me suis mise en tête de faire un script qui se nourrit de l'opendata RATP  via l'API navitia.io, pour enrichir les données OSM en ajoutant, pour commencer, les noms des arrêts manquants.

Ce script est disponible sur github, et librement réutilisable.

Que fait ce script ?

Tout d’abord, il récupère la liste de tous les arrêts de bus, situé dans la ville de Paris (par exemple), qui n’ont pas de nom renseigné.

J'ai commencé par l'utiliser sur des villes plus proches de la mienne, voici quelques métriques :

  • nombre d’arrêts sans nom à Paris : 267
  • nombre d’arrêts sans nom à Boissy-Saint-Léger : 21
  • nombre d’arrêts sans nom à Sucy-en-Brie : 38
  • nombre d’arrêts sans nom à Créteil : 25
  • nombre d’arrêts sans nom à Bonneuil-sur-Marne : 3

Ensuite, pour chacun de ces arrêts, j’appelle navitia.io (une API pour les transports en commun, développée par Kisio Digital (anciennement Canal TP), et qui s'alimente, entre autres, des données opendata RATP) et je lui demande de me retourner les points d’arrêts à proximité des coordonnées du point OSM.

Les données opendata de la RATP, qui sont utilisées dans navitia.io ont une géolocalisation peu précise, donc en faisant varier la distance d’accroche, on obtient des résultats plus ou moins pertinents :

Métriques sur Paris :

  • Nombre d’arrêts OSM ayant un arrêt RATP à moins de 100 mètres : 249
  • Nombre d’arrêts OSM ayant un arrêt RATP à moins de 50 mètres : 221
  • Nombre d’arrêts OSM ayant un arrêt RATP à moins de 20 mètres : 145
  • Nombre d’arrêts OSM ayant un arrêt RATP à moins de 10 mètres : 74

Sur ces arrêts, j’ai choisi, dans un premier temps, de ne conserver que
ceux qui ont un unique arrêt RATP (ou plusieurs arrêts avec le même nom)
ce sont les plus faciles à intégrer.

Pour ceux-là, je crée un fichier JOSM avec le nom pré-rempli.

Il n’y a plus alors qu’à ouvrir le fichier dans JOSM, à charger les données existantes autour du point, à vérifier que les infos sont cohérentes, puis à envoyer la modification dans OSM.

image : retour

exemple de retour du script

image : retour du script sur Boissy

Ci-dessus, le retour du script sur Boissy-St-Léger : il n'y a un seul arrêt RATP (l'arrêt noctilien que j'ai cartographié dans un article précédent), et il a déjà un nom !

Dans la pratique, l’intégration :

J’ai choisi d’y aller itérativement, et de commencer par les moins ambigus, donc ceux ayant un arrêt RATP très proche. J'ai aussi choisi de commencer par ceux proches de chez moi, pour pouvoir faire une vérification sur le terrain en cas de doute.

Les premiers arrêts que j'ai intégrés étaient parfaits : c'est le cas typique

  • où navitia a trouvé une correspondance entre mon arrêt sans nom et les données opendata
  • où il n'y a que deux arrêts de bus dans tout le quartier, placé chacun d'un côté de la route (le sens aller et le sens retour)
  • le second arrêt a déjà un nom, et c'est le même que celui trouvé par navitia
  • éventuellement, mon arrêt a un tag name:RATP rempli, et concordant (mais il a peut-être été aussi généré par un script, je ne sais pas si c'est vraiment une mesure de fiabilité)

Là, on peut intégrer les yeux fermés :)

Malheureusement, c'est loin de représenter la majorité des cas ...

À vrai dire, j'ai même trouvé une bonne poignée d'exemples carrément invalides (c'est le cas de le dire) : par exemple, cet arrêt

image : cet arrêt

Il est situé à 16 mètres d’un arrêt de bus que l’opendata RATP appelle Invalides.

Mais, dans les données déjà présentes sur OSM, il est indiqué que c’est un arrêt desservi par les cars Air France.

En conséquence, navitia, alimenté par des données opendata RATP et SNCF (et pas Air France) n’est pas une source fiable pour me fournir le nom de l’arret.

Ça ne veut pas dire que l'arrêt ne s'appelle pas Invalides, mais à moins d'aller voir sur place, je ne peux pas en être certaine ...

On l'oublie souvent, mais il n'y a pas que la RATP comme opérateur de transport, même à Paris !

J’ai même découvert des opérateurs de transport que je ne connaissais pas :

image : opérateur

Enfin, il ya aussi des exceptions géographiques étranges : je pense par exemple aux arrêts de bus autour de Porte Dorée : on trouve deux arrêts, chacun d'un côté de la route, et il y en a un des deux qui ne s'appelle pas Porte Dorée !

image : cet arrêt

Bref, on aurait pu croire qu’on pouvait tout importer automatiquement, mais en creusant un peu, on se rend compte que souvent, il y a des petites subtilités et qu’une vérification humaine est effectivement nécessaire. On comprend ainsi beaucoup mieux les réticences de la communauté OSM face aux imports massif de données d’autres sources (c'est d'ailleurs pour ça qu'on parle ici d'intégration, et non d'import).

État des lieux :

En bref ... aujourd'hui, j'ai intégré tous les arrêts RATP des villes proches de chez moi (Boissy, Sucy, Bonneil, Créteil). Mais malheureusement, ils ne représentent pas la majorité des arrêts de bus de ces villes, qui sont massivement desservies par d'autres compagnies, dont les données de transport ne sont pas en opendata, et donc pas dans navitia.io !

Sur Paris, il m'en reste aujourd'hui moins de 100 !

Et après ?

Les possibilités sont multiples : par exemple, l'intégration dans Osmose pourrait permettre à d'autres contributeurs de vérifier avant d'envoyer les modifications dans OSM (comme ce qui est fait pour les données opendata des écoles par exemple).

Il serait intéressant également de regarder les rejets de mon script, comme les arrêts OSM ayant plusieurs arrêts opendata (avec un nom différent) à proximité : sur ceux-là, une vérification sur le terrain s'impose pour choisir entre les possibilités.

Ensuite, pourquoi pas réfléchir à l'intégration des lignes de bus RATP à partir de navitia.io !

De plus, OSM est un projet international, et navitia aussi, donc le modèle pourrait s'exporter sans soucis ...

Mais j'attends surtout l’opendata des données transports sur toute l’Île-de-France, pour compléter les villes près de chez moi !

EDIT 2015 : c'est fait, les données de toute l'Île-de-France sont librement accessibles

EDIT 2017 : mise à jour de quelques liens cassés

avril 15, 2014

Retour d'expérience - cartographie OSM de quelques lignes de bus

Bon, maintenant qu’on a indiqué les lignes qui s’arrêtaient à la gare de Boissy (ici, puis ), pourquoi ne pas aller plus loin et cartographier carrément les lignes entières ?!

Je me suis livrée à cette expérience sur les lignes que j’emprunte occasionnellement, notamment la ligne J1, du transporteur STRAV, puis des portions des lignes 12 et 23 de l’opérateur SETRA.

Avant-après, ligne J1

image : cet arrêt

image : cet arrêt

Première étape : le terrain

La première étape est similaire à précédemment, ça consiste à monter dans le bus et à enregistrer une trace GPS.

La partie difficile à ce niveau est de bien noter les bus_stop (et éventuellement leurs caractéristiques : banc, abri), en particulier si l’arrêt n’est pas demandé par les voyageurs qui sont dans le bus …

De retour sur son PC, on peut attaquer la saisie :

  • Vérifier si des relations correspondant aux lignes et aux parcours existent déjà

    • Si non, les créer
    • Puis, pas forcément dans cet ordre :

    • Créer les arrêts de bus
    • Ajouter les arrêts de bus aux relations
    • Ajouter les chemins empruntés aux relations

Deuxième étape : la création des relations

Avant de créer quoique ce soit, il faut vérifier si ça n’existe pas déjà !

Par une petite recherche dans le wiki tout d'abord

Par une petite recherche dans les données OSM :

Dans overpass-turbo, je demande toutes les relations, qui ont comme tag network = SITUS (par exemple)

image : overpass

En l’occurrence, je les ai déjà créés précédemment donc on peut sauter cette étape ;)

Mais j’ai été étonnée de trouver des lignes du réseau SITUS déjà cartographiée !

Troisième étape : la saisie des arrêts et l’ajout à la relation

Je commence par saisir les arrêts. Certains existent déjà, d’autres non.

Puis comme précédemment, je les ajoute à mes relations.

Là, il y a des petites choses amusantes : parfois il y a déjà un arrêt qui existe, mais pas exactement au même endroit : comment savoir si c’est le même déjà existant (et dans ce cas, s’il est bien positionné) ou s’il y en a plusieurs assez proches ? Dans ce cas, un second passage sur le terrain s’impose !

Certains arrêts ont déjà un tag local_ref = J1, ce qui donne le rendu suivant sur OSM avec la couche de calque Transports :

image : calque Transports

Sur la ligne 23, j’ai également rencontré la problématique suivante :

Les arrêts de bus n’étaient pas marqués comme des arrêts de bus mais comme des terminaux permettant d’acheter des ticketsamenity = vending_machine (ce qui est effectivement le cas, ce sont des arrêts de bus à haut niveau de service :p).

J’ai voulu ajouter juste le tag précisant que c’est un arrêt de bus (highway = bus_stop).

Mais Osmose (un outil de détection d'erreurs et d'incohérences dans les données OSM), remonte ceci comme une erreur :

image : osmose

J’ai donc fait dû faire deux points très proches, l’un portant la vente de ticket et l’autre l’arrêt de bus.

À part ces quelques cas particuliers très locaux, c’est une manipulation assez rébarbative, mais assez simple.

Quoique la ligne J1 m’a donné un peu de fil à retordre, car elle est un peu spéciale :

  • C’est une ligne circulaire (Villeneuve-Saint-Georges vers Villeneuve-Saint-Georges en passant par Boissy-Saint-Léger)
  • Et en forme de 8 (un arrêt est desservi plusieurs fois !)
  • Avec un unique sens (le sens retour existe, mais c’est en fait la ligne J2)
  • Mais avec quand même des parcours spéciaux, car il y a des arrêts scolaires qui ne sont desservis qu’une à deux fois par jour !

Si j’avais su, j’aurais commencé par une plus « normale » !

image : J1

Ça m’a au moins permis de résoudre un mystère : habituellement, je ne le prenais que pour quelques arrêts, mais effectivement, je m’étais souvent étonnée du fait que la girouette du bus indiquait parfois Boissy-Saint-Léger, et parfois Villeneuve Saint-Georges, mais que les annonces sonores dans le bus disaient toujours « Ligne J1 en direction de gare de Villeneuve Saint-Georges »…

Quatrième étape : l’ajout des routes dans la relation

Ceci fait, il ne reste plus qu’à ajouter les routes empruntées par le bus dans les relations.

Là, il n’y a qu’une petite subtilité (qu’on ne peut apprécier qu’au moment de l’étape 5) :

Dans le cas où le bus tourne avant la fin de la route telle qu’elle est tracée sur OSM, ça donne des choses inexactes et plutôt moches en terme de rendu :

image : rendu tout moche

La solution est ici de couper le chemin (là, j’avoue, je n’ai pas trouvé toute seule, j’ai demandé un peu d’aide à la communauté OSM) :

Dans JOSM, quand je survole la relation, les éléments se mettent en surbrillance :

image : capture d'écran de JOSM

Ensuite, il suffit de cliquer à l’endroit où on veut tronçonner le chemin, donc sur le point de séparation, puis de taper P (ou sélectionner Données >  Couper le chemin)

image : capture d'écran de JOSM

J’ai maintenant deux chemins (sur la capture, j’en ai sélectionné juste un, ce qui n’était pas possible avant) :

image : capture d'écran de JOSM

Puis, il ne reste plus qu’à modifier la relation pour supprimer le bout de chemin qui ne devrait pas y être :

image : capture d'écran de JOSM

Vous remarquerez au passage dans JOSM que le fait de cliquer sur un membre le met en surbrillance sur la carte, ce qui permet de ne pas supprimer le mauvais ;)

Ne pas oublier d’enregistrer, sinon, il faudra le refaire trois fois …

Voilà le résultat final :

image : résultat final

Cinquième étape : ~~admirer~~ vérifier son travail !

Sur le wiki, les liens du modèle (que j'ai déjà évoqué dans le premier article) peuvent être utiles pour vérifier son travail :

image : wiki

La première vérification, la plus immédiate, est l’affichage de la relation dans OSM (c’est le premier lien du modèle inséré dans le wiki) :

image : wiki

Exemple avec la ligne 12 (je n’ai cartographié que la moitié, le reste était déjà présent)

Le dernier lien du modèle est également très intéressant, il reconstruit, à partir des données OSM, le thermomètre de la ligne :

image : thermo overpass

Exemple sur la ligne 12

Et enfin, il y a le rendu de la couche transport, mais c’est moins immédiat, car il est mis à jour sur une base régulière plus espacée.

Voilà pour ce petit retour d’expérience sur la cartographie d’une ligne de bus, qui j’espère suscitera des vocations ;)

avril 04, 2014

Retour d'expérience - cartographie OSM d'une gare routière (2 / 2)

Précédemment, je vous ai traîné derrière moi dans ma cartographie OSM de la gare routière de Boissy-Saint-Léger.

Pour le moment, nous avons ajouté les arrêts de bus et quelques objets simples. Le but est maintenant d'indiquer quelles lignes de bus desservent ces différents arrêts.

Tout d'abord, un petit rappel théorique (très court, très simple, promis !) :

EDIT 2017 : j'ai depuis rédigé un article détaillé sur comment bien cartographier des lignes de bus, n'hésitez pas à consulter cet article plutôt

Une ligne de bus est composée de différents parcours (notamment le parcours aller, et le parcours retour, et parfois d’autres).

On retrouve cette hiérarchie dans OSM.

La ligne est un objet “relation” dans OSM. Il possède les attributs suivants :

  • type = route_master
  • route = bus
  • puis des attributs qui la décrivent, comme from, to, ref, operator, etc

Les membres de cette relation sont les parcours de la ligne, qui sont eux même des objets « relations », avec les attributs suivants :

  • type = route
  • route = bus
  • et des attributs qui la décrivent

image : une relation

exemple avec une ligne que je cartographie plus tard (dans l’article suivant :p).

Cette relation regroupe

  • les arrêts de bus qui sont desservis
  • les routes (objets de type way) empruntés par le bus

Et dernière subtilité, que j'ai justement découverte pendant que je cartographiais les lignes de bus qui passent à Boissy : les relations sont ordonnées, il faut donc mettre les arrêts de bus dans l'ordre !

Enfin, en cas de doute, le wiki fait foi : https://wiki.openstreetmap.org/wiki/FR:Key:public_transport

Donc en bref, on a une relation master, qui contient des relations, qui elles-mêmes contiennent des arrêts de bus et des routes.

Passons maintenant à la pratique !

Je commence par le plus évident avec la ligne de Noctilien : le réseau RATP est énormément plus avancé en terme de saisie dans OSM que le “réseau OPTILE”, donc j'imagine que la relation existe déjà.

Un peu tour sur le wiki et bingo  : http://wiki.openstreetmap.org/wiki/WikiProject_France/Noctilien !

La relation "master" de la ligne existe, et il y a également une relation pour le sens Paris-Boissy. Il me faudra créer uniquement le sens Boissy-Paris.

Là encore, commençons par le plus simple : ajouter mon arrêt de bus à la relation existante, c'est-à-dire indiquer que mon arrêt permet d'emprunter la ligne de Noctilien dans le sens Paris-Boissy.

J'ouvre l'éditeur iD car je sais qu'on peut ajouter assez facilement une relation sur un nœud avec. Malheureusement, là, c'est la déconvenue : ma relation existante ne remonte pas dans la liste des relations disponibles donc impossible de faire quoique ce soit …

J'essaye avec JOSM : je re-télécharge ma zone autour de la gare. Je télécharge ensuite ma relation.

Puis, je sélectionne l'arrêt à ajouter et je clique sur "modifier la relation". Là, on me propose d'ajouter l'objet sélectionné (l'arrêt de bus) à la relation :

image : josm

Au moment d'envoyer ça sur OSM, j'ai plein d'avertissements que je ne comprends pas :(

Je ne pense pas avoir fait d'erreurs, je valide quand même et je vais regarder dans iD : tout va bien

image : id

Bon, ce n'était pas super intuitif, mais j'ai trouvé toute seule, donc je m'en tire à bon compte...

J'ai fait le sens aller (l'arrêt est sur la ligne Noctilien N32, dans le sens  Paris – Boissy), il reste donc le sens retour. Il va donc falloir que je crée la relation du sens retour, car elle n'existe pas encore !

Créer une relation est étonnamment facile dans iD, c'est fait en l'espace de quelques secondes.

En revanche, pas moyen de trouver comment assigner une relation parente (pour dire que ma nouvelle relation N32 Boissy - Paris appartient à la relation "master" ligne N32).

Retour dans JOSM donc !

Je mets à jour les données OSM (pour ne pas avoir de conflit au moment où je vais pousser mes modifications), je sélectionne ma relation fille et je clique sur modifier ma relation parente, j'ajoute et j'envoie à OSM.

Petit tour dans ID sur ma relation parente pour vérifier :

image : id

J'en profite pour faire un tour sur le wiki et indiquer que j'ai créé la relation sens retour.

J'ai galéré plus que je ne l'imaginais, mais maintenant que j'ai la méthode, l'affaire est dans le sac, il ne reste plus qu'à dupliquer !

Un peu de méthode, tant que je suis sur le wiki, je vais commencer par là.

Je créée donc la page de wiki du réseau SETRA : https://wiki.openstreetmap.org/wiki/WikiProject_France/Bus_SETRA

Je duplique le contenu depuis une autre page décrivant un réseau de bus de banlieue et je modifie uniquement ce qui m'intéresse, à savoir :

  • le paragraphe descriptif sur les attributs : il faut indiquer le bon réseau (network) et le bon transporteur(operator)
  • le gros tableau qui contient les relations des différentes lignes.

Je n'ai que trois lignes, c'est donc assez rapide.

J'avoue que je suis bluffée par ce que je vois dans le tableau décrivant les lignes (et je ne suis pas mécontente d'avoir déjà quelques bases sur la syntaxe MediaWiki, car sinon, comprendre et éditer le tableau pourrait représenter une difficulté supplémentaire ...)

image : wiki

Il y a des outils de saisie assez malins :

Si j'écris {{Relation|3315207|Brie-comte-Robert Piscine → Créteil Préfécture|tools=no}}, cela va afficher un lien vers la relation correspondante.

Le modèle BrowseLine permet d'afficher en plus quelques liens vers des outils de contrôles des relations. Je vous en présenterai quelques-uns plus en détail dans l’article suivant.

Bref, le wiki est donc particulièrement adapté pour consigner mon avancement.

Une fois ma page initialisée, je peux créer mes relations.

Je lance iD, je sélectionne un arrêt, je l'ajoute à une nouvelle relation. Je crée ma nouvelle relation bus X, sens 1. En revanche, je n'ai pas trouvé comment ordonner les membres d'une relation dans iD, donc un passage par JOSM s'impose derrière ...

J'envoie sur OSM et je rajoute l'identifiant de cette nouvelle relation dans le wiki :

image : wiki

Magnifique !

Bon, je laisse tomber iD et  je passe sur JOSM pour aller un peu plus vite dans la création de mes différentes relations (route master, puis sens 1 et sens 2).

Ultime étape :

Ajouter la voie de bus de la gare routière à mes différentes relations (pour indiquer les bus de toutes ces lignes empruntent cette voie).

C’est assez simple, il suffit de sélectionner ma route et de l’ajouter à ma relation, exactement comme pour les arrêts de bus.

Et voilà, OSM sait tout sur la gare routière de Boissy :)

Mais il serait frustrant de s'arrêter là, j'ai maintenant tout ce qu'il faut pour cartographier entièrement ces lignes de bus que je viens de créer : ce sera l'objet de l'article suivant !

mars 24, 2014

Retour d'expérience - cartographie OSM d'une gare routière (1 / 2)

Je trouve qu'il y a étonnamment peu de récit de ce genre sur le net, donc aujourd'hui, je vous propose un retour d’expérience sur la cartographie, dans OSM, d'une gare routière, puis des lignes de bus qui y passent.

Premier article : une gare routière et ses arrêts de bus

Deuxième article : une gare routière et quelles lignes s'y arrêtent

Troisième article : on prend le bus à la gare de routière, et on cartographie carrément toute la ligne

Ceci n'est pas un tutoriel, mais uniquement un retour d'expérience !

Un peu de contexte tout d'abord : Boissy-Saint-Léger, ville du Val-de-Marne (94) possède un pôle multimodal : on y retrouve, entre autres, la gare RER (terminus de l'axe sud-est du RER A) et une gare routière où passent près d'une dizaine de lignes de bus urbaines et interurbaines, opérées par les transporteurs RATP, STRAV, SITUS et SETRA.

Avant mon intervention, la gare routière n'est représentée que par un unique arrêt de bus.

Autant dire qu'il y a du boulot ...

image : sur le fond OSM

Étape 1 : le terrain

Même si je passe tous les jours à cet endroit, je ne vais pas le cartographier de tête … Donc un repérage sur le terrain s'impose.

Là, plusieurs méthodes existent : certains prennent énormément de photos ou des vidéos panoramiques, certains notent tout sur papier, etc

Pour cette fois, j'opte pour la trace GPS.

J'utilise pour cela l'application OSMTracker for Android TM de mon smartphone low cost :

  • J’active le GPS de mon téléphone, je lance l'appli, je démarre une nouvelle trace.
  • J'attends un peu que le GPS soit prêt et m'offre une géolocalisation suffisamment précise, et je commence à parcourir la gare routière.
  • Lorsque je passe devant un élément que je veux ajouter dans OSM, je l'indique sur l'application : arrêt de bus, poubelle, banc, horloge, etc

Premier arrêt de bus, ok, tout va bien, je me mets une note : c'est le bus J2 qui s'arrête là.

Deuxième arrêt, ok, c'est la ligne 5. etc

Aïe, quatrième arrêt, pas la moindre indication : un abribus sans rien écrit dessus. En terme d'info voyageur et de signalétique, on peut mieux faire !

Mais c'est là qu'intervient la fameuse connaissance du terrain (local knowledge) tant vantée des défenseurs d'OSM : comme je passe à cet endroit tous les jours, je sais que c'est l'arrêt desservi par la ligne 12. Je me note mentalement de regarder demain le sens, car je n'ai jamais pris cette ligne, je ne sais donc pas dans quelle direction va le bus qui s'arrête là...

Je continue, jusqu'au huitième arrêt de bus, et j'arrête mon enregistrement GPS ! Ça tombe bien, les gens commencent à me regarder bizarrement en se demandant ce que je fais …

Étape 2 : la saisie “facile”

De retour chez moi, je transfère la trace GPS sur mon ordinateur.

Je lance ensuite l'éditeur de données JOSM, qui est particulièrement adapté à ce type de saisie.

Je télécharge les données OSM déjà existantes pour les alentours de la gare, je charge ma trace qui s'affiche alors également à l'écran, puis j'affiche l'image satellite Bing, histoire d'avoir quelques repères visuels.

C'est assez déroutant, les images satellite au zoom max sont très anciennes et ne correspondent pas du tout à l'état actuel de la gare routière (le pôle multimodal a été refait à neuf en 2009), tandis qu'à un zoom moins important, on a bien notre gare routière telle que je la vois tous les jours … Mais il suffit de ne pas trop zoomer pour retrouver ses petits.

C'est parti !

image : jOSM

Je commence par ce qui me tient le plus à cœur : les arrêts de bus !

En me basant sur l'image satellite (l'ombre des abribus est très visible) et sur ce que j'ai récupéré avec mon smartphone, j'ajoute mon premier arrêt de bus.

highway = bus_stop

Il est abrité et possède un banc donc j'ajoute les attributs

shelter = yes

bench = yes

Puis là, CTRL+C, CTRL+V pour les 7 autres car ils ont tous les mêmes caractéristiques.

Pour que ça soit complet, il faudrait que j'indique quelles lignes s'arrêtent à ces abris, mais c'est une étape légèrement plus délicate, qui fera l'objet d'une seconde saisie (dans l'article suivant).

À la place, j'ajoute un attribut note avec comme valeur les lignes, ainsi que les directions quand je les ai.

J'ai également noté que les abribus avaient tous un panneau indiquant un nom de quai. Un peu étrange comme terminologie mais soit … J'ajoute donc également un attribut ref avec comme valeur le nom du quai (de A à I)

Ensuite, j'ajoute les deux bancs qui se situent sur les côtés (amenity = bench) ainsi que l'horloge (amenity = clock).

Il y a aussi deux poubelles, mais pas moyen de me rappeler de l'attribut à utiliser.

Je commence à faire des recherches dans le wiki, mais ça n'est pas immédiat.

Heureusement, je me souviens que j'ai mappé il y a quelques mois une poubelle dans une rue à proximité de la gare. Je vérifie le valeur de l'attribut (amenity = waste_basket), et voilà !

Il ne reste plus qu'à envoyer tout ça dans OSM.

Quelques instants plus tard, je retourne sur la carte pour voir un peu ce que ça donne. C'est finalement un peu décevant : au lieu d'un unique picto pour représenter la gare routière, on a maintenant 7 pictos tous serrés (le huitième ne s'affiche qu'au zoom max car il est trop proche de la sanisette …) et un peu moches. Mais bon, il parait qu'”on ne cartographie pas pour le rendu” !

image : rendu

Étape 3 : retour sur le terrain et corrections en conséquence

Le lendemain, je regarde avec un peu plus d'attention le ballet des bus pour noter où s'arrêtent ceux que je n'ai jamais pris.

Je retrouve ainsi les directions de mon bus 12 et surprise : un arrêt que je n'avais encore jamais remarqué !

C'est un simple poteau, là où les autres sont des abris, et le bus 6 (dont je n'avais jamais entendu parler avant ...) s'y arrête.

Hop hop hop une seconde saisie pour ajouter tout ça et le tour est joué !

J'ajoute également la route empruntée par le bus (qui est une voie réservée aux bus), et voilà, on a quelque chose d'assez proche de la réalité :

image : rendu final

La suite, dans l’article suivant !

← Previous Next → Page 7 of 9