FR:Import arrêts d'autobus, ARTM Autorité régionale de transport métropolitain

From OpenStreetMap Wiki
Jump to navigation Jump to search

English version (automatic translate)

Transports publics in Grand Montréal

Import des stations d'autobus de l'ARTM- Autorité Régionale de Transport Métropolitain

Status En cours

ARTM, l'Autorité Régionale de Transport Métropolitain, coordonne les activités des différents opérateurs de réseau de transport du Grand Montréal. Chacun des réseau (STM, STL, RTL et EXO) a son propre projet de données ouvertes et met à disposition sous diverses licence les données de son réseau de transport au format GTFS.

L’import** proposé ici ne porte que sur les données de localisation et d’identification des stations d’autobus qui seront, par la suite, intégrées manuellement aux lignes et trajets d’autobus de OSM selon le schéma de transport public v2 tel que décrit dans la page https://wiki.openstreetmap.org/wiki/FR:Bus.

** J’utilise, dans ce document, le mot « import » plutôt que « importation » puisque ce terme semble avoir dans le contexte OSM une connotation particulière et est repris dans les pages de documentation, même en français, du WIKI.

Puisque les données des différents réseaux sont soumises à des licences non ODbL, la première étape est d’obtenir de chacun la permission formelle d’utilisation de ses données.

Cette étape est en cours.

Opérateur Statut de l'autorisation
EXO-RTM Obtenue - cliquer ici
STL Obtenue - cliquer ici

Une stratégie d'import spécifique a été proposée pour la STL qui n'utilisera pas la méthodologie décrite ci-bas

RTL
STM Obtenue - cliquer ici

Portée de l’import.

Cet import ne porte que sur les noeuds de type arrêts de bus et sera répétée pour chacun des réseaux suivants.:

Niveau d'avancement de l'import
Réseau Statut
EXO - Réseau de transport métropolitain Chambly-Richelieu Carignan Import 2018-12-12, groupe de modification 65414487 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Haut-Saint-Laurent Import 2018-12-12, groupe de modification 65415661 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Laurentides Import 2018-12-05, groupe de modification 65209348 (par accident sous alouette955 plutôt que import_artm)

Fusion des arrêts préexitants (conflate), groupe de modification 65210325

EXO - Réseau de transport métropolitain La Presqu'île Import 2018-12-12, groupe de modification 65418969 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Le Richelain Import 2018-12-12, groupe de modification 65419633 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Roussillon Import 2018-12-12, groupe de modification 65420257 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Sorel-Varennes Import 2018-12-12, groupe de modification 65421213 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Sud-ouest Import 2018-12-12, groupe de modification 66107257avec fusion des arrêts préexistants (conflate)

N.B. Les arrêts de bus des municipalités Les Coteaux, Les Cèdres et Saint-Zotique ont été ignorés puisque ces municipalités se sont dé-affiliées de l'ARTM le 31 décembre 2018 et les autobus n'y passent plus.

EXO - Réseau de transport métropolitain Vallée du Richelieu Import 2018-12-12, groupe de modification 65422087 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain L'Assomption Import 2018-12-09, groupe de modification 65326927 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Terrebonne-Mascouche Import 2018-12-10, groupe de modification 65359167 avec fusion des arrêts préexistants (conflate)
EXO - Réseau de transport métropolitain Sainte-Julie Import 2019-01-04, groupe de modification 66029837 avec fusion des arrêts préexistants (conflate)
STL - Société de transport de Laval Import 2019-02-11 par le contributeur arthur_d_import, groupe de modification 67070915 avec fusion des arrêts préexistants (conflate)
RTL - Réseau de transport de Longueuil
STM - Société de transport de Montréal Ce projet était en cours avant la proposition d'import.

L'instigateur du projet STM a réalisé l'import à l'aide du compte d-k-c_import le 24 octobre 2018

Un import devant être réalisé avec un compte dédié il est ici proposé de créer le compte import_artm pour cette opération.

Méthode proposée :

L’import n’exige pas d’outils complexes. Il s’agit de manipulation de fichier .csv avec un tableur. On y utilise donc :

  1. overpass-turbo pour extraire les nœuds correspondant aux arrêts de bus existants dans le secteur touché
  2. LibreOffice (ou tout autre tableur) pour manipuler les données dans le format .csv
  3. JOSM avec le plug-in OpenData pour importer le .csv final des arrêts à ajouter

Dans le format GTFS les données sur les arrêts de bus sont données dans un fichier nommé « stops.txt » qui ressemble à ceci :

  • stop_id,stop_name,stop_lat,stop_lon,zone_id,stop_code
  • 80000,Arthur-Sauvé / Hémond, 45.561037, -73.898719,,80000
  • 80001,Féré / Latour, 45.556113, -73.898242,,80001
  • 80002,Féré / du Plateau, 45.554767, -73.896413,,80002
  • 80003,Féré / Dumont, 45.553729, -73.895030,,80003
  • 80004,Féré / d'Oka, 45.552990, -73.894176,,80004
  • 80005,Guy / 2e Avenue Nord, 45.551422, -73.894812,,80005
  • 80006,Guy / 2e Avenue, 45.550699, -73.895860,,80006
  • 80007,Guy / 4e Avenue, 45.549518, -73.897551,,80007
  • 80008,Guy / 6e Avenue, 45.548504, -73.899034,,80008
  • 80009,Guy / 8e Avenue, 45.547518, -73.900500,,80009
  • 80010,d'Oka / 9e Avenue, 45.541094, -73.893333,,80010
  • 80011,8e Avenue / Henri-Dunant, 45.544392, -73.896530,,80011

L'élément « stop_code  » correspond au numéro de l'arrêt présent sur le panneau (habituellement au coin inférieur droit) et est utilisé comme clé unique qui identifie chaque arrêt.

EXO - panneau d'arrêt type.jpg

Étape 1 : Accéder aux données du réseau

Isoler ce fichier du contenant .zip dont il fait partie et changer son extension pour .csv

Étape 2 : Importer et vérifier les données GTFS dans un tableur

Ouvrir le fichier .csv dans un tableur. Lors de la conversion, spécifier que le séparateur est la virgule.

Import arrêts de bus EXO.png

Les données apparaissent maintenant sous forme de 6 colonnes.

ATTENTION : rien n’empêche les opérateurs des réseaux d’avoir inséré une virgule dans le nom d’un arrêt. Vérifier l’ensemble des lignes afin de s’assurer qu’il n’y a pas une 7ième colonne sur certaines lignes. Un tri des données sur cette hypothétique 7ième colonne les isolera. Corriger une à une les lignes endommagées.

Étape 3 :Rendre les données compatibles aux attributs de OSM.

  • « stop_code» devient « ref »
  • « stop_name » devient « name »
  • « stop_lat » devient « latitude »
  • « stop_lon » devient « longitude »
  • Effacer les colonnes « zone_id » et « stop_id » et autres colonnes qui sont inutiles pour nos besoins
  • Ajouter une colonne nommée « public_transport » et insérer la valeur « platform » pour chacune des lignes
  • Ajouter une colonne nommée « highway » et insérer la valeur « bus_stop » pour chacune des lignes
  • Ajouter une colonne nommée « bus » et insérer la valeur « yes » pour chacune des lignes
  • Il peut y avoir des colonnes intéressantes à convertir à leur équivalent OSM (ex.: shelter, wheelchair_boarrding, etc ...)

Voici l’allure que devraient avoir les données prêtes à être importées :

Import arrêts de bus prêts.png

Chaque colonne ayant pour titre le nom de l’attribut OSM qui sera attribué aux données équivalentes de chaque lignes.

Étape 4 : Éliminer les doublons

4.1 Arrêts en double

Certains opérateurs insèrent dans le fichier stop.txt chaque arrêt autant de fois qu'il y a de lignes s'y arrêtant (STL par exemple). Dans OSM nous ne voulons qu'une entrée pour chaque arrêt. Il nous faut donc éliminer les doublons et ne garder qu'une ligne par "ref".

Voici une méthode pour LibreOffice:

  1. Sélectionner l'ensemble des colonnes de la feuille de calcul
  2. Cliquer Données, Plus de Filtre puis Filtre Standard
  3. S'assurer que Nom de champ ait la valeur aucun(e)
  4. Cliquer + Options
  5. Cliquer Sans doublon puis OK
  6. Ce qui est visible n'est qu'une vue cachant les doublons mais ils y sont encore. Il faut faire un copier/coller de l'ensemble des données dans une nouvelle fenêtre, Dans cette nouvelle fenêtre il n'y a plus de doublons
  7. Effacer la fenêtre originale contenant les doublons et ne conserver que la nouvelle.

4.2 Arrêts avec mêmes coordonnées

Dans de rares cas il arrive qu'un fichier stops.txt contiennent plus d'un arrêt à une même coordonnée. Les quaies de terminus et de métro de la STL par exemple.

Il faudra éviter de créer plusieurs noeuds superposés à la même coordonnées.

Voici une méthode simple avec LibreOffice pour les identifier: mais vous povez utiliser d'autres outils pour arriver au même résultât:

Import arrêts de bus EXO-4.jpg

Après avoir créé une colonne E avec la fusion des longitude et lattitude (opérateur &), la commande NI:SI (colonne F) donne le nombre d'arrêts partageant les même coordonnées. En triant en ordre descendant sur la colonne F on retrouve tous les arrêts en question. Imprimer ou sauvegarder cette liste pour utilisation à l'étape 6.

Étape 5 : Exclure les arrêts normalisés déjà présents dans OSM

Retirer du fichier d’importation les arrêts de bus normalisés déjà présents dans OSM (en effet un arrêt peut appartenir à deux réseaux et il faut éviter de les créer deux fois). Il faut donc retirer de notre import les arrêts présents dans OSM ayant la même valeur pour l'attribut "ref".

Extraire les données en format .csv des arrêts de bus existant dans OSM avec overpass-turbo. Ne pas hésiter à prendre une zone plus grande que le secteur touché. Avoir des arrêts qui sont hors zone vaut mieux que d’en manquer dans la zone.

La requête est la suivante :

[out:csv(::"id", highway,ref,::lat, ::lon)];

(

node["highway"="bus_stop"]({{bbox}});

node["public_transport"="platform"]({{bbox}});

);

out ;

>;

Importer ces données (copier/coller) dans une nouvelle feuille du fichier obtenu à l’étape 4.

Une simple fonction NB:SI sur l’attribut « ref » appliquée à chaque ligne des arrêts à importer identifiera les doublons d’arrêts.

Par exemple, dans Libreoffice « =NB.SI(Feuille2.C$2:C$42;A2)) »

Supprimer des arrêts à importer les lignes n’ayant pas 0 (zéro) en retour de la fonction.

Supprimer la colonne contenant la fonction NB.SI.

Supprimer la feuille ajoutée pour importer les données.

Sauver le fichier .csv contenant ce fichier final des arrêts à importer.

Étape 6: Importer les arrêts et fusionner les arrêts pré-existants (conflation)

Une partie des arrêts d'autobus à importer ont peut-être (et même certainement) été créés manuellement au fil du temps par d'autres contributeurs. Leurs coordonnées ne peuvent correspondre que par hasard avec celles officielles de l'ARTM mais ne comporte pas l'attribut "ref". Afin de ne perdre aucune information de ces noeuds nous allons fusionner leurs informations avec celles provenant de l'ARTM. Nous pourrons donc préserver le numéro du noeud original dans OSM ainsi que des attributs tels que "shelter=yes", "bench=yes", etc ...

Voici une méthode manuelle pour réussir cette opération.

6.1 Importer les arrêts d'autobus d'un réseau dans JOSM

Pour ce faire il suffit d'installer le plugin OpenData dans JOSM et simplement glisser le fichier .csv créé à l'étape 5 sur la fenêtre JOSM. Voici ce qu'on obtiendra (cet exemple porte sur le réseau des Laurentides):

Import arrêts de bus EXO-1.jpg

Les multiples points bleus sont les arrêts de bus.

6.2 Fusionner les arrêts pré-existants non normalisés avec leur équivalent dans le fichier d'import

Plusieurs arrêts peuvent avoir été créés précédemment, cette étape fusionnera leurs données avec les arrêts équivalents importés. Ceci s'appele "conflation" dans la documentation OSM.

Dans le même calque, importer les arrêts d'autobus par une requête API Overpass qui couvre au moins la zone visible en 6.1. Si on veut un visuel de la zone on peut afficher un fond de carte OSM.

  1. Cliquer Fichier puis Télécharger les données.
  2. Dans l'onglet Télécharger depuis l'API Overpass choisir la zone à télécharger et exécuter la requête suivante:
    Import arrêts de bus EXO-2.jpg
    Puis cliquer Télécharger.
  3. On se retrouve maintenant avec le calque des arrêts existant superposé aux arrêts de l'import:
    Import arrêts de bus EXO-3.jpg
    Grâce à un filtre à créer "(highway=bus_stop OR public_transport=platform) AND ref" les points gris en sous-couche étant les arrêts de l'import et en brillance les arrêts pré-existants dans OSM. On travaillera sur les arrêts en brillance qui sont très près des arrêts gris sachant qu'on a pris une grande zone non concernée. Dans cet exemple il n'y a qu'une vingtaine de cas.Dans le coin inférieur droit il s'agit de Laval et une partie de Montréal non concernés ici.
  4. Pour chacun des arrêts à normaliser effectuer une fusion avec l'arrêt ARTM correspondant. Pour mieux voir ces arrêts on applique le filtre
    • 5a. Zoomer sur un arrêt ainsi filtré
    • 5b. désactiver le filtre
    • 5c. Un Clic sur l'arrêt puis Maj-Clic sur l'arrêt EXO puis M (si les deux noeuds avaient une valeur "name" il faut choisir de conserver celle de l'ARTM)
    • 5d. Réactiver le filtre et refaire 5a à 5c jusqu'à ce qu'il n'y ait plus d'arrêt à normaliser. Chaque arrêt normalisé disparaît grâce au filtre.
  5. Envoyer ce groupe de modification à OSM sous import_artm et documenté comme fusion des arrêts pré-existants (conflation).
6.2 Si requis, fusionner les arrêts partageant les mêmes coordonnées

Pour chaque groupe d'arrêt faisant partie de la liste isolée en 4.2:

  1. Choisir un numéro d'arrêt (le premier)
  2. Faire une recherche de cet arrêt:
    Import arrêts de bus EXO-5.jpg
  3. Zoomer sur l'objet
  4. Sélectionner l'ensemble des arrêts à cette coordonnées (dessiner un cadre autour avec la souris)
  5. Fusionner les noeuds (m)
  6. S'assurer de choisir un élément "name" mais "tous" pour l'élément "ref"
    Import arrêts de bus EXO-6.jpg
  7. Appliqer la fusion aux éléments
  8. Donner un nom ("name") significatif au noeud conservé
  9. Répéter pour chaque groupe d'arrêts.
  10. Envoyer ce groupe de modifications à OSM sous import_artm et documenté comme fusion des arrêts aux mêmes coordonnées.