Caso de estudio 07 / 17Ingeniería de datos
Auditoría de conservación de masa en simulaciones de derrames
Un auditor que sigue la masa del modelo de fugas a cada cuadro dibujado: tres capas de error corregidas y cuatro invariantes de balance.
Stack
- TypeScript
- Node.js
- CesiumJS
- InfluxDB
- MongoDB
- Puppeteer
01 · Cómo funciona
- HoyaModificado en este trabajo
- Flujo de datos
Qué hace
En la plataforma de monitoreo, un sistema de tuberías y un canal ejecutan cada uno una simulación que estima cuánto fluido escapa y dibuja adónde va en un mapa 3D para los operadores. Construí un auditor que sigue la masa desde el volumen que entra al motor de derrames hasta cada cuadro dibujado, medida sobre la geometría que el mapa realmente renderiza.
Leer más
Hoy cada cuadro concilia con el cálculo, y cuatro invariantes lo garantizan.
6 conexiones· elige un componente para ver su recorrido
- Modelo detector de fugas a Agregador de eventos: caudal, volumen, inicio
- Agregador de eventos a Motor de derrames: volumen con evento abierto
- Motor de derrames a Paquete de render: celdas, anchos por cuadro
- Paquete de render a Servicio de mapas 3D: dibuja cada cuadro
- Agregador de eventos a Auditor de balance: atribuido vs liberado
- Paquete de render a Auditor de balance: dibujado vs calculado
02Resultados
- R01Cuanto más bajo, mejor
Volumen dibujado ÷ volumen liberado
Antes 4.3×, después 1×, 4.3× menor. Cuanto más bajo, mejor.AntesDespués - R02Cuanto más bajo, mejor
Peor error por cuadro, dibujado vs calculado
Antes 538%, después 1.1%, 489× menor. Cuanto más bajo, mejor.AntesDespués - R03Cuanto más bajo, mejor
Liberación por desborde ÷ caudal del canal
Antes 1.8×, después 1×, −44%. Cuanto más bajo, mejor.AntesDespués
Qué logró
- Volumen de derrame dibujado: hasta 4.3× la descarga real → igual a ella
- Cuadros que concilian con el cálculo: 22 % → 100 %
- Desborde del canal: hasta 1.8× el caudal del canal → acotado al caudal que transporta
Leer más
- Escurrimiento diluido: una lámina unas 34× más ancha de lo real → una trayectoria calculada a partir de la pendiente y la rugosidad
- Protección contra regresiones: ninguna → cuatro invariantes de balance de masa, en la suite de pruebas y en el navegador
El desafío
Nada lanzaba un error, así que era un problema de verificación y no de depuración: el depósito oscilaba en vez de crecer, porque se creaba y se destruía masa en tres capas distintas.
El modelo de fugas informa el volumen como caudal por el tiempo transcurrido desde que estima que empezó la fuga, de modo que los eventos posteriores a un vacío de datos heredaban todo el contador y una caída de caudal se contaba dos veces; en una línea el mapa dibujó 4.3 veces el volumen que había salido de la tubería.
Leer más
Los cuadros reutilizaban anchos obsoletos, el reparto del agua perdía cerca del 5 % y el fluido que salía del terreno modelado nunca se contabilizaba, así que el 78 % de los cuadros no se podía verificar. En el canal, un solo desborde podía liberar 1.8 veces el caudal del propio canal.
Qué aprendí
Auditar sobre la geometría que el usuario realmente ve: seguir la masa hasta el píxel expuso errores que ningún componente mostraba por sí solo. Dejé intacto el volumen del modelo de fugas y lo mostré junto al del motor, para que los operadores comparen dos estimaciones independientes en vez de confiar en una sola.
Leer más
El mismo instrumento reveló límites que dejé para después a conciencia, como una velocidad mínima y la sensibilidad a la resolución de la malla, porque cambiarlos movería resultados que ya estaban en uso. Los umbrales merecen el mismo rigor que las ecuaciones: un corte de pendiente hacía oscilar el escurrimiento, y una rampa continua lo corrigió.
Stack
- TypeScript
- Node.js
- CesiumJS
- InfluxDB
- MongoDB
- Puppeteer
Habilidades
- Auditoría de simulaciones
- Modelado numérico
- Pruebas basadas en invariantes
- Hidráulica de canales abiertos
- Depuración de flujos de datos

