Voltar ao blog de BIM e IFC
Gêmeos digitais · 2026-10-16 · 8 min
Quão atuais são os dados urbanos em tempo real? Seis feeds medidos durante 24 horas
“Tempo real” não diz nada sobre quão antigos os dados estão quando chegam até você. Registramos durante 24 horas seis feeds públicos que gêmeos digitais ao vivo leem e medimos a idade de cada veículo e de cada estação neles. A resposta vai de menos de um segundo a um minuto e meio, e o timestamp do próprio feed pode escondê-la.
O gêmeo digital da saída da estação Tochōmae no IFC Viewer Online: o modelo IFC da saída A4 no mapa de Tóquio, com o número ao vivo do trem da Toei na plataforma flutuando acima
Todo feed ao vivo se diz em tempo real. Para um gêmeo digital, essa expressão esconde o único número que decide o que as suas cores significam: quão antigos os dados estão quando chegam. Uma doca de bicicletas pintada de vermelho porque não tinha bicicletas três minutos atrás não é o mesmo que uma que não tem nenhuma agora.
Então medimos. Durante 24 horas, registramos seis feeds públicos que gêmeos ao vivo leem em Barcelona, Helsinque e Tóquio e, para cada veículo ou estação em cada resposta, comparamos o horário registrado pelo publicador com o horário em que os dados chegaram. O registro completo está publicado[log].
O essencial
- O fluxo MQTT da HSL chegou em menos de um segundo. A mesma frota, via GTFS-Realtime, tinha cerca de 2 segundos de idade, mas os navegadores não conseguem ler esse feed.
- As posições dos trens da Toei tinham cerca de meio minuto. As posições dos ônibus da Toei e as estações do Bicing tinham cerca de um minuto e meio na mediana, e até cerca de três minutos para 90% deles.
- O timestamp do próprio feed pode enganar: o arquivo do Bicing tinha um terço de segundo, enquanto as estações dentro dele tinham se reportado cerca de 95 segundos antes.
- O feed de carregadores do Endolla não traz nenhum horário de reporte, só o de quando cada carregador mudou pela última vez, então não há como mostrar quão atual ele está.
- Todas as 14.329 requisições foram respondidas, e o fluxo MQTT trouxe mensagens em todos os minutos do dia.
Idade mediana dos veículos ou das estações em uma resposta típica, e até onde chegam 90% deles.
Como medimos
- Das 21:15 UTC de 15 de outubro às 21:15 UTC de 16 de outubro de 2026, em um computador na Europa com relógio sincronizado.
- O GTFS-Realtime da HSL foi consultado a cada 15 segundos; o Bicing e os dois feeds da Toei, a cada 30 segundos; o Endolla, a cada 5 minutos. O fluxo MQTT da HSL foi assinado para a área de Helsinque e resumido por minuto.
- Em cada resposta, calculamos a mediana e o percentil 90 sobre os seus veículos ou estações; a figura mostra o valor típico desses números ao longo das 24 horas.
A idade é o horário de chegada menos o timestamp que o publicador registrou para cada item: o momento em que a posição de um veículo foi medida, no GTFS-Realtime[gtfsrt]; a última vez que uma estação se reportou, no GBFS[gbfs]; o horário de cada mensagem, no fluxo da HSL[hfp]; e o horário de registro de cada trem, no ODPT.
Feed por feed
| Feed | Como chega | Idade mediana | 90% dos itens abaixo de | Itens por resposta |
|---|
| Ônibus da HSL, HFP (Helsinque) | MQTT, via push | menos de 1 s | menos de 1 s | ~28.000 mensagens por minuto |
| Veículos da HSL, GTFS-Realtime (Helsinque) | HTTP, a cada 15 s; sem CORS | 1,9 s | 1,9 s | 843 veículos |
| Trens da Toei, ODPT (Tóquio) | HTTP, a cada 30 s | 28 s | 30 s | 92 trens |
| Ônibus da Toei, GTFS-Realtime (Tóquio) | HTTP, a cada 30 s | 88 s | 3,1 min | 490 ônibus |
| Estações Bicing, GBFS 3.0 (Barcelona) | HTTP, a cada 30 s | 95 s | 2,8 min | 543 estações |
| Carregadores Endolla, GELFS (Barcelona) | HTTP, a cada 5 min | não consta | não consta | 1.366 conectores |
Valores típicos ao longo de 24 horas, 15–16 de outubro de 2026. As contagens de itens são medianas; a Toei não opera trens nem ônibus de madrugada.
Surgem três grupos. A HSL publica o que cada ônibus diz no momento em que ele diz, então a idade fica perto de zero via MQTT e em cerca de dois segundos no seu arquivo GTFS-Realtime, gerado em lotes. Os registros de trens da Toei tinham tipicamente cerca de meio minuto. Cada ônibus da Toei e cada estação do Bicing se reporta a cada poucos minutos, então, a qualquer momento, cerca de metade deles tem mais de um minuto e meio: 49% dos ônibus e 52% das estações tinham mais de 90 segundos.
O timestamp que diz “atualizado”
O arquivo de estado das estações do Bicing traz um horário last_updated, e ele sempre estava a menos de um segundo do momento atual: o horário é gravado no arquivo quando ele é servido. As 543 estações dentro dele tinham se reportado, na mediana, 95 segundos antes. Um gêmeo que confiasse no horário do arquivo mostraria “atualizado há 0 s” sobre dados de um minuto e meio atrás. O feed de ônibus da Toei mostra o mesmo padrão, mais brando: o timestamp do arquivo tinha cerca de 16 segundos; os seus ônibus, cerca de 88.
A lição é simples: a idade é uma propriedade de cada item, não do arquivo. Leia o horário que cada veículo ou estação informa, e mostre esse horário.
O feed que não sabe dizer
O tamanho do arquivo de pontos de recarga do Endolla mudou em 262 de 286 intervalos de cinco minutos, então ele claramente é mantido. Mas cada conector traz apenas o horário em que o seu estado mudou pela última vez: metade deles não mudava havia cerca de 21 horas; um décimo, havia mais de 10 dias. Isso pode estar perfeitamente correto (um carregador que ninguém usou durante a noite) ou ser um carregador que parou de se reportar; o feed não consegue distinguir os dois casos. Um gêmeo pode mostrar esses dados “conforme publicados”, nunca como ao vivo.
Push ou consulta periódica
Os dois canais da HSL trazem os mesmos ônibus. Via MQTT, cada posição chega no momento em que acontece; pelo arquivo consultado periodicamente, ela espera o próximo lote, e o navegador ainda espera a sua próxima consulta. Consultar também tem custo: o arquivo do Bicing tem cerca de 268 KB antes da compressão para as 543 estações, então um gêmeo que precisa de uma só estação ainda baixa todas a cada consulta. Consultar com mais frequência do que a fonte muda só gasta essa banda duas vezes.
O que isso significa para um gêmeo
- Mostre a idade ao lado do valor, a partir do timestamp do próprio item, e não do arquivo.
- Defina o limite de desatualização acima da idade normal do feed. Os exemplos ao vivo daqui usam 45 segundos para as baias de ônibus da HSL, 2 minutos para os trens da Toei, 10 minutos para o ponto de ônibus da Toei e 15 minutos para o Bicing.
- Cinza significa “sem dados recentes”, nunca o último valor disfarçado de atual.
- Prefira push quando o publicador oferecer; não consulte mais rápido do que a fonte muda.
- Um feed sem horário por item pode ser mostrado, mas não chamado de ao vivo.
Se uma página web pode sequer ler cada um desses feeds é a outra metade da questão: quais dados abertos de cidades uma página web consegue ler. Como o gêmeo de Helsinque usa o fluxo MQTT está explicado no gêmeo do terminal de ônibus via MQTT.
Quão atuais são os dados urbanos em tempo real? Seis feeds medidos durante 24 horas