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.
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- Proveedores meteorológicos
- Argo Workflows
- Almacenamiento
- Workers de borde
- Mapa y clientes
Plataforma de Datos Meteorológicos
Ingeniero principal en Jane's Weather, una plataforma australiana de datos meteorológicos hoy parte de ACM: de construir su mapa meteorológico a operar toda la plataforma con el equipo de Territorial.
- React
- MapLibre
- PMTiles
- Python
- +10
- Cliente
- Ordo
- Workers n8n
- Object storage
- Finalizador
Ordo
Un plano de control de orquestación basado en contratos para trabajos de procesamiento largos, hecho para situarse sobre n8n.
- TypeScript
- Node.js
- Express
- PostgreSQL
- +3

Sentinel
Una plataforma programable de monitoreo sintético: pruebas en JavaScript, alertas por cambio de estado, páginas de estado públicas, en un VPS de 1 GB.
- TypeScript
- Fastify
- Next.js
- PostgreSQL
- +6