Volver al blog BIM e IFC
Gemelos digitales · 2026-10-10 · 9 min
Autobuses en vivo sobre un modelo IFC: gemelo digital de una terminal de autobuses con MQTT
En la terminal de Elielinaukio, junto a la estación central de Helsinki, cada dársena de un modelo IFC se ilumina cuando un autobús real se detiene en ella, con el número de línea encima. Los datos proceden del feed MQTT público de HSL, que recibe directamente el navegador.
La estación central de Helsinki y la terminal de autobuses de Elielinaukio como modelos IFC sobre el mapa 3D, con los números de línea de los autobuses en vivo flotando sobre las dársenas
Una terminal de autobuses es una buena prueba para un gemelo digital, porque lo que ocurre en ella cambia de minuto en minuto. Diecisiete dársenas, autobuses que entran y salen, puertas que se abren y se cierran. Si el modelo puede mostrar eso en vivo, con datos públicos, puede mostrar casi cualquier cosa.
Esta escena lo hace para Elielinaukio, la terminal del lado oeste de la estación central de Helsinki. Cada dársena del modelo IFC se ilumina mientras un autobús real está detenido en ella, con su número de línea flotando encima. Las posiciones vienen de HSL, la autoridad de transporte de Helsinki, que publica la posición de cada vehículo aproximadamente una vez por segundo por MQTT, y el navegador se suscribe directamente.
Lo esencial
- MQTT sobre WebSocket permite que una página web reciba posiciones de vehículos en vivo sin ningún servidor propio por medio, siempre que el broker lo permita. El de HSL lo permite.
- Suscríbete de forma acotada. Un fragmento geográfico del árbol de topics hace que al navegador solo lleguen los autobuses de la terminal.
- Las dársenas se vinculan a los ids de parada de la agencia de transporte, y los colores siguen reglas sobre campos del mensaje: puertas abiertas, parado, en movimiento o sin autobús.
- Los modelos federados siguen alineados cuando cada satélite se gira según su propia georreferencia. Aquí, el marco de la Catedral difiere 3° del de la terminal.
Pruébalo: los autobuses de Helsinki, ahora
Abre la terminal, la estación y la Catedral sobre el mapa. Las dársenas se iluminan según llegan autobuses reales. De noche circulan pocos, así que las dársenas permanecen en gris durante largos ratos.

Abrir el visor IFC interactivo
Qué estás viendo
Tres modelos IFC georreferenciados (ETRS89 / GK25, EPSG:3879) sobre la ciudad de OpenStreetMap: la estación central de Eliel Saarinen con sus andenes, la Catedral de la plaza del Senado y la terminal de autobuses con sus 17 dársenas (de la 20 a la 36), postes, letreros y marquesina. Dos capas en vivo del Instituto Meteorológico Finlandés muestran la calidad del aire y el tiempo.
Las dársenas a medida que los autobuses llegan y se van: cada poste y letrero toma el color de lo que hace el autobús que está en esa parada.
| Color de la dársena | Regla sobre el mensaje de HSL | Significado |
|---|
| Verde | puertas abiertas (drst = 1) | Embarque de pasajeros |
| Azul | velocidad inferior a 0,5 m/s | Parado en la dársena |
| Ámbar | cualquier otra lectura en la parada | Entrando o saliendo |
| Gris | sin lecturas durante 45 s | Sin autobús |
Gana la primera regla que coincide. El número de línea (desi) flota sobre la dársena.
Por qué MQTT y no GTFS-Realtime
GTFS-Realtime es el formato habitual para datos de transporte en vivo, y HSL lo publica. Pero ese feed no envía las cabeceras CORS que necesita un navegador para leerlo desde otro sitio, así que usarlo obligaría a mantener un proxy. El feed de posicionamiento de alta frecuencia es distinto: es MQTT sobre WebSocket, público, sin clave y accesible desde cualquier página web.
Además, es más rico para este fin. Cada mensaje corresponde a un autobús, aproximadamente una vez por segundo, con su línea, su velocidad, el estado de las puertas y la parada en la que está[hfp]. El topic indica dónde está el autobús, de modo que una suscripción puede recortarse a una porción de la ciudad:
/hfp/v2/journey/ongoing/vp/bus/+/+/+/+/+/+/+/+/60;24/19/73/#
La suscripción nivel a nivel: cada + admite cualquier valor, y el geohash reduce el flujo a la celda que rodea la terminal.
La última parte, 60;24/19/73, es una celda de la cuadrícula geográfica de HSL alrededor de la terminal. El navegador recibe los autobuses de esa celda y nada más. Lee los mensajes una vez por segundo y se queda con el más reciente de cada parada. Un autobús entre paradas, sin parada en su mensaje, se omite.
De un id de parada a una dársena
HSL identifica las paradas por número y el modelo IFC por nombre. La lista de paradas que publica HSL une ambos: hoy nueve de las diecisiete dársenas tienen una parada de HSL, y cada una de ellas es una vinculación. Los elementos se encuentran por nombre, «Bay 20» y así sucesivamente. Con eso se localizan el poste y los tres letreros de cada dársena.
| Dársena | Id de parada de HSL |
|---|
| 20 | 1020128 |
| 22 | 1020131 |
| 23 | 1020133 |
| 24 | 1020135 |
| 25 | 1020132 |
| 26 | 1020239 |
| 28 | 1020243 |
| 29 | 1020245 |
| 30 | 1020130 |
De la lista de paradas GTFS de HSL, leída una vez cuando se escribió la escena. Las otras ocho dársenas no tienen parada y permanecen en gris.
La ficha de una dársena de noche: sin autobús en la dársena, la sección en vivo lo dice en lugar de mostrar una lectura antigua, junto a los datos IFC del poste.
{
"id": "hsl-hfp-elielinaukio",
"url": "wss://mqtt.hsl.fi:443/",
"topics": ["/hfp/v2/journey/ongoing/vp/bus/+/+/+/+/+/+/+/+/60;24/19/73/#"],
"mapping": { "idField": "VP.stop", "timeField": "VP.tst" }
}
Esta fuente de dispositivos es todo lo que hace falta para leer otra flota u otra zona: un broker que hable MQTT sobre WebSocket, los topics y qué campo del mensaje identifica el dispositivo. El resto de la escena sigue igual.
Calidad del aire y tiempo
Las dos capas del mapa proceden de los datos abiertos del Instituto Meteorológico Finlandés[fmi], leídos en el navegador como simples entidades WFS: 11 estaciones de calidad del aire y 7 estaciones meteorológicas en torno a la ciudad cuando lo comprobamos. La calidad del aire es horaria y puede llegar con hasta 40 minutos de retraso; el tiempo, cada 10 minutos.
Tres modelos, un mapa
La estación, la Catedral y la terminal son archivos distintos, y cada uno lleva su propia georreferencia. Los ejes locales de la Catedral están girados 3° respecto a los de la terminal, que ancla el mapa. Si el visor se limitara a mover los otros modelos a su sitio sin girarlos, la Catedral quedaría torcida 3°, con unos 2 m de desvío en las esquinas.
El visor gira cada modelo según su propio marco, en torno a su propio centro. Medidas contra el contorno de la Catedral en OpenStreetMap, las paredes quedan ahora a 0,56 m de él y con 0,37° de desviación. Ese resto refleja la precisión con la que el modelo y OSM dibujan, cada uno, el edificio.
Límites que conviene decir en voz alta
- Los modelos son ilustrativos, dibujados a partir de fuentes públicas. No son levantamientos topográficos.
- Solo nueve dársenas tienen una parada de HSL, así que las otras ocho nunca se iluminan.
- De noche circulan pocos autobuses y las dársenas permanecen en gris durante largos ratos.
- El terreno global marca aquí unos 18 m por encima del sistema de alturas finlandés, de modo que los modelos se apoyan en la superficie del terreno y no a sus alturas declaradas. Se conservan sus alturas relativas entre sí.
- Una pestaña en segundo plano recibe los mensajes con menos frecuencia, porque los navegadores ralentizan los temporizadores de las pestañas ocultas.
El mismo formato de escena mueve una plaza de la ciudad con datos de bicicletas compartidas y de recarga en el gemelo de datos abiertos de Barcelona, y dos estaciones de Tokio con datos de trenes y tranvías en los gemelos de transporte de Tokio con ODPT. Para un gemelo alimentado por un sensor y no por un feed de transporte, consulta LiDAR en tiempo real en un gemelo digital web.
Referencias
- Posicionamiento de alta frecuencia — Digitransit (HSL). Los topics MQTT y los campos de mensaje que usa la terminal.
- Datos abiertos — Finnish Meteorological Institute. Observaciones de calidad del aire y meteorología, leídas aquí como simples entidades WFS.
Autobuses en vivo sobre un modelo IFC: gemelo digital de una terminal de autobuses con MQTT