Plataforma para cliente · Skyforest (Sweden)
Skyport
La plataforma de operaciones que convierte los vuelos de dron de Skyforest en capas de mapa terminadas, de principio a fin.
Skyforest, una empresa sueca de tecnología forestal, necesitaba que la fotogrametría con drones fluyera del campo a las capas publicadas sin especialistas SIG de por medio. Diseñé la arquitectura de la plataforma y lidero el equipo de Territorial que la construye y opera: aplicación web, API y un backend de procesamiento distribuido.
En resumen
- Backend construido íntegramente sobre workflows de n8n y Ordo, el plano de control de orquestación que creé para este proyecto
- La fotogrametría corre en una flota de máquinas Windows coordinadas con locks distribuidos en MinIO y detección de procesos de Agisoft
- Aplicación web en Next.js con mapas MapLibre para clientes, misiones, órdenes de trabajo y envío de datos offline-first
- Cada misión, cliente y capa procesada pasa por el sistema sin que nadie toque una terminal
El problema
Skyforest sobrevuela fincas forestales con drones y entrega ortomosaicos, modelos de elevación y capas derivadas a sus clientes. El cuello de botella nunca fue el vuelo: era todo lo que venía después. Los conjuntos de fotos había que moverlos a mano, procesarlos en software de escritorio, revisarlos, publicarlos en un servidor de mapas y seguirlos en hojas de cálculo, y cada paso dependía de alguien que supiera SIG.
El objetivo era una plataforma en la que el equipo de operaciones envía un vuelo y las capas terminadas aparecen, con cada trabajo visible y recuperable por el camino.
Qué construimos
Skyport son tres cosas: una aplicación web donde el equipo gestiona clientes, misiones y órdenes de trabajo y envía nuevos conjuntos de fotos; una API que posee el modelo de dominio y habla con el almacenamiento; y un backend de procesamiento que hace el trabajo pesado. La aplicación web es un Next.js con mapas MapLibre, desplegada en el borde, con un flujo de envío offline-first para preparar datos de campo antes de tener conexión. Un toolkit de escritorio cubre los casos en que enviar directamente desde la máquina que guarda las fotos es más rápido.
El backend es donde fue la mayor parte de la ingeniería. No hay un servidor de trabajos a medida: cada paso de procesamiento es un workflow de n8n, y Ordo se sitúa sobre n8n como plano de control. Ordo valida cada trabajo contra contratos de ejecutores antes de correr, registra trabajos, pasos y artefactos como estado de primera clase en la base de datos y permite que los workers de n8n reclamen pasos con seguridad. La fotogrametría en sí corre en Agisoft Metashape en una flota de workers Windows. Cada worker mantiene locks en MinIO con TTL, detecta un proceso Agisoft en ejecución para evitar doble programación, y un workflow reaper renueva o libera locks según la ejecución de n8n propietaria siga viva. Los rásteres finales se publican en GeoServer y se convierten en capas que el cliente abre a la mañana siguiente.
Por qué importó
Skyport es el proyecto que hizo necesario a Ordo. La automatización de workflows a secas servía para los pasos individuales pero no garantizaba que un trabajo de varios pasos terminara o fallara de forma visible, con sus artefactos contabilizados. Una vez existió esa capa, el resto de la plataforma se volvió aburrido en el mejor sentido: el equipo envía, la flota procesa, el mapa se actualiza.
Hoy Skyport ejecuta el pipeline de fotogrametría de producción de Skyforest, y Sentinel vigila cada pieza, desde los workers de n8n hasta GeoServer.
Más proyectos
Todos los proyectos
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.
- Ordo
- n8n
- PDAL
- GDAL
- +7
- 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