Le blog de nlehuby

sept. 01, 2020

Du GTFS à OpenStreetMap

Votre réseau de bus préféré a publié ses données en open data en GTFS et vous voulez les utiliser pour vérifier la complétude d'OpenStreetMap et voir ce qui peut être amélioré ? Voici quelques conseils pour se lancer !

GTFS WTF ?

Le GTFS est un format fréquemment utilisé pour décrire des données de transport. Il permet de définir les caractéristiques et la géographie du réseau, ainsi que ses horaires. Ce format est largement utilisé pour alimenter les logiciels et services de calcul d'itinéraire et d'information voyageur, mais aussi les outils de planification et d'amélioration du réseau. C'est donc tout naturellement sous cette forme que vous pourrez trouver les données des lignes et arrêts de bus publiées par votre opérateur ou collectivité.

Qu'est-ce que le GTFS ? Image CC-BY-SA Jungle Bus, issue de l'infographie https://junglebus.io/osm-puis-gtfs-ou-gtfs-puis-osm/

Un fichier GTFS se présente sous la forme d'un fichier zip contenant tout un tas de fichiers texte. Malgré leur extension, il s'agit en réalité de fichiers csv qui peuvent être ouverts dans votre logiciel de tableur favori (LibreOffice Calc, Excel, etc).
La documentation décrivant le contenu des fichiers, le détail des colonnes et comment les lier entre elles est disponible en ligne.

Afin de se faciliter la tâche, j'utiliserai ici non pas le fichier GTFS directement, mais un export réalisé avec l'outil GTFS geo. Il permet en effet de transformer un fichier GTFS en un ensemble de fichiers géographiques, plus adaptés pour notre mission du jour et qui s'importeront aisément dans la plupart des outils d'éditions d'OpenStreetMap.

capture d'écran de l'interface de GTFS geo

NB : Comme je le dis souvent, open data ne veut pas dire open bar, donc avant de commencer à modifier quoique ce soit, vérifiez que vous pouvez utiliser ces données pour enrichir OpenStreetMap.

étape 1 : les arrêts

L'étape la plus simple à réaliser est une comparaison des arrêts.

Ils sont dans le fichier stops.csv. Pour obtenir un résultat similaire à partir du GTFS, il faut changer l'extension du fichier en csv, renommer les colonnes stop_lat et stop_lon en latitude et longitude, et filtrer le contenu pour ne conserver que ceux qui ont un location_type = 0.

Je vous conseille de l'ouvrir tout d'abord dans un tableur pour estimer la qualité du nommage des arrêts (TOUT EN MAJUSCULE ? avec des abréviations ? etc). Regardez aussi si le stop_code ou le stop_id correspondent à un numéro visible sur les arrêts (par exemple un code pour obtenir aux prochains passages en temps réel à cet arrêt ?) : si c'est le cas, cela correspond à des données utiles à ajouter à OpenStreetMap.

aperçu des arrêts d'un GTFS exporté avec GTFS geo

Ensuite, il peut être intéressant de les afficher sur une carte pour un premier état des lieux (umap, QGIS ou tout simplement JOSM avec un fond OSM ou d'imagerie aérienne de qualité). Cela donne déjà un premier aperçu et peut permettre de détecter des erreurs grossières (des arrêts situés hors de la zone du réseau, voire en plein milieu de la mer).

aperçu des arrêts dans JOSM

Ce qui nous intéresse vraiment à ce stade est la précision du positionnement des arrêts sur la carte : les arrêts sont-ils situés plutôt sur la route, à coté de la route ou dans des bâtiments ?

aperçu des arrêts dans JOSM aperçu des arrêts dans JOSM

Il faut aussi vérifier la manière dont les arrêts sont modélisés : en effet, les arrêts du GTFS ne correspondent pas forcément à des arrêts tels qu'on peut les observer sur le terrain. On peut tout à fait avoir un unique arrêt GTFS pour les deux sens de circulation d'une ligne, même s'il correspond à deux abribus sur le terrain, ou à l'inverse plusieurs arrêts (un pour chaque ligne) pour représenter un arrêt de bus desservi par plusieurs lignes.

aperçu des arrêts dans JOSM

Bref, il faut passer un peu de temps à explorer les données pour identifier les petites surprises qui risqueraient de nous complexifier la tâche.

Une fois que nous sommes familiarisés avec les arrêts du GTFS, nous pouvons attaquer la comparaison avec OpenStreetMap. Pour cela, on peut par exemple charger le fichier des arrêts dans ce thème MapContrib. JOSM est également un très bon choix pour cette tâche.

aperçu des arrêts dans JOSM

Si ce n'est pas encore fait, je vous conseille au préalable de passer un peu de temps à uniformiser les arrêts déjà présents dans OpenStreetMap pour la zone. Sans cela, il vous sera peut-être difficile de répondre à des questions très simples comme "combien y a t-il d'arrêts de bus dans cette ville ?" en utilisant OpenStreetMap.
En effet, comme pour le GTFS, plusieurs modélisations sont possibles, autant sur le positionnement de l'arrêt (sur la route, ou à côté) que sur les tags : respectez donc les pratiques locales lorsqu'elles existent. Sinon, je recommande la modélisation suivante, qui est compatible avec la plupart des rendus et outils qui tirent partie des données transport d'OpenStreetMap : un arrêt est représenté par un unique objet, placé à côté de la route, avec les tags highway = bus_stop et public_transport = platform.

aperçu des arrêts dans JOSM

Après ce petit intermède de jardinage des données existantes, on peut s'attaquer à la comparaison et à l'enrichissement des arrêts d'OpenStreetMap à partir du GTFS.
Pensez à croiser les sources et à vous appuyer sur l'imagerie aérienne ou les photos de rue sous licence compatible ;)

Repérez aussi s'il y a des arrêts existants dans OpenStreetMap qui ne sont pas représentés dans les données open data (la navette gratuite mise en place par la mairie ou un autre réseau de transport que celui sur lequel vous travaillez).

Dans JOSM, vous pouvez utiliser le plugin todo pour constituer une liste d'arrêts et les vérifier dans l'ordre très rapidement.

Le plugin TODO de JOSM

Si les résultats des étapes précédentes sont plutôt bons (les données GTFS sont de bonne qualité, avec des noms propres et des positions précises et proches de la modélisation adoptée par OpenStreetMap), vous pouvez par exemple utiliser le plugin Conflation de JOSM pour passer rapidement en revue les différences.

Le plugin conflation de JOSM

Vous pouvez également créer une analyse Osmose : c'est un excellent outil pour réaliser des intégrations de données dans OpenStreetMap à partir d'une source open data. De plus, Osmose permet de travailler plus facilement à plusieurs et plus tard de suivre les évolutions apportées dans les données (autant GTFS qu'OpenStreetMap).

une analyse Osmose

Bref, à l'issue de cette étape, vous avez mis en qualité les arrêts de votre réseau : c'est déjà un bel accomplissement, félicitations ! Nous pouvons donc passer aux lignes !

étape 2 : état des lieux des lignes et parcours

L'édition des lignes de transport dans OpenStreetMap est réputée difficile, mais pas de panique : avec un peu de pratique et de méthode, ce n'est pas si dur !

Chaque ligne est constituée d'un ou plusieurs parcours, qui représentent les trajets effectivement suivis par les véhicules et les arrêts qui sont desservis dans l'ordre. Dans le cas général, on aura deux parcours pour chaque ligne (un pour l'aller et un pour le retour), mais de nombreuses exceptions existent : la ligne circulaire avec un unique trajet, la ligne en fourche avec 3 ou 4 trajets différents et réguliers, le détour du mercredi matin pour éviter la place du marché ou le détour tous les matins et tous les soirs pour passer devant le lycée, etc

Dans OpenStreetMap, chaque parcours sera représenté une relation de type = route. Cette relation contiendra les arrêts dans l'ordre et les rues et routes empruntées par le bus. Puis on regroupera tous les trajets d'une même ligne dans une relation de type = route_master.

Avant d'aller plus loin et de se pencher sur les données GTFS, je vous conseille, comme pour les arrêts, de passer un peu de temps à mettre en qualité les données déjà dans OpenStreetMap. En particulier, on ajoutera si nécessaire des tags sur les parcours et lignes pour indiquer le transporteur (operator) et le réseau (network) afin qu'on puisse différencier facilement les lignes de notre réseau et celles du réseau national de car ou des navettes de la mairie. On vérifiera également que chaque parcours est bien rattaché à une ligne (les relations route sont membres de relation route_master) sans quoi répondre à la question du nombre de lignes dans la ville risque d'être une opération difficile.

Pour cette étape, pensez à activer les validateurs JOSM Jungle Bus, qui vous indiqueront les choses à corriger dans les données existantes.

Activer les validateurs Jungle Bus de JOSM

Vous pouvez également retrouver la plupart de ces contrôles qualité dans Osmose. Jetez aussi un œil à la version bêta de Bifidus, qui vous permet de les mettre en valeur sur une carte sur une zone donnée.

Jettez un oeil à la version bêta de Bifidus

Regardons à présent les lignes et les parcours du GTFS.

GTFS geo vous propose un fichier csv contenant les parcours. Une colonne indique la ligne d'appartenance et le nombre d'arrêts.

Aperçu des lignes et parcours

Dans le GTFS, vous obtiendrez la liste des lignes dans le fichier routes.txt. Pour trouver les parcours de chaque ligne, il faut utiliser le fichier trips.txt, filtré par route_id, et en ne conservant que ceux qui ont la même séquence d'arrêts (qu'on retrouve dans le fichier stop_times.txt).

En fonction de la complexité des lignes, il vous faudra peut-être faire des choix dans ces parcours : on peut toujours dans un premier temps se concentrer sur les parcours les plus réguliers (le trajet le plus fréquent est plus pertinent à cartographier que la variante qui ne passe que le mercredi à 10h30).

La grille horaire de la ligne, lorsqu'elle est disponible, offre une visualisation des différents trajets assez efficace et peut-être utile pour identifier ceux que l'on souhaite cartographier et ceux qu'on se garde pour plus tard.

Aperçu des lignes et parcours

À partir de tout cela, vous devez avoir une première vision du nombre de parcours et de lignes déjà existants dans OpenStreetMap et à compléter, ainsi que de ceux à créer entièrement.

Pour suivre votre avancement, je conseille d'initier une page de wiki, pour avoir une liste cible des lignes et parcours et mesurer l'avancement. La page suivante peut vous servir de modèle si vous n'êtes pas familiarisé avec la syntaxe du wiki.

Un tableau d'avancement dans le wiki

Cette page de wiki est également le bon endroit pour rappeler les bons tags à mettre sur les lignes (pour uniformiser les tags operator et network par exemple) et la manière de cartographier les arrêts.

Bref, à l'issue de cette étape, vous avez une vision d'ensemble sur votre réseau : les lignes et parcours existants et ceux qui sont à créer. Nous allons à présent regarder en détail chaque parcours un par un et le compléter.

étape 3 : les parcours et leurs arrêts

Prenons donc un parcours : dans GTFS Geo, chaque parcours est associé à un fichier geojson, qui comprend les métadonnées, les arrêts et le tracé du trajet.

Dans le GTFS, vous obtiendrez les métadonnées des trajets en fusionnant les informations des fichiers routes.txt et trips.txt en utilisant la colonne route_id pour raccrocher chaque trajet à sa ligne. Les trajets présents dans trips.txt ont une notion d'horaire et de calendrier associés, donc il vous faudra sans doute au préalable choisir un trajet représentatif unique. La liste des arrêts du trajet est disponible dans le fichier stop_times.txt en utilisant le trip_id pour filtrer. Enfin, il vous faudra également utiliser le stop_id pour retrouver dans le fichier stops.txt le nom et les coordonnées de ces arrêts.

Vous pouvez donc ouvrir le fichier geojson dans JOSM pour visualiser un parcours.

Un parcours dans JOSM

Il vous faut alors reprendre la relation du parcours associé ou à la créer si nécessaire à partir des infos fournies par le GTFS. N'oubliez pas de mettre cette relation de parcours (type=route) dans la relation de ligne (type=route_master) associée.

Puis, en suivant le geojson, il n'y a plus qu'à retrouver les arrêts (déjà créés dans OpenStreetMap à l'étape 2) et à les ajouter, dans l'ordre où ils sont desservis dans la relation.

Ajouter les arrêts dans la relation avec JOSM

Enfin, avant de passer au parcours suivant ou à l'étape suivante, n'oubliez pas de mettre à jour le wiki avec votre avancement.

Avancement des arrêts sur le wiki

étape 4 : les tracés des parcours

En complément des arrêts de chaque parcours, on souhaitera également ajouter le tracé, qui se matérialise dans OpenStreetMap par la suite des rues empruntées par le bus.

Dans GTFS Geo, ce tracé est présent dans le fichier geojson de chaque parcours. Le tracé est une information facultative dans le GTFS : lorsqu'elle n'est pas fourni, le geojson contiendra uniquement des lignes droites reliant les arrêts dans l'ordre.

Un parcours dans JOSM

Dans le GTFS, vous obtiendrez les éventuels tracés des trajets dans le fichier shapes.txt. Il s'agit d'une suite de points qu'il vous faudra relier. Vous pouvez faire le lien entre le tracé et le trajet GTFS en utilisant la colonne shape_id des fichiers shapes.txt et trips.txt. Le fichier shapes.txt est facultatif. S'il n'est pas fourni, à vous de retrouver le chemin emprunté par le véhicule entre les arrêts !

Pour ajouter ce tracé dans OpenStreetMap, ouvrez la relation du parcours, puis sélectionner une à une les rues et les ajouter à la relation.

Si vous avez beaucoup de parcours ou des lignes particulièrement longues, je vous invite à tester quelques plugins JOSM :

  • PT Assistant et son assistant de routing. Ce plugin est par ailleurs indispensable pour cartographier des lignes de transport dans JOSM : il ajoute de nombreux tests de qualité et facilite la visualisation des objets importants. L'essayer, c'est l'adopter !
  • Relation Toolbox, qui permet d'accélérer l'ajout de plusieurs objets dans une relation

Le plugin PT Assistant

PT Assistant permet (entre autres) de visualiser beaucoup plus facilement le parcours de bus sélectionné, ses arrêts, leur ordre ainsi que le tracé.

Et enfin, lorsque c'est fait, le wiki est à mettre à jour en conséquence comme pour les arrêts.

Avancement des tracés sur le wiki

étape 5 : profitez !

Vous avez créer tous les arrêts puis toutes les lignes et tous les parcours, et enfin ajouté les arrêts et rues dans tous ces parcours ? Félicitations !

Vous pouvez maintenant à présent retrouver ces données sur les rendus transport d'openstreetmap.org (il y a parfois plusieurs jours de décalage, soyez patients).

Avancement sur fond transport

Le détail des informations de chaque ligne est également explorable depuis Unroll :

Unroll, pour visualiser le détail d'une ligne

Jetez aussi un œil à l'application mobile OSMAnd, qui permet également de naviguer dans ces données de transport et même de calculer des itinéraires en bus !

Et ce n'est pas tout, les sites ou applications qui utilisent les données de transport d'OpenStreetMap sont de plus en plus nombreux : jetez un oeil à la page de wiki qui les référence pour trouver encore plus de choses cools à faire avec ces nouvelles données !

mars 17, 2019

Plus de bus avec OSMAnd

Aujourd'hui, je vous propose une petite revue des fonctionnalités de l'application mobile OSMAnd autour des bus. En effet, l'application basée sur OpenStreetMap qui fait tellement de choses qu'on a du mal à dénombrer le nombre de fonctionnalités a également quelques atouts intéressants sur le sujet des transports en commun.

En farfouillant dans les options, on peut trouver de quoi configurer la carte, par exemple pour afficher les arrêts (pratique quand on cherche l'arrêt le plus de soi) ou encore les différentes lignes.

activer des couches pour visualiser les bus dans l'appli

Un clic sur un arrêt permet assez naturellement de visualiser les lignes qui s'y arrêtent :

lignes à un arrêt

Le détail d'un arrêt nous donnera plus d'info sur les équipements (banc, abri) mais aussi sur le détail des lignes (pour éviter de prendre sa ligne dans le mauvais sens par exemple) .

détail d'un arrêt

En cliquant sur une ligne, on peut visualiser son trajet, et naviguer entre ces différents arrêts.

détail d'une ligne

Enfin, mais c'est plus expérimental, on peut calculer des itinéraires en transport en commun

calcul d'itinéraire

Même si on est assez loin d'une utilisation aussi ergonomique et aboutie qu'avec les applications d'information voyageur habituelles, on a de quoi visualiser la plupart des informations utiles sur les bus autour de soi. Une raison de plus s'il en faut pour se motiver à contribuer les lignes de transport en commun dans OpenStreetMap ;)

mai 01, 2018

osm-transit-extractor, le couteau suisse pour les transports dans OSM

Si vous êtes utilisateur de données OpenStreetMap, que ce soit pour faire des cartes, des applicatifs géographiques, ou juste des analyses, vous connaissez sûrement les outils en ligne de commande de la communauté : osmosis, osmium ou encore osmconvert.
J'ai moi-même déjà évoqué certains de ces outils dans un précédent article.

Mais lorsqu'on est intéressé(e) par les lignes de transports, ces outils ne sont pas des plus pratiques, car il est nécessaire de manipuler des relations OSM, c'est-à-dire des objets un brin complexes constitués eux-mêmes d'autres objets.

Bien sûr, la bonne vieille solution Overpass reste envisageable si la zone n'est pas trop grosse. Jetez un œil à cet autre article pour trouver la requête qu'il vous faut ;)

Mais dans tous les cas, il nous faudra jongler dans nos filtres pour récupérer les relations de type route ou route_master avec certains tags uniquement car les circuits de marche nordique ou encore les pipelines vraiment très longs sont cartographiés d'une manière très similaire...

C'est pourquoi je suis ravie de vous présenter osm-transit-extractor, une alternative qui apporte enfin aux transports en commun toute l'attention qu'ils méritent ;)

Pour un cas pratique, imaginons donc que vous voulez vous faire une idée des lignes de transports de Bretagne.

osm-transit-extractor se présente sous la forme d'un exécutable (Linux uniquement pour le moment) : il suffit donc de le télécharger depuis Github puis de le dézipper pour l'utiliser.

Ensuite, on récupère les données de la zone qui nous intéresse, ici la région Bretagne, au format PBF.

Et c'est parti :

./osm_transit_extractor -i bretagne-latest.osm.pbf

Oui, c'est tout !

On obtient alors un petit ensemble de fichiers csv avec les données qui nous intéressent.

Les 3 fichiers les plus intéressants sont

  • les arrêts : osm-transit-extractor_stop_points.csv
  • les parcours : osm-transit-extractor_routes.csv
  • les lignes : osm-transit-extractor_lines.csv (relations route_master dans OSM)

Ces fichiers contiennent à la fois les informations utiles sur ces objets ainsi que tous les tags OSM, mais aussi les géométries de ces objets.
Ces fichiers csv peuvent donc s'utiliser aussi bien dans un tableur (ou autre) pour une analyse des métadonnées, ou dans QGIS (ou autre) pour une représentation cartographique.

Voici par exemple un extrait des infos de quelques lignes : capture d'écran des infos de lignes

Et voici une petite représentation de ces lignes, réseau par réseau : capture d'écran des lignes de Bretagne dans QGIS, et en couleurs aléatoires

Notre extraction comprend également des fichiers pour faire le lien entre les différents objets, par exemple entre une ligne et ses différents parcours, ou entre un parcours et ses arrêts.

Voici par exemple la liste des parcours de la ligne de Ferry Brest Ouessant : capture d'écran de line_route

Voici encore un extrait des arrêts de la ligne 9 de Kicéo en direction de Meucon : capture d'écran de route_stop

Et ce n'est qu'un aperçu : osm-transit-extractor est un vrai petit couteau suisse, rapide et efficace dès qu'on veut des infos sur les lignes de transports dans OSM.

Bien sûr, c'est opensource, donc n'hésitez pas à passer sur github si vous rencontrez des soucis ou avez des idées d'évolutions. Et si vous êtes un rustacéen, vos contributions sont les bienvenues ;)

déc. 29, 2017

Coup d'oeil dans le rétro (du bus bien sûr)

L'année 2017 s'achève et c'est le traditionnel moment de faire le point sur ce qui a été accompli ! Pour moi, l'année fut monopolisée par le projet Jungle Bus, c'est donc tout naturellement que cet article parlera, encore et toujours, de bus dans OSM \o/

Mon occupation principale cette année fut l'amélioration de la qualité des données de transport dans OSM. Les résultats sont visibles dans deux outils : JOSM et Osmose.

Dans JOSM, il s'agit d'un validateur à activer (dans les Préférences > Validateur de données > Règles du vérificateur d'attribut. Puis sélectionner Jungle Bus).
Il propose actuellement 20 tests sur les transports en général (les bus mais pas que, aussi bien les arrêts que les lignes), et permet de repérer et de corriger les erreurs classiques au plus tôt, directement dans son outil de contribution habituel. capture d'écran de JOSM

Et quelques uns de ces tests ont été également ajoutés dans Osmose, qui compte à présent 15 tests sur les transports en commun. Plus d'info sur la page dédiée dans le wiki.

Stay tuned ! More to come in 2018

J'ai également réalisé un thème pour OSMTracker afin d'avoir un outil simple et efficace possible pour enregistrer les tracés des bus à cartographier.

J'ai aussi testé, et testé encore, l'application Jungle Bus, qui grâce à nos généreux soutiens et sponsors, a reçu pas mal d'améliorations cette année pour faciliter la contribution !

Le saviez-vous ? on peut photodocumenter des arrêts de bus

Et enfin, j'ai fait de la vulgarisation, un peu de doc et d'accompagnement de contributeurs désireux d'améliorer la cartographie de leur réseau de transport.

En particulier, le fait marquant de l'été fut le projet de cartographie des réseaux de tro tro, les bus artisanaux d'Accra, la capitale du Ghana. Les 300 lignes ont ainsi été collectées et ajoutées à OSM !
Ce projet, qui est une collaboration entre l'AFD, Transitec, Jungle Bus et la communauté OpenStreetMap locale nous a permis de confronter nos outils et nos méthodes aux besoins réels.

Nous avons également transformé ces données OSM en données transport utilisables par navitia.io et les applications mobiles TransportR et Transit, afin d'offrir aux utilisateurs des informations utiles pour leurs trajets et au "Department of Transport" de la ville les données nécessaires pour gérer au mieux ce réseau et améliorer la qualité de vie de ses 2 millions d'habitants.

que de boulot !

À cela s'ajoutent encore quelques projets, trop petits ou pas encore assez aboutis pour mériter d'être signalés ici ...

Focus Île-de-France

Fin 2016, j'avais lancé un outil de comparaison entre les données transport dans OSM et dans l'opendata du STIF.
Il a peu évolué en un an, mais heureusement, on ne peut pas en dire autant d'OSM, qui s'est considérablement améliorée : près de 400 lignes ont été ajoutées en un an !

J'ai également développé une analyse Osmose spécifique, pour améliorer les tags manquants dans OSM à partir des infos fournies dans l'opendata.

Je me suis aussi pas mal promenée, à la recherche de marqueurs Maps.me à traiter, et je n'ai visiblement pas été la seule :

  • plus que 2211 arrêts sans nom
  • plus que 9647 arrêts non desservis

Si vous voulez contribuer, je continue de générer et de mettre à jour régulièrement les marqueurs Maps.me qui vont bien :

Tous ces accomplissements sont collectifs avant tout, et je suis loin d'en être la seule responsable : un grand merci à tous ceux qui partagent mes aventures, sur OSM, sur github et IRL ;)
Allons encore plus loin ensemble en 2018 !

Plus loin, ensemble, ça fait un peu slogan pourri d'une compagnie de transport non ?

EDIT octobre 2018 : mise à jour de liens (les fichiers kml sont maintenant hébergés sur github).

août 10, 2017

Mais je veux juste la liste des arrêts de bus !?

Il y a quelques années, quand quelqu'un voulait réaliser une extraction OSM des arrêts de bus, il se retrouvait confronté à un problème :

  • pour certains, un arrêt de bus est un lieu sur le bord de la route, où des voyageurs attendent leur bus
  • pour d'autres, c'est un endroit sur la voirie, où un bus s'arrête

La nuance peut sembler légère, mais cela peut jouer sur la volumétrie : lorsqu'on a deux abribus en face, on peut se retrouver avec deux arrêts selon la première définition, mais un unique arrêt avec la seconde...

Pour résoudre ce souci, la communauté OSM a planché sur une nouvelle modélisation des arrêts (entre autres), qui a été adoptée par vote en 2011.

Deux nouveaux attributs viennent compléter le modèle : l'un désigne l'endroit sur la chaussée où le bus s'arrête (public_transport = stop_position), et l'autre désigne l'endroit où les voyageurs attendent (public_transport = platform).
Un problème, une solution, KISS !

Vraiment ?

Admettons, pour les besoins de l'exercice, que je sois intéressée par les arrêts de bus, au sens "les endroits où les voyageurs attendent leur bus".
Facile donc, si je veux extraire tous les arrêts de France, je n'ai qu'à filtrer mes données OSM sur le tag public_transport = platform.

Voici les résultats de mon extraction (sur des données du 4 aout 2017) : en France métropolitaine, on a d'après OSM, 45 408 arrêts où attendent des voyageurs.

Là, si le résultat ne vous choque pas, croyez-moi sur parole : ce n'est pas crédible.
Rien qu'en Île-de-France, on a déjà environ 40 000 arrêts de transport en commun, donc, même si la base OSM n'est pas exhaustive, ce n'est pas vraiment le bon ordre de grandeur.

Ok, par curiosité, si j'utilise le tag historique higwhay = bus_stop, qu'est-ce que ça donne ?
123 956 arrêts. Déjà plus crédible.

Mais souvenez-vous, pour certains, un arrêt de bus désigne un endroit sur la route, et moi je veux les abribus et les poteaux où les gens attendent. Essayons de combiner : si je prends les highway = bus_stop qui ne sont pas des public_transport = stop_position : 98 173 arrêts.

Bon, si je regarde dans le détail, je trouve que la plupart de ces arrêts n'ont pas le tag public_transport de renseigné du tout. Difficile de savoir quelle proportion de ceux là sont dont des stop_position qui ne m'intéressent pas.

Au final, combien ai-je d'arrêts ? 45 mille, 98 mille ou 124 mille ?
Bref, six ans après l'adoption du nouveau schéma, extraire les arrêts de bus est une opération qui reste hasardeuse...

Exigeons plus ! Et si, en tant que contributeur OSM, on appliquait le schéma et qu'on ajoutait scrupuleusement stop_position ou platform sur tous les higwhay=bus_stop ?
Une analyse Osmose est déjà disponible pour identifier les arrêts à compléter : c'est par ici que ça se passe, et c'est très facile à corriger !

Même si cela ne suffira pas, ce sera déjà la première marche vers plus de réutilisabilité des données OSM \o/

Et en cadeau, si vous être arrivés jusque là dans cet article passionnant, voici des représentations cartographiques de la répartition de ces différentes combinaisons d'attributs. corrélation entre la cartographie du tag public_transport = platform et le vote Macron aux législatives. Nan je déconne

NB : Cet article comprend des approximations et simplifications pédagogiques.
D'ailleurs, si vous les avez remarquées, n'hésitez pas à venir prolonger la discussion sur la liste de diffusion transport de la communauté OSM France, par ici ;)

Next → Page 1 of 2