Gestión de cadenas productivas con software libre



Gestión de cadenas productivas con software libre

0 0


sigte10

Presentation for the 10th Free GIS conference (in spanish)

On Github jarnaldich / sigte10

Gestión de cadenas productivas con software libre

La ortoimagen en el ICGC
## Programa 1. Presentación ICGC 2. Cómo se hace una cobertura de ortoimagen 3. Uso de FOSS en la cadena de producción del ICGC
## ICGC ![vissir](img/google.png)
## Desenvolupament de Geoprocés - Grupo de desarrolladores a cargo de mantener el software que da soporte a las cadenas de producción de datos raster (desde 2012) - Lidar - MDE - Ortofoto - 4 personas
## La cadena de producción de ortoimagen - Conjunto de procesos destinados a producir las hojas de distribución de ortofotos a partir de fotogramas orientados. - El ICGC elabora las ortofotos con software de desarrollo propio. - más de 20 años de desarrollo - Certificada ISO - _Major Rewrite_ en el 2012, en un contexto de recortes.
## La cadena de producción de ortoimagen - Programas interactivos y _batch_, command-line - C++ / Fortran para proceso de imagen - Python siempre que podemos... - ... en Windows, toolchain de Microsoft

Windows??? MSVC???

## Major Rewrite - En 2012 el ICGC se propone entregar la cobertura en el año de vuelo. - Sin presupuesto extra... - Aumentando la productividad. - Solución...

FOSS!

Receta para hacer una cobertura orto

Pero antes...
Receta para hacer una lechuza
## Receta para hacer una orto 1. Ortofoto rápida (_batch_) 2. CC / Retoque (_interactivo_) 3. Mejoras finales (_batch_)
## 1. Ortofoto rápida Dependencias de datos más o menos complejas: Antes de calcular una costura tienen que haber terminado la igualación radiométrica de los fotogramas implicados, pero no se pueden calcular costuras susceptibles de cruzarse en paralelo. *Un grafo de dependencias estático no describe el problema*
## 2. CC / Retoque - Un grupo operadores revisan las ortofotos en busca de artefactos. - *Otro* grupo los retoca. *PROCESO MANUAL*
## Mejora de los procesos automáticos ![Eniac](img/eniac.jpg)
## Distribución - Creación de un cluster de proceso "reciclando" máquinas desktop obsoletas. - Uso de [HTCondor](https://research.cs.wisc.edu/htcondor/) para coordinarlos.
## HTCondor - `https://research.cs.wisc.edu/htcondor/` - Universidad de Wisconsin - Desde 1988! - Licencia Apache 2.0 - Simplificando: "Cola de batch" distribuida.
## HTCondor ![Condor](img/condor_home.png)
## HTCondor - Muy usado en aplicaciones geo, incluso por sofware comercial. Pej. Erdas Imagine. - Muy potente, fama de difícil de configurar... - Nuestra experiencia es excelente - Muy robusto - Extensible
## Nuevos problemas - Distribuir augmenta las necesidades de sincronización - Dificulta la monitorización del progreso global
## Solución: BBDD centralizada de producción - Introducción de una BBDD geoespacial de soporte a producción. - Tracking de estado de ejecución de los procesos automáticos. - Una BBDD SQL facilita la sincronización (ACID)
## Solución: BBDD centralizada de producción ![elephant](img/elephant.jpg) Adivinad cuál... (+ PostGIS)
## Solución: BBDD centralizada de producción - Tablas con las entidades relevantes para la producción: - fotogramas - costuras - hojas de distribución... - Guarda geometría, estado de producción...

Arquitectura

POSTGRES
POSTGRES
WS Python
WS Python
o
o
o
[Not supported by viewer]
CONDOR
CONDOR
## Procesos - Pasan a ser scripts de Python (main) - Heredan de una clase común que provee servicios básicos: - parseo homogéneo de parámetros - log de progreso a la BBDD (inicio de ejecución, acabado OK, error...) - gestión de archivos temporales
## Monitorización - Cliente que permite visualizar el estado de la producción - Customización de QGis
## OrthoQ ![orthoq](img/orthoq.png)
## OrthoQ - Arquitectura basada en plugins - Un plugin inicial se encarga de customizar los menús, cargar el proyecto de trabajo, etc... - Aplicación de base para la interacción con la cadena, con distintos perfiles: - Managers: informes de progreso, indicadores ISO... - Operadores: ayuda a retoque i CC
POSTGRES
POSTGRES
WS Python
WS Python
o
o
o
[Not supported by viewer]
CONDOR
CONDOR
QGIS
[Not supported by viewer]
## Monitorización de la cola de condor ![Cola de Condor](img/cua.png)
## Monitorización del cluster ![Cluster de Condor](img/cluster.png)
## Mejora de procesos manuales - Marcaje - Retoque
## Marcaje - Un operador abre la ortofoto a resolución real y marca los artefactos encontrados. - Los artefactos son geometrías que se guardan en PostGIS - Elaboración de estadísticas para la mejora de procesos - Retoque posterior
## Marcaje / Retoque ![Marcaje](img/retoc.png)
## Retoque - Depende del artefacto ofrecemos más o menos ayuda. - El operador de retoque escoge una zona y se abre automáticamente PhotoShop con: - la orto a retocar - los fotogramas originales que puedan tener información relevante para el retoque. - sólo se cargan las zonas afectadas - si hay solape entre hojas, las ediciones se traspasan a todas las hojas afectadas. - Os imagináis cómo se hace esto sin una BBDD geoespacial?
## Conclusiones

Resultados

Personas Meses Esfuerzo Pre - FOSS 8 14 112 FOSS 5 8 40 TOTAL 280%
## Nuevos proyectos - LidarQ, CarboQ - Catálogo de datos de producción (fototeca, ortos, las, aerotriangulaciones...) - Compromiso: liberar código
## Conclusiones - Un contexto de recortes también es una oportunidad para FOSS. - Para mejorar la productividad, hay que pensar en el throughput de los procesos automáticos, pero también en la usabilidad de las herramientas para los procesos manuales. - Trabajar con software abierto y estándares multiplica las sinergias. El software comercial intenta vender productos _end to end_, en detrimento de la interoperabilidad.
## Agradecimientos - Equip de Desenvolupmament de Geoprocés. - Equipo de TI. - ICGC - A todos los proyectos FOSS... - presentación con reveal.js y spacemacs