Torna al blog BIM e IFC
Gemelli digitali · 2026-10-16 · 8 min
Quanto sono aggiornati i dati urbani in tempo reale? Sei feed misurati per 24 ore
«In tempo reale» non dice nulla su quanto sono vecchi i dati quando ti arrivano. Per 24 ore abbiamo registrato sei feed pubblici che i gemelli digitali in tempo reale leggono, misurando l'età di ogni veicolo e di ogni stazione al loro interno. La risposta va da meno di un secondo a un minuto e mezzo, e il timestamp del feed stesso può nasconderla.
Il gemello digitale dell'uscita della stazione di Tochōmae in IFC Viewer Online: il modello IFC dell'uscita A4 sulla mappa di Tokyo, con il numero in tempo reale del treno Toei in banchina sospeso sopra
Ogni feed live si definisce «in tempo reale». Per un gemello digitale (digital twin), quella parola nasconde l'unico numero che decide cosa significano i suoi colori: quanto sono vecchi i dati quando arrivano. Un ancoraggio per bici colorato di rosso perché tre minuti fa non aveva bici non è la stessa cosa di uno che non ne ha adesso.
Così l'abbiamo misurato. Per 24 ore abbiamo registrato sei feed pubblici che i gemelli in tempo reale leggono a Barcellona, Helsinki e Tokyo e, per ogni veicolo o stazione di ogni risposta, abbiamo confrontato l'orario scritto da chi pubblica i dati con l'orario in cui i dati sono arrivati. La registrazione completa è pubblicata[log].
In sintesi
- Il flusso MQTT di HSL arrivava in meno di un secondo. La stessa flotta, in GTFS-Realtime, era vecchia di circa 2 secondi, ma i browser non possono leggere quel feed.
- Le posizioni dei treni Toei erano vecchie di circa mezzo minuto. Quelle degli autobus Toei e le stazioni Bicing di circa un minuto e mezzo in mediana, e fino a circa tre minuti per il 90%.
- Il timestamp del feed stesso può ingannare: il file di Bicing aveva un terzo di secondo, mentre le stazioni al suo interno avevano comunicato il proprio stato circa 95 secondi prima.
- Il feed delle colonnine Endolla non riporta alcun orario di comunicazione, solo quando ogni colonnina è cambiata l'ultima volta, quindi non si può mostrare quanto sia aggiornato.
- Tutte le 14.329 richieste hanno ricevuto risposta, e il flusso MQTT ha trasmesso messaggi in ogni minuto della giornata.
Età mediana dei veicoli o delle stazioni in una risposta tipica, e fin dove arriva il 90% di essi.
Come abbiamo misurato
- Dalle 21:15 UTC del 15 ottobre alle 21:15 UTC del 16 ottobre 2026, su un solo computer in Europa con l'orologio sincronizzato.
- HSL GTFS-Realtime è stato interrogato ogni 15 secondi; Bicing ed entrambi i feed Toei ogni 30 secondi; Endolla ogni 5 minuti. Al flusso MQTT di HSL ci siamo sottoscritti per l'area di Helsinki, riassumendolo minuto per minuto.
- Per ogni risposta abbiamo calcolato la mediana e il 90° percentile sui suoi veicoli o stazioni; il grafico mostra il valore tipico di questi due dati nelle 24 ore.
L'età è l'orario di arrivo meno il timestamp che chi pubblica ha scritto per ogni elemento: il momento in cui è stata misurata la posizione di un veicolo in GTFS-Realtime[gtfsrt], l'ultima volta che una stazione ha comunicato il proprio stato in GBFS[gbfs], l'orario di ciascun messaggio nel flusso di HSL[hfp] e l'orario del record di ogni treno in ODPT.
Feed per feed
| Feed | Come arriva | Età mediana | 90% degli elementi entro | Elementi per risposta |
|---|
| Autobus HSL, HFP (Helsinki) | MQTT, in push | sotto 1 s | sotto 1 s | ~28.000 messaggi al minuto |
| Veicoli HSL, GTFS-Realtime (Helsinki) | HTTP, ogni 15 s; senza CORS | 1,9 s | 1,9 s | 843 veicoli |
| Treni Toei, ODPT (Tokyo) | HTTP, ogni 30 s | 28 s | 30 s | 92 treni |
| Autobus Toei, GTFS-Realtime (Tokyo) | HTTP, ogni 30 s | 88 s | 3,1 min | 490 autobus |
| Stazioni Bicing, GBFS 3.0 (Barcellona) | HTTP, ogni 30 s | 95 s | 2,8 min | 543 stazioni |
| Colonnine Endolla, GELFS (Barcellona) | HTTP, ogni 5 min | non disponibile | non disponibile | 1.366 connettori |
Valori tipici nell'arco di 24 ore, 15–16 ottobre 2026. I conteggi degli elementi sono mediane; a notte fonda Toei non ha treni né autobus in servizio.
Ne emergono tre gruppi. HSL pubblica ciò che dice ogni autobus nel momento in cui lo dice, quindi l'età è vicina a zero via MQTT e di circa due secondi nel suo file GTFS-Realtime, che raccoglie i dati a lotti. I record dei treni Toei avevano di solito circa mezzo minuto. Gli autobus Toei e le stazioni Bicing comunicano ciascuno ogni pochi minuti, quindi in qualsiasi momento circa la metà è più vecchia di un minuto e mezzo: il 49% degli autobus e il 52% delle stazioni superava i 90 secondi.
Il timestamp che dice «aggiornato»
Il file di stato delle stazioni Bicing riporta un orario last_updated, ed era sempre entro un secondo dall'ora attuale: il file riceve il timestamp nel momento in cui viene servito. Le 543 stazioni al suo interno avevano comunicato il proprio stato, in mediana, 95 secondi prima. Un gemello che si fidasse dell'orario del file mostrerebbe «aggiornato 0 s fa» su dati vecchi di un minuto e mezzo. Il feed degli autobus Toei mostra lo stesso schema, in forma più lieve: il timestamp del file aveva circa 16 secondi, i suoi autobus circa 88.
La lezione è semplice: l'età è una proprietà di ogni elemento, non del file. Leggi l'orario che comunica ogni veicolo o stazione, e mostra quello.
Il feed che non può dirlo
La dimensione del file dei punti di ricarica Endolla è cambiata in 262 intervalli di cinque minuti su 286, quindi è chiaramente mantenuto. Ma ogni connettore riporta solo l'orario del suo ultimo cambio di stato: la metà non cambiava da circa 21 ore, un decimo da più di 10 giorni. Può essere del tutto corretto, una colonnina che nessuno ha usato durante la notte, oppure una colonnina che ha smesso di comunicare; il feed non permette di distinguere i due casi. Un gemello può mostrare dati del genere «così come pubblicati», mai come dati in tempo reale.
Push o polling
I due canali di HSL trasportano gli stessi autobus. Via MQTT ogni posizione arriva nel momento in cui viene rilevata; nel file interrogato periodicamente aspetta il lotto successivo, e in più il browser aspetta la propria interrogazione successiva. Il polling ha anche un costo: il file di Bicing pesa circa 268 KB prima della compressione per tutte le 543 stazioni, quindi un gemello a cui serve una sola stazione le scarica comunque tutte a ogni interrogazione. Interrogare più spesso di quanto cambi la fonte significa solo spendere due volte quella banda.
Cosa significa per un gemello
- Mostra l'età accanto al valore, calcolata dal timestamp dell'elemento, non da quello del file.
- Imposta la soglia di dato obsoleto sopra l'età normale del feed. Gli esempi in tempo reale citati qui usano 45 secondi per gli stalli degli autobus HSL, 2 minuti per i treni Toei, 10 minuti per la fermata degli autobus Toei e 15 minuti per Bicing.
- Grigio significa «nessun dato recente», mai l'ultimo valore spacciato per attuale.
- Preferisci il push dove chi pubblica i dati lo offre; non interrogare la fonte più spesso di quanto cambi.
- Un feed senza un orario per ogni elemento si può mostrare, ma non definire «in tempo reale».
Se una pagina web possa leggere o meno ciascuno di questi feed è l'altra metà della questione: quali open data delle città può leggere una pagina web. Come il gemello di Helsinki usa il flusso MQTT lo spiega il gemello del terminal bus via MQTT.
Quanto sono aggiornati i dati urbani in tempo reale? Sei feed misurati per 24 ore