Plataforma para cliente · UAI – Underwater Acoustics International

MapPrism

Una plataforma de procesamiento LiDAR y batimétrico que convierte nubes de puntos crudas en productos 3D y 2D listos para la web, automáticamente.

1/3Nube de puntos batimétrica 3D junto a un mapa 2D con curvas de nivel, hillshade, backscatter y sonar de barrido lateral

Construida para UAI, una empresa de levantamientos hidrográficos y topográficos, MapPrism toma nubes LAS/LAZ de sonar multihaz y LiDAR y produce curvas de nivel, hillshades, MDE coloreados, tilesets COPC/EPT y escenas Potree sin que nadie toque PDAL ni GDAL a mano.

En resumen

  • Quince ejecutores tipados (reproyección, regrid, coloreado, MDS/hillshade, curvas de nivel, COPC/EPT/Potree, teselas XYZ) implementados como workflows de n8n
  • Ocho pipelines predefinidos registrados como recetas en Ordo, más recetas personalizadas validadas contra los contratos de los ejecutores
  • La gestión adaptativa de memoria divide levantamientos enormes en subconjuntos Entwine en potencias de cuatro y los vuelve a fusionar
  • Un sitio de documentación (VitePress) escrito para los desarrolladores frontend y autores de pipelines del cliente

El problema

Los levantamientos subacuáticos y topográficos producen nubes de puntos muy grandes en sistemas de coordenadas inconsistentes, y cada entrega necesita la misma familia de productos: una nube transmisible para el navegador, un MDE y un hillshade, curvas de nivel, a veces una nube coloreada con imagen. Hacerlo con scripts funciona hasta que el volumen crece y nadie recuerda qué parámetros produjeron qué archivo.

Cómo funciona

El frontend del cliente envía un trabajo a Ordo con una receta y los artefactos de entrada. Ordo valida la receta (cada tipo de paso debe existir, cada slot de entrada y salida debe coincidir con el contrato de su ejecutor, cada referencia de artefacto debe tener namespace y ser producible), guarda el trabajo y su cola de pasos en PostgreSQL y devuelve un id. Los workers de n8n consultan pasos pendientes, descargan el artefacto de MinIO, ejecutan la herramienta (PDAL, GDAL, Entwine, PotreeConverter), suben el resultado e informan. Un webhook on_exit se dispara al terminar el trabajo, con éxito o fallo, con los metadatos del dataset adjuntos.

Las recetas son DAG deterministas: los artefactos conservan sus nombres por todo el grafo, los parámetros viven en el trabajo y no en la receta, y la misma receta con las mismas entradas siempre da los mismos productos. Los presets cubren los caminos comunes (inspección del dataset, asignación de CRS, reproyección, COPC, EPT, Potree, hillshade coloreado con teselas XYZ, curvas de nivel en MBTiles y PMTiles) y las recetas personalizadas se validan antes de ejecutar nada.

Detalles que costaron trabajo

Entwine carga el dataset completo en memoria al indexar, así que el ejecutor de EPT estima el número de puntos con PDAL, calcula un número seguro de subconjuntos para la RAM disponible, redondea a una potencia de cuatro y construye y fusiona los subconjuntos automáticamente. La reproyección detecta metadatos de CRS inválidos incrustados y estampa el correcto sin mover puntos. La generación de curvas de nivel produce MBTiles y PMTiles con clasificación maestra/secundaria para que el mapa web las estilice directamente.

Las salidas alimentan un visor de pantalla dividida que combina una escena 3D Potree con un mapa 2D MapLibre sincronizado, que es lo que muestran las capturas. MapPrism es la segunda plataforma de producción que corre sobre Ordo, después de Skyport.

Más proyectos

Todos los proyectos