Retour au blog BIM & IFC
Jumeaux numériques · 2026-10-16 · 8 min
Les données urbaines en temps réel sont-elles vraiment fraîches ? Six flux mesurés pendant 24 heures
« Temps réel » ne dit rien de l'âge des données au moment où elles vous parviennent. Pendant 24 heures, nous avons enregistré six flux publics que lisent des jumeaux numériques en direct, et mesuré l'âge de chaque véhicule et de chaque station qu'ils contiennent. La réponse va de moins d'une seconde à une minute et demie, et l'horodatage du flux lui-même peut la masquer.
Le jumeau numérique de la sortie de la station Tochōmae dans IFC Viewer Online : la maquette IFC de la sortie A4 sur la carte de Tokyo, avec le numéro en direct du train Toei à quai qui flotte au-dessus
Tout flux en direct se dit en temps réel. Pour un jumeau numérique, ce mot masque le seul chiffre qui décide de ce que signifient ses couleurs : l'âge des données à leur arrivée. Un point d'ancrage peint en rouge parce qu'il n'avait plus de vélo il y a trois minutes n'est pas la même chose qu'un point d'ancrage qui n'en a plus maintenant.
Nous l'avons donc mesuré. Pendant 24 heures, nous avons enregistré six flux publics que lisent des jumeaux en direct à Barcelone, Helsinki et Tokyo et, pour chaque véhicule ou station de chaque réponse, nous avons comparé l'heure écrite par l'éditeur à l'heure d'arrivée des données. Le relevé complet est publié[log].
L’essentiel
- Le flux MQTT de HSL arrivait en moins d'une seconde. La même flotte en GTFS-Realtime avait environ 2 secondes, mais les navigateurs ne peuvent pas lire ce flux.
- Les positions des trains Toei avaient environ une demi-minute. Celles des bus Toei et les stations Bicing avaient environ une minute et demie en médiane, et jusqu'à environ trois minutes pour 90 % d'entre elles.
- L'horodatage propre à un flux peut tromper : le fichier de Bicing avait un tiers de seconde, alors que les stations qu'il contenait avaient transmis leur état environ 95 secondes plus tôt.
- Le flux des bornes de recharge Endolla n'indique aucune heure de transmission, seulement le dernier changement de chaque borne : impossible donc de montrer à quel point il est à jour.
- Les 14 329 requêtes ont toutes reçu une réponse, et le flux MQTT a transporté des messages à chaque minute de la journée.
Âge médian des véhicules ou des stations dans une réponse type, et jusqu'où vont 90 % d'entre eux.
Comment nous avons mesuré
- Du 15 octobre à 21:15 UTC au 16 octobre 2026 à 21:15 UTC, sur un seul ordinateur en Europe dont l'horloge était synchronisée.
- Le GTFS-Realtime de HSL était interrogé toutes les 15 secondes ; Bicing et les deux flux Toei toutes les 30 secondes ; Endolla toutes les 5 minutes. Pour le flux MQTT de HSL, l'abonnement couvrait la région d'Helsinki et était résumé minute par minute.
- Pour chaque réponse, nous avons pris la médiane et le 90e percentile sur ses véhicules ou ses stations ; le graphique montre la valeur type de ces mesures sur les 24 heures.
L'âge est l'heure d'arrivée moins l'horodatage écrit par l'éditeur pour chaque élément : le moment où la position d'un véhicule a été mesurée en GTFS-Realtime[gtfsrt], la dernière transmission d'une station en GBFS[gbfs], l'heure propre de chaque message dans le flux de HSL[hfp], et l'heure d'enregistrement de chaque train dans ODPT.
Flux par flux
| Flux | Acheminement | Âge médian | 90 % des éléments sous | Éléments par réponse |
|---|
| Bus HSL, HFP (Helsinki) | MQTT, en push | moins de 1 s | moins de 1 s | ~28 000 messages par minute |
| Véhicules HSL, GTFS-Realtime (Helsinki) | HTTP, toutes les 15 s ; sans CORS | 1,9 s | 1,9 s | 843 véhicules |
| Trains Toei, ODPT (Tokyo) | HTTP, toutes les 30 s | 28 s | 30 s | 92 trains |
| Bus Toei, GTFS-Realtime (Tokyo) | HTTP, toutes les 30 s | 88 s | 3,1 min | 490 bus |
| Stations Bicing, GBFS 3.0 (Barcelone) | HTTP, toutes les 30 s | 95 s | 2,8 min | 543 stations |
| Bornes Endolla, GELFS (Barcelone) | HTTP, toutes les 5 min | non indiqué | non indiqué | 1 366 connecteurs |
Valeurs types sur 24 heures, 15–16 octobre 2026. Le nombre d'éléments est une médiane ; la Toei ne fait circuler ni trains ni bus au cœur de la nuit.
Trois groupes se dégagent. HSL publie ce que dit chaque bus au moment où il le dit : l'âge est donc proche de zéro via MQTT et d'environ deux secondes dans son fichier GTFS-Realtime publié par lots. Les enregistrements des trains Toei avaient en général environ une demi-minute. Les bus Toei et les stations Bicing transmettent chacun toutes les quelques minutes ; à tout moment, environ la moitié d'entre eux ont donc plus d'une minute et demie : 49 % des bus et 52 % des stations avaient plus de 90 secondes.
L'horodatage qui dit « frais »
Le fichier d'état des stations Bicing porte une heure last_updated, toujours à moins d'une seconde de l'instant présent : le fichier est horodaté au moment où il est servi. Les 543 stations qu'il contient avaient transmis leur état 95 secondes plus tôt en médiane. Un jumeau qui se fierait à l'heure du fichier afficherait « mis à jour il y a 0 s » sur des données vieilles d'une minute et demie. Le flux des bus Toei présente le même schéma, en plus atténué : l'horodatage du fichier avait environ 16 secondes, ses bus environ 88.
La leçon est simple : l'âge est une propriété de chaque élément, pas du fichier. Lisez l'heure que transmet chaque véhicule ou station, et affichez-la.
Le flux qui ne peut pas le dire
La taille du fichier des points de recharge Endolla a changé dans 262 des 286 intervalles de cinq minutes : il est donc clairement maintenu. Mais chaque connecteur ne porte que l'heure de son dernier changement d'état : la moitié n'avait pas changé depuis environ 21 heures, un dixième depuis plus de 10 jours. C'est peut-être parfaitement exact (une borne que personne n'a utilisée de la nuit), ou bien une borne qui a cessé de transmettre ; le flux ne permet pas de distinguer les deux. Un jumeau peut afficher ces données « telles que publiées », jamais comme des données en direct.
Push ou interrogation périodique
Les deux canaux de HSL transportent les mêmes bus. Via MQTT, chaque position arrive au moment où elle se produit ; dans le fichier interrogé, elle attend le lot suivant, et le navigateur attend en plus sa prochaine interrogation. L'interrogation a aussi un coût : le fichier Bicing pèse environ 268 Ko avant compression pour l'ensemble des 543 stations, si bien qu'un jumeau qui n'a besoin que d'une station les télécharge quand même toutes à chaque interrogation. Interroger plus vite que la source ne change ne fait que dépenser deux fois cette bande passante.
Ce que cela implique pour un jumeau
- Affichez l'âge à côté de la valeur, d'après l'horodatage propre à l'élément, pas celui du fichier.
- Placez la limite d'ancienneté au-dessus de l'âge normal du flux. Les exemples en direct présentés ici utilisent 45 secondes pour les quais de bus HSL, 2 minutes pour les trains Toei, 10 minutes pour l'arrêt de bus Toei et 15 minutes pour Bicing.
- Le gris signifie « aucune donnée récente », jamais la dernière valeur déguisée en valeur actuelle.
- Préférez le push quand l'éditeur le propose ; n'interrogez pas plus vite que la source ne change.
- Un flux sans heure par élément peut être affiché, mais pas présenté comme en direct.
Qu'une page web puisse ou non lire chacun de ces flux constitue l'autre moitié de la question : quelles données ouvertes urbaines une page web peut lire. La façon dont le jumeau d'Helsinki utilise le flux MQTT est décrite dans le jumeau de gare routière via MQTT.
Références
- Le relevé de 24 heures, en CSV — IFC Viewer Online. Chaque interrogation de chaque flux (et chaque minute du flux MQTT), avec la distribution de l'âge des véhicules ou des stations qu'elle contient. 15–16 octobre 2026.
- Référence GTFS Realtime — MobilityData. VehiclePosition.timestamp : le moment où la position du véhicule a été mesurée.
- General Bikeshare Feed Specification — MobilityData. last_reported : le dernier moment où une station a transmis son état au backend de l'opérateur.
- Positionnement haute fréquence (HFP) — Digitransit / HSL. Les positions des véhicules de HSL via MQTT, avec un horodatage par message.
Les données urbaines en temps réel sont-elles vraiment fraîches ? Six flux mesurés pendant 24 heures