etalab / transport-site

Rendre disponible, valoriser et améliorer les données transports
https://transport.data.gouv.fr
190 stars 29 forks source link

Jeux de données comportant du GTFS-RT en JSON #3491

Open AntoineAugusti opened 11 months ago

AntoineAugusti commented 11 months ago

Le PAN s'attache à référencer des données standardisées. Les JDD suivants publient des ressources GTFS-RT renvoyant du JSON et non du Protobuf.

Est-il possible de faire supprimer ces ressources aux producteurs ? Si on décide que ce n'est pas une tâche de nettoyage et qu'on ne veut jamais l'autoriser on peut aussi modifier notre code pour ignorer ces ressources (par exemple règle `format = 'gtfs-rt' et 'lower(titre) contient 'json').

URL Titre du JDD
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-axo-communaute-dagglomeration-creil-sud-oise Réseau urbain AXO
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-corolis-interurbain-communaute-dagglomeration-du-beauvaisis Réseau interurbain Corolis
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-cypre-communaute-de-communes-du-pays-de-valois Réseau urbain Cypré
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-duc-communaute-de-communes-de-laire-cantilienne Réseau urbain DUC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tic-interurbain-communaute-dagglomeration-de-la-region-de-compiegne-et-de-la-basse-automne Réseau interurbain TIC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tic-urbain-communaute-dagglomeration-de-la-region-de-compiegne-et-de-la-basse-automne Réseau urbain TIC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tohm-communaute-de-communes-des-pays-doise-et-dhalatte Réseau urbain TOHM
https://transport.data.gouv.fr/datasets/reseau-cars-region-isere-38 Réseau interurbain de l'Isère (38)
https://transport.data.gouv.fr/datasets/reseau-ruban Réseau urbain Ruban

Pour trouver ces ressources

select distinct 'https://transport.data.gouv.fr/datasets/' || d.slug, d.custom_title
from resource r
join dataset d on d.id = r.dataset_id
where format = 'gtfs-rt' and title ilike '%json%'
thbar commented 10 months ago

Je suis retombé là dessus en constatant des logs d'erreurs ("Resource XYZ failed to load") trop nombreux dans la console javascript sur la page https://transport.data.gouv.fr/explore, du coup je rajoute mes éléments.

En copiant collant les ids et en faisant une requête, et en filtrant pour éliminer ce qui contient "PROTOBUF", j'obtiens ceci.

Il y a des choses sans rapport (lien qui ne répond pas), mais ça permettra de recouper.

select id, url, dataset_id, format, title from resource where
id in (81307,
81129,
81037,
81312,
81305,
81149,
81311,
79742,
81313,
81061,
65913,
81151,
81319,
81317,
81063,
79034,
81133,
81121,
36515,
81123,
81323,
81325,
80731,
81045,
79037,
81047,
80723,
80730,
81141,
80975,
81135,
81143,
81301,
81299,
80732,
81039,
81127,
79746,
78902)
and title not ilike '%PROTOBUF%'

Résultat:

id url dataset_id format title
80731 https://92.103.236.106:8085/ProfilGtfsRt2_0RSProducer-TANGO/TripUpdate.pb 152 gtfs-rt GTFS-RT Mises à jour des trajets en temps réel
81123 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=AXO&dataFormat=gtfs-rt-json 951 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau AXO
78902 https://gtfs.tae76.fr/gtfs-rt.bin 734 gtfs-rt Prochains passages des lignes sur le secteur d'Elbeuf du réseau Astuce exploitées par TAE
81323 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=SABLONS&dataFormat=gtfs-rt-json 950 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Sablons Bus
81325 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=SABLONS&dataFormat=gtfs-rt-json 950 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Sablons Bus
81045 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=DUC&dataFormat=gtfs-rt-json 942 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau DUC
81047 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=DUC&dataFormat=gtfs-rt-json 942 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau DUC
80975 https://accm.2cloud.app/api/gtfsrt/tripupdates/LUMIPLAN-2021-4815-1108/json 727 gtfs-rt Horaires temps-réel du réseau
79746 https://proxy.transport.data.gouv.fr/resource/axeo-guingamp-gtfs-rt-vehicle-position 644 gtfs-rt Données en temps réel au format GTFS-RT (VehiclePosition)
79037 https://www.itinisere.fr/ftp/GtfsRT/GtfsRT.CAPI.json 139 gtfs-rt RUBAN - Offre temps-réel au format GTFS-RT (JSON)
79034 https://www.itinisere.fr/ftp/GtfsRT/GtfsRT.CG38.json 116 gtfs-rt cars Région Isère (38) - Offre temps-réel au format GTFS-RT (JSON)
65913 https://leo.plateforme-2cloud.com/api/gtfsrt/2.0/vehiclepositions/LEO-6547-2543-6895?&format=bin&network=LEO 127 gtfs-rt Extension GTFS-RT : Position des véhicules
80730 https://92.103.236.106:8085/ProfilGtfsRt2_0RSProducer-TANGO/Alerts.pb 152 gtfs-rt GTFS-RT Mise à jour des Alertes
80723 https://proxy.transport.data.gouv.fr/resource/aleop-pdl-gtfs-rt-vehicle-position 754 gtfs-rt GTFS RT Position véhicules temps réel réseau ALEOP Pays de la Loire
81141 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=COROLIS_INT&dataFormat=gtfs-rt-json 956 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Corolis (interurbain)
81121 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=AXO&dataFormat=gtfs-rt-json 951 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau AXO
81129 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=COROLIS_URB&dataFormat=gtfs-rt-json 952 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Corolis (urbain)
81135 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=TIC_URB&dataFormat=gtfs-rt-json 948 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau TIC (urbain)
80732 https://92.103.236.106:8085/ProfilGtfsRt2_0RSProducer-TANGO/VehiclePosition.pb 152 gtfs-rt GTFS-RT Position des véhicules en temps réel
81039 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=TOHM&dataFormat=gtfs-rt-json 941 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau TOHM
81301 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=LEBUS&dataFormat=gtfs-rt-json 946 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Le Bus
81143 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=COROLIS_INT&dataFormat=gtfs-rt-json 956 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Corolis (interurbain)
81299 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=LEBUS&dataFormat=gtfs-rt-json 946 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Le Bus
81127 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=COROLIS_URB&dataFormat=gtfs-rt-json 952 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Corolis (urbain)
81037 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=TOHM&dataFormat=gtfs-rt-json 941 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau TOHM
81305 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=LIBBUS&dataFormat=gtfs-rt-json 945 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Lib'Bus
81307 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=LIBBUS&dataFormat=gtfs-rt-json 945 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Lib'Bus
81311 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=PASSTHELLE&dataFormat=gtfs-rt-json 949 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Pass Thelle Bus
81149 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=TIC_INT&dataFormat=gtfs-rt-json 957 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau TIC (interurbain)
81317 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=LANAVETTE&dataFormat=gtfs-rt-json 943 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau La Navette
81319 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=LANAVETTE&dataFormat=gtfs-rt-json 943 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau La Navette
36515 https://pysae.com/api/v2/groups/car-jaune/gtfs-rt 518 gtfs-rt Horaires en temps réel du réseau Car Jaune en format GTFS-RT
81313 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=PASSTHELLE&dataFormat=gtfs-rt-json 949 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Pass Thelle Bus
81151 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=TIC_INT&dataFormat=gtfs-rt-json 957 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau TIC (interurbain)
81133 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=TIC_URB&dataFormat=gtfs-rt-json 948 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau TIC (urbain)
81061 https://api.oisemob.cityway.fr/dataflow/vehicule-tc-tr/download?provider=CYPRE&dataFormat=gtfs-rt-json 947 gtfs-rt Position des véhicules (GTFS-RT JSON) - réseau Cypré
81063 https://api.oisemob.cityway.fr/dataflow/horaire-tc-tr/download?provider=CYPRE&dataFormat=gtfs-rt-json 947 gtfs-rt Horaire temps réel (GTFS-RT JSON) - réseau Cypré
79742 https://proxy.transport.data.gouv.fr/resource/surf-fougeres-gtfs-rt-vehicle-position 19 gtfs-rt Données en temps réel au format GTFS-RT (VehiclePosition)
thbar commented 10 months ago

Le PAN s'attache à référencer des données standardisées. Les JDD suivants publient des ressources GTFS-RT renvoyant du JSON et non du Protobuf.

Est-il possible de faire supprimer ces ressources aux producteurs ? Si on décide que ce n'est pas une tâche de nettoyage et qu'on ne veut jamais l'autoriser on peut aussi modifier notre code pour ignorer ces ressources (par exemple règle `format = 'gtfs-rt' et 'lower(titre) contient 'json').

@etalab/transport-bizdev j'ajoute qu'en tant que réutilisateur, c'est très pénible à gérer : on se retrouve avec N flux, il faut comprendre qu'il y a un souci sur chacun / l'identifier, puis finir par créer un "filtre" plus ou moins bricolé pour enlever ce qu'on devine qui n'est pas du "vrai GTFS-RT", filtre qui a tendance à être fragile (= sur la description, le titre, comme on peut). Donc important à traiter en terme d'utilisabilité de la donnée, en particulier pour ceux qui vont travailler avec l'API "en masse".

thbar commented 10 months ago

J'ai re-cogité à ça et je me le note pour le point d'équipe.

  1. Je suis très embêté que ça soit stocké sous la dénomination "gtfs-rt" car ce n'est pas le format physique normal, et c'est pénible à filtrer pour un réutilisateur ("moi" dans ce rôle, ou d'autres)
  2. Cela étant dit la valeur pédagogique / transparence d'une retranscription dans un format "non binaire" est évidente https://github.com/MobilityData/GTFS_Realtime_Best-Practices/pull/17
  3. J'avais un peu oublié qu'on avait bien sûr déjà évoqué ce sujet dans le passé https://github.com/etalab/transport-site/issues/2208

En pratique j'aimerais avoir un moyen de différencier le format sémantique (GTFS-RT), d'un éventuel format physique (= sous forme classique protobuf par défaut auquel cas on ne spécifierait rien, ou sous forme JSON), car les deux pourraient avoir leur utilité dans un cas "binaire".

On pourrait aussi les éliminer purement et simplement, mais fournir une page qui fait cette conversion à la demande ("petit proxy" spécialisé), en étant toutefois attentif à ne pas faire péter la RAM car actuellement, la lecture protobuf n'est pas faite de façon streamée par notre librairie !!!

Bref c'était un peu de "brain-dump", à discuter en équipe, mais ça ne me paraît pas acceptable à titre personnel d'indiquer "gtfs-rt" dans le format sans plus de précisions, quand au final la personne doit "deviner" que c'est du JSON etc.

AntoineAugusti commented 6 months ago

Une liste actualisée des JDDs qui semblent avoir du GTFS-RT publié en JSON.

URL Titre du JDD
https://transport.data.gouv.fr/datasets/donnees-theoriques-du-reseau-hopla-communaute-de-communes-de-la-plaine-destrees Réseau urbain Hoplà
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-corolis-interurbain-communaute-dagglomeration-du-beauvaisis Réseau interurbain Corolis
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-corolis-urbain-communaute-dagglomeration-du-beauvaisis Réseau urbain Corolis
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-cypre-communaute-de-communes-du-pays-de-valois Réseau urbain Cypré
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-duc-communaute-de-communes-de-laire-cantilienne Réseau urbain DUC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-la-navette-communaute-de-communes-de-laire-cantilienne Réseau urbain La Navette
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-le-bus-communaute-de-communes-du-clermontois Réseau urbain Le Bus
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-libbus-communaute-de-communes-du-pays-noyonnais Réseau urbain Lib'Bus
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-pass-thelle-bus-communaute-de-communes-thelloise Réseau urbain Pass Thelle Bus
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-sablons-bus-communaute-de-communes-des-sablons Réseau urbain Sablons Bus
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tic-interurbain-communaute-dagglomeration-de-la-region-de-compiegne-et-de-la-basse-automne Réseau interurbain TIC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tic-urbain-communaute-dagglomeration-de-la-region-de-compiegne-et-de-la-basse-automne Réseau urbain TIC
https://transport.data.gouv.fr/datasets/donnees-theoriques-et-temps-reel-du-reseau-tohm-communaute-de-communes-des-pays-doise-et-dhalatte Réseau urbain TOHM
https://transport.data.gouv.fr/datasets/reseau-cars-region-isere-38 Réseau interurbain de l'Isère (38)
https://transport.data.gouv.fr/datasets/reseau-ruban Réseau urbain Ruban
cyrilmorin commented 6 months ago

pour info, il ne restera plus que Ruban et Isère (38) qui ont été alertés tous les autres sont Oise Mobilité et on déjà été modifiés ce jour (cf mon message initial dans Mattermost)

AntoineAugusti commented 1 month ago

@etalab/transport-bizdev Il ne reste que Ruban si quelqu'un est motivé pour leur dire de supprimer cette ressource.

Brewennn commented 1 month ago

@AntoineAugusti je leur envoie un mail. Si jamais ils souhaitent garder le format JSON sur data.gouv.fr, ils peuvent indiquer le format "json" dans le formulaire de data.gouv au lieu de 'gtfsrt' et ça n'apparaitra pas dans transport.data.gouv ?

De ce que je lis dans le code lib/transport à partir de la ligne 436, j'ai l'impression que les JSON ne sont pas importés mais je ne suis pas sûr (et je ne suis pas sûr que ce soit le bon code pour l'import depuis data.gouv.fr)

AntoineAugusti commented 1 month ago

Merci 👌 Effectivement indiquer le format json sur data.gouv.fr devrait bien faire disparaitre cette ressource sur le PAN.

Toutefois on peut leur indiquer que les réutilisateurs souhaitent généralement utiliser des standards et que l'usage est bien du Protobuf pour GTFS-RT. Du Protobuf peut se convertir en JSON (ou XML ou autre).

Le code qui ne retient que certains formats pour la catégorie public-transit est là, pour ta curiosité

https://github.com/etalab/transport-site/blob/98c2e0a06f7a859b34f1f8ef1ce54d53e96a54ba/apps/transport/lib/transport/import_data.ex#L353-L361