Plataforma para cliente · UAI – Underwater Acoustics International

MapPrism

Uma plataforma de processamento de LiDAR e batimetria que transforma nuvens de pontos brutas em produtos 3D e 2D prontos para a web, automaticamente.

1/3Nuvem de pontos batimétrica 3D ao lado de um mapa 2D com curvas de nível, hillshade, backscatter e sonar de varredura lateral

Construída para a UAI, empresa de levantamentos hidrográficos e topográficos, a MapPrism recebe nuvens LAS/LAZ de sonar multifeixe e LiDAR e produz curvas de nível, hillshades, MDEs colorizados, tilesets COPC/EPT e cenas Potree sem ninguém tocar em PDAL ou GDAL à mão.

Em resumo

  • Quinze executores tipados (reprojeção, regrid, colorização, MDS/hillshade, curvas de nível, COPC/EPT/Potree, tiles XYZ) implementados como workflows n8n
  • Oito pipelines predefinidos registrados como receitas no Ordo, além de receitas personalizadas validadas contra os contratos dos executores
  • Gerenciamento adaptativo de memória divide levantamentos enormes em subconjuntos Entwine em potências de quatro e os funde de volta
  • Um site de documentação (VitePress) escrito para os desenvolvedores frontend e autores de pipeline do cliente

O problema

Levantamentos subaquáticos e topográficos produzem nuvens de pontos muito grandes em sistemas de coordenadas inconsistentes, e cada entrega precisa da mesma família de produtos: uma nuvem transmissível para o navegador, um MDE e um hillshade, curvas de nível, às vezes uma nuvem colorizada com imagem. Fazer isso com scripts funciona até o volume crescer e ninguém lembrar quais parâmetros geraram qual arquivo.

Como funciona

O frontend do cliente submete um job ao Ordo com uma receita e os artefatos de entrada. O Ordo valida a receita (todo tipo de etapa precisa existir, todo slot de entrada e saída precisa bater com o contrato do executor, toda referência de artefato precisa ter namespace e ser produzível), armazena o job e sua fila de etapas no PostgreSQL e devolve um id. Workers n8n consultam etapas pendentes, baixam o artefato do MinIO, executam a ferramenta (PDAL, GDAL, Entwine, PotreeConverter), sobem o resultado e reportam. Um webhook on_exit dispara quando o job termina, com sucesso ou falha, com os metadados do dataset anexados.

Receitas são DAGs determinísticos: artefatos mantêm seus nomes por todo o grafo, parâmetros vivem no job e não na receita, e a mesma receita com as mesmas entradas sempre gera os mesmos produtos. Os presets cobrem os caminhos comuns (inspeção do dataset, atribuição de CRS, reprojeção, COPC, EPT, Potree, hillshade colorido com tiles XYZ, curvas de nível em MBTiles e PMTiles) e receitas personalizadas são validadas antes de qualquer execução.

Detalhes que deram trabalho

O Entwine carrega o dataset inteiro na memória ao indexar, então o executor de EPT estima a contagem de pontos com o PDAL, calcula um número seguro de subconjuntos para a RAM disponível, arredonda para uma potência de quatro e constrói e funde os subconjuntos automaticamente. A reprojeção detecta metadados de CRS inválidos embutidos e carimba o correto sem mover pontos. A geração de curvas de nível produz MBTiles e PMTiles com classificação mestra/secundária para o mapa web estilizar diretamente.

As saídas alimentam um visualizador em tela dividida que combina uma cena 3D Potree com um mapa 2D MapLibre sincronizado, que é o que as capturas mostram. A MapPrism é a segunda plataforma de produção rodando sobre o Ordo, depois do Skyport.

Mais projetos

Todos os projetos