Construcción de un sistema que integra los exploradores de energía solar y de biomasa residual agrícola desarrollados para Colombia y Chile
INFORME 3
Producto D: HERRAMIENTA QUE INTEGRA LOS EXPLORADORES DE ENERGÍA SOLAR Y DE BIOMASA RESIDUAL AGRÍCOLA DESARROLLADOS PARA UNA ZONA DE ESTUDIO EN
COLOMBIA
Elaborado por:
Andrés Calderón y Nicolás Díaz
Entregado a:
Agencia GIZ Colombia
Bogotá D.C. Septiembre, 2023
Tabla de contenido
I. Metodología aplicada para el desarrollo de la herramienta de integración 3
Diseño de la base de datos espacial 6
Cronograma de actividades y seguimiento de tareas 7
Guiones de ejecución (Storyboards). 12
II. Descripción y uso de la herramienta 13
III. Resultados y conclusiones 21
IV. Recomendaciones para trabajo futuro 21
Uno de los principales retos que se afrontaron en el desarrollo de la herramienta de integración fue cómo implementar una solución, a manera de prueba de concepto, aprovechando al máximo los recursos disponibles y teniendo en cuenta que la aparición de nuevos requerimientos y dificultades sobre la marcha eran posibles ya que se trataba de implementar productos fruto de la investigación desde diferentes áreas. Para afrontar este reto se decidió seguir una metodología de desarrollo ágil [1], [2].
Las metodologías ágiles son un conjunto de prácticas de desarrollo de software que enfatizan la flexibilidad y la colaboración. Se basan en la idea de que el desarrollo de software es un proceso iterativo, en el que cada iteración (o sprint) produce una versión funcional del software que se comparte con el usuario final y se retroalimenta de sus opiniones.
Las metodologías ágiles más populares incluyen:
Las metodologías ágiles ofrecen una serie de beneficios sobre las metodologías tradicionales de desarrollo de software. Estos beneficios incluyen:
Sin embargo, las metodologías ágiles también presentan algunos desafíos. Estos desafíos incluyen:
En general, las metodologías ágiles ofrecen una serie de beneficios para los proyectos de desarrollo de software. Sin embargo, también presentan algunos desafíos que los equipos deben conocer.
Dado que la herramienta de integración se trata de un desarrollo interno y de corta duración, aplicar una metodología ágil era una decisión natural para su desarrollo. Para este caso se utilizó una combinación de artefactos de algunas de las metodologías anteriormente mencionadas como por ejemplo los guiones de usuario para describir el flujo natural de un módulo dentro de la herramienta y registros de tareas y actividades semanales para hacer seguimiento continuo del desarrollo. Para efectos prácticos, por consenso del grupo de desarrollo y los miembros del equipo del proyecto se decidió denominar a la herramienta de integración como SenecAtlas.
Primero, se definió un concepto general de los módulos de la herramienta de integración que se pueden visualizar en la figura 1. Los tres módulos principales que componen SenecAtlas son: el atlas solar, el atlas de biomasa y la herramienta de cruce de indicadores.
Figura 1. Módulos principales de SenecAtlas.
Figura 1 muestra los tres módulos principales de Integral:
La figura 2 a continuación muestra los marcos de trabajo y la arquitectura diseñada para la construcción de los módulos que conforman SenecAtlas.
Figura 2 Arquitectura de SenecAtlas.
La figura muestra una arquitectura de tres capas:
Esta capa está soportada por el marco de trabajo de Django[3], uno de los más utilizados en el desarrollo web bajo el lenguaje de programación Python, y el API de desarrollo de Qgis[4], un componente vital para el rápido desarrollo de las operaciones espaciales. Qgis provee una amplia biblioteca de librerías espaciales que facilitan el procesamiento particular de los datos geo-espaciales.
En la base de datos espacial se almacenaron los detalles geográficos de los indicadores y atlas asociando los valores de cada uno de estos a sus coordenadas correspondientes. Igualmente se limitó el área de estudio al contorno que contiene los municipios de los departamentos de Bolívar y Cesar. El sistema de coordenadas utilizado es el EPSG 9377 Magna-Sirgas / Origen Nacional para el almacenamiento de los datos aunque se proyectó a EPSG 3857 Pseudo-mercator al momento de visualizar los mapas por su compatibilidad con las herramientas de mapeo en la web. La figura 3 muestra el diagrama Entidad - Relación de la base de datos del módulo de cruce de indicadores.
En el caso de los módulos del atlas solar y de biomasa, se realizó el almacenamiento de la información en esquemas diferentes. Por una parte, el atlas solar mantiene la estructura de bases de datos utilizada para su desarrollo previo, con tablas para obtener información histórica georeferenciada con promedios anuales, por día y por mes, así como información de elevación y límites de cada variable meteorológica, como se muestra en la figura 4. Por otra parte, el atlas de biomasa incluye la lógica necesaria para la implementación de cultivos considerados para la estimación del potencial, es decir, se tienen residuos y tecnologías asociadas a los cultivos de palma de aceite y café, pero se mantiene la información histórica obtenida de las Evaluaciones Agropecuarias Municipales para una mayor cantidad de cultivos. En ese sentido, se tiene una distinción entre los cultivos considerados dentro de la lógica de residuos y los cultivos almacenados en la tabla de información histórica. El esquema para el atlas de biomasa se muestra en la figura 5.
La figura 6 ilustra el cronograma de actividades seguido en el desarrollo del proyecto el cual muestra las iteraciones que se llevaron a cabo y los principales hitos durante la implementación. La primera etapa se encargó de un periodo de capacitación y reconocimiento de los marcos de trabajo seleccionados y el diseño e implementación de la base de datos espacial (que da soporte a todos los módulos). Se asignaron tareas para la implementación y desarrollo de los módulos de los atlas solar y de biomasa, así como el módulo de cruce de indicadores por separado. Se agendaron igualmente espacios para procesos transversales como la documentación y testeo de los módulos desarrollados, la instalación de herramientas necesarias en el servidor que aloja SenecAtlas y los procedimientos requeridos para el despliegue de la aplicación web.
El seguimiento de tareas se realizó usando la herramienta Emacs y su librería Org. Durante cada reunión al inicio de una nueva iteración se discutieron las actividades a abordar y se desglosaron las tareas correspondientes para su cumplimiento. Se registraron aspectos como el encargado, la fecha en que se establece la tarea y la fecha de culminación de la misma (figura 7). En los anexos se puede ver el registro de algunas de las tareas y su correspondiente seguimiento.
Figura 3. Diagrama Entidad - Relación del módulo de cruce de indicadores.
Figura 4. Diagrama Entidad - Relación del módulo del atlas solar.
Figura 5. Diagrama Entidad - Relación del módulo del atlas de biomasa.
Figura 6. Cronograma de actividades.
Figura 7 Seguimiento de tareas.
Los guiones de ejecución o Storyboards son artefactos utilizados en algunas metodologías ágiles para describir el comportamiento esperado de una aplicación bajo condiciones normales. Por ejemplo, en la figura 8 se describe cómo interactúa el usuario y la herramienta en un nuevo análisis durante una interacción normal cuando el usuario ejecuta el módulo de cruce de indicadores. Los interesados pueden consultar los anexos para tener acceso a ejemplos adicionales durante la implementación de SenecAtlas.
Figura 10 Guión de ejecución durante el análisis de capas en el módulo de cruce de indicadores.
La herramienta realizada consiste en una aplicación web que implementa una base de datos, lógica de servidor y una interfaz gráfica que integra tres componentes: un visualizador para estimación de potencial energético mediante residuos postcosecha, un visualizador para estimación de potencial energético solar y, por último, una herramienta de análisis de capas. Específicamente, se utilizaron tres tecnologías para su construcción: PostGIS para el manejo de bases de datos, Django para la construcción de la lógica del servidor, y React para la construcción de la interfaz gráfica. A continuación se presenta la descripción del servidor y cliente desarrollados.
El servidor, encargado de implementar la lógica de negocio y realizar la conexión con la base de datos para su uso en la interfaz gráfica, es implementado en el lenguaje de programación Python, específicamente mediante el entorno de trabajo Django. Este framework utiliza el patrón MVC (Modelo-Vista-Controlador), permitiendo la representación de objetos de bases de datos (mediante el modelo) y la interacción por parte del usuario (mediante la vista y el controlador). En ese sentido, el servidor expone una interfaz de programación de aplicaciones o API, en la que se encuentran puntos finales o endpoints que permiten responder a peticiones del usuario. Estas peticiones pueden ser la consulta de información de la base de datos, carga o descarga de archivos, e incluso el uso de modelos de aprendizaje automático para realizar predicciones.
En ese orden de ideas, el servidor expone los siguientes endpoints para su uso en la herramienta:
Endpoint | Descripción |
originalpixels | Retorna puntos en formato GeoJSON para la herramienta de Integración. |
indicators | Crea y retorna indicadores. |
upload | Implementa la lógica para añadir capas. |
biomasa/municipios | Retorna polígonos en formato GeoJSON. Permite consultar si un punto pertenece a un municipio. |
biomasa/cultivos/hist | Retorna una lista de registros históricos del cultivo. |
biomasa/cultivos | Retorna una lista de cultivos analizados por el atlas de biomasa. |
biomasa/residuos | Retorna una lista de residuos por cultivo. |
biomasa/tecnologias | Retorna una lista de tecnologías contempladas en el atlas de biomasa. |
biomasa/variables | Retorna una lista de variables según la tecnología. |
biomasa/inference | Retorna una predicción de producción de acuerdo con el área sembrada para los cultivos analizados. |
solar/d | Retorna una lista de promedios históricos por día para 6 variables meteorológicas. |
solar/h | Retorna una lista de promedios históricos por hora para 6 variables meteorológicas. |
solar/m | Retorna una lista de promedios históricos por mes para 6 variables meteorológicas. |
solar/y | Retorna una lista de promedios históricos anuales para 6 variables meteorológicas. |
solar/pixels | Retorna puntos en formato GeoJSON para el atlas solar. |
solar/elevation | Retorna información de elevación (msnm) para un punto. |
solar/limits | Retorna los valores mínimos y máximos por año para 6 variables meteorológicas. |
La interfaz gráfica fue construida haciendo uso del lenguaje de programación Javascript, específicamente de la librería React. Esta librería facilita el desarrollo de aplicaciones de una sola página, cumpliendo la función de vista en el patrón MVC (pues el servidor implementa solamente modelos y controladores). Específicamente, la interfaz gráfica se compone de tres vistas principales: atlas de biomasa, atlas solar y herramienta de integración. A continuación se presenta una descripción de cada una.
El atlas de biomasa presenta un mapa con la clasificación realizada por el modelo de aprendizaje automático para la identificación de cultivos en el área seleccionada. En este mapa, el usuario es capaz de seleccionar una herramienta para el dibujo de polígonos, lo que le permite seleccionar un área para obtener información y estimar el potencial energético generado con un cultivo particular.
Al dibujar un polígono, la herramienta automáticamente determina la ubicación y retorna una gráfica con la información histórica para un cultivo. El usuario puede cambiar el cultivo seleccionado mediante un menú desplegable, eligiendo entre Palma de aceite y Café. Si el usuario hace clic en la pestaña de Residuos, la herramienta muestra la vista de generación y selección de residuos.
Dentro de esta vista, el usuario es capaz de modificar el cultivo y seleccionar entre los residuos correspondientes. Adicionalmente, se presentan dos tarjetas con el valor de área cultivada dentro del polígono y la predicción realizada por un modelo de regresión para obtener la producción en toneladas correspondiente. Si el usuario modifica el valor de área cultivada, la herramienta automáticamente realiza la predicción de producción y retorna un nuevo valor. Finalmente, cuando el usuario hace clic sobre el botón de Estimar generación, se abre un diálogo con un formulario.
En la primera página del formulario, el usuario puede seleccionar la fracción másica en base seca para los elementos Carbono, Hidrógeno, Oxígeno, Nitrógeno y Azufre, así como la fracción de cenizas y humedad por cada residuo. Los valores que se muestran inicialmente son valores por defecto obtenidos de la base de datos. Al hacer clic en Siguiente, se muestra la segunda página.
En esta vista, el usuario puede seleccionar la tecnología de conversión entre Incineración y Biogás. Cada tecnología tiene asociadas algunas variables y valores por defecto, permitiendo al usuario modificarlos. Al hacer clic en el botón Estimar, el usuario puede ver el resultado del potencial energético calculado para la producción y los residuos seleccionados para el cultivo.
Para cambiar de aplicación, el usuario puede hacer clic en el botón flotante que aparece en la esquina superior derecha de la pantalla. Por ejemplo, al navegar al atlas solar, se pide al usuario que seleccione un punto para obtener información. Al hacer clic en un punto del mapa, se muestra la vista de resumen.
En la vista de resumen se muestran valores para variables de irradiación solar, así como valores para variables meteorológicas como la velocidad del viento o temperatura. El usuario puede cambiar el año y la variable mostrada en el mapa, lo que hará que se recargue y se actualicen los valores correspondientes. Si el usuario hace clic en la pestaña de Gráficos, se mostrará la siguiente vista:
En esta vista, el usuario puede seguir seleccionando el año y la variable, al igual que en la pestaña de Resumen, lo que permite recargar la vista del mapa. Adicionalmente, se muestra un menú desplegable desde el cual el usuario puede seleccionar entre cinco tipos de gráficas: ciclo mensual, ciclo por horas, histórico anual, histórico mensual e histórico por horas.
Finalmente, la herramienta de integración presenta un carrusel con algunas capas predeterminadas. Cada elemento del carrusel tiene tres botones para realizar las siguientes acciones: ver en el mapa, descargar como GeoJSON y añadir al análisis. Adicionalmente, se presenta un botón en la parte inferior que permite al usuario añadir una nueva capa para realizar el análisis.
Haciendo clic en el botón de Añadir nueva capa, se despliega un diálogo con el formulario para subir una imagen en formato TIFF, añadiendo información sobre el nombre, las unidades, metadatos y miniaturas.
Por otro lado, al hacer clic sobre el botón de añadir en un elemento del carrusel, se muestra la sección Capas seleccionadas con botones para limpiar la selección o para realizar el análisis. Al dar clic en el botón Analizar, se despliega el formulario de análisis, en el que se pregunta la descripción de la capa, el tamaño de celda y la extensión.
Se presentó el diseño de una herramienta de integración de los exploradores solar y de biomasa residual agrícola desarrollados para una región piloto en Colombia. Se comparten los artefactos utilizados durante el análisis y construcción de la herramienta así como los detalles de su implementación.
Se desarrolló un aplicativo web que permite interactuar con los atlas solar y de biomasa así como gestionar cruces de indicadores por parte de los usuario. La información geoespacial que soporta los módulos de la herramienta de integración se gestiona en una base de datos diseñada para tal fin. El aplicativo provee un módulo de cruce de indicadores para la generación de nuevos índices dentro del área de estudio lo que posibilita la integración no solo de las capas generadas con los exploradores solares y de biomasa residual sino también nuevas capas que puedan ser de interés para los usuarios.
De esta manera, se presenta al público la aplicación web SenecAtlas, una herramienta para el cruce de indicadores y la integración de los exploradores solar y de biomasa residual agrícola desarrollados en el marco del proyecto “Construcción de un sistema que integra los exploradores de energía solar y de biomasa residual agrícola desarrollados para Colombia y Chile”.
Cabe hacer una serie de recomendaciones y aclaraciones producto de este trabajo. Primero que todo, se debe recalcar que se trata de una prueba piloto dentro del marco de cooperación triangular del proyecto macro que cobija este desarrollo. Por tal motivo, las especificaciones técnicas donde se encuentra alojada la herramienta son discretas. Esto limitó de alguna manera su diseño e implementación pero afectará en mayor medida su utilización. Se recomienda limitar hasta cierto punto la complejidad de los análisis que se hagan con la herramienta, el acceso simultáneo que se permita a la misma y, de preferencia, la actualización de la capacidad técnica donde se aloje el aplicativo.
Como trabajos futuros se pueden contemplar varios frentes. El diseño de la base de datos espacial y las características de análisis que se desarrollaron se asemejan significativamente a los cálculos realizados sobre cubos de datos[3]–[5]. Valdría la pena explorar en un desarrollo posterior la implementación de dichas estructuras de análisis para optimizar el almacenamiento y la complejidad de cómputo que se pueda realizar con los datos espaciales almacenados.
Con respecto al desarrollo de la herramienta, actualmente se tiene una lógica suficiente para poder obtener información georeferenciada de la base de datos y visualizarla en un componente de mapa. Sin embargo, la metodología utilizada no está completamente optimizada, por lo que los tiempos de carga de los mapas pueden volverse considerables con una resolución de píxel de 10 metros o menos, así como con niveles de zoom bajos. Del mismo modo, aunque el desarrollo estuvo enfocado en separar la lógica de los atlas y de la herramienta de cruce de indicadores en el servidor, las limitaciones del despliegue resultaron en una aplicación monolítica. En ese sentido, el mismo servidor procesa solicitudes de las tres vistas, lo que puede provocar un aumento en tiempos de respuesta tanto para análisis como para visualización, así como limitaciones en la capacidad del servidor de atender solicitudes simultáneas de usuarios concurrentes. Una posible solución sería el despliegue del servidor en una arquitectura de microservicios [6], [7], con aplicaciones que tengan funcionalidades bien definidas e independientes entre sí.
Sin embargo, este tipo de estudios son altamente paralelizables, esto es, se puede fácilmente distribuir entre varias unidades de cómputo. Otra posible solución estaría en explorar nuevos marcos de trabajo distribuido y computación en paralelo[8]–[10] para soportar este tipo de tareas, lo que haría posible hacer análisis a más fina resolución y para todo el territorio nacional.
Adicionalmente, es importante tener en cuenta la posible curva de aprendizaje para el uso de la herramienta. Actualmente se tienen funcionalidades diversas para realizar visualización y análisis, pero tal vez valdría la pena incluir algún tipo de tutorial o guía dentro de la aplicación que le permita a un nuevo usuario familiarizarse con las opciones disponibles y los flujos diseñados para la ejecución de cada característica implementada.
Por último, se debería extender la herramienta para su uso colaborativo dada las características del análisis que esta soporta. Es claro que el éxito de este tipo de herramientas de integración es permitir que los actores involucrados, provenientes de diferentes disciplinas y perfiles, las puedan utilizar en conjunto. Permitir a un grupo diverso de usuarios interactuar con las distintas capas e indicadores bajo entornos colaborativos, durante la selección de las capas y la estimación de su importancia, sería una característica clave para soportar los procesos de toma de decisiones[11]–[13].
[2] L. Williams, “Agile Software Development Methodologies and Practices”, en Advances in Computers, M. V. Zelkowitz, Ed., en Advances in Computers, vol. 80. Elsevier, 2010, pp. 1–44. doi: 10.1016/S0065-2458(10)80001-4.
[3] E. Pebesma y R. Bivand, Spatial Data Science: With Applications in R. CRC Press, 2023.
[4] S. Chen, J. Wang, y P. Gong, “ROBOT: A spatiotemporal fusion model toward seamless data cube for global remote sensing applications”, Remote Sens. Environ., vol. 294, p. 113616, ago. 2023, doi: 10.1016/j.rse.2023.113616.
[5] K. Boulil, S. Bimonte, y F. Pinet, “Conceptual model for spatial data cubes: A UML profile and its automatic implementation”, Comput. Stand. Interfaces, vol. 38, pp. 113–132, feb. 2015, doi: 10.1016/j.csi.2014.06.004.
[6] C. M. Aderaldo, N. C. Mendonça, C. Pahl, y P. Jamshidi, “Benchmark Requirements for Microservices Architecture Research”, en 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE), may 2017, pp. 8–13. doi: 10.1109/ECASE.2017.4.
[7] M. Söylemez, B. Tekinerdogan, y A. Kolukısa Tarhan, “Challenges and Solution Directions of Microservice Architectures: A Systematic Literature Review”, Appl. Sci., vol. 12, núm. 11, Art. núm. 11, ene. 2022, doi: 10.3390/app12115507.
[9] J. N. Hughes, A. Annex, C. N. Eichelberger, A. Fox, A. Hulbert, y M. Ronquest, “GeoMesa: a distributed architecture for spatio-temporal fusion”, en Geospatial Informatics, Fusion, and Motion Video Analytics V, SPIE, may 2015, pp. 128–140. doi: 10.1117/12.2177233.
[10] A. Eldawy y M. F. Mokbel, “SpatialHadoop: A MapReduce framework for spatial data”, en 2015 IEEE 31st International Conference on Data Engineering, abr. 2015, pp. 1352–1363. doi: 10.1109/ICDE.2015.7113382.
[11] S. Boroushaki y J. Malczewski, “Measuring consensus for collaborative decision-making: A GIS-based approach”, Comput. Environ. Urban Syst., vol. 34, núm. 4, pp. 322–332, jul. 2010, doi: 10.1016/j.compenvurbsys.2010.02.006.
[12] C. Rinner, “Argumentation Mapping in Collaborative Spatial Decision Making”, en Collaborative Geographic Information Systems, IGI Global, 2006, pp. 85–102. doi: 10.4018/978-1-59140-845-1.ch005.
[13] C. Rinner, C. Keßler, y S. Andrulis, “The use of Web 2.0 concepts to support deliberation in spatial decision-making”, Comput. Environ. Urban Syst., vol. 32, núm. 5, pp. 386–395, sep. 2008, doi: 10.1016/j.compenvurbsys.2008.08.004.
Guiones de ejecución
Figura 8 Guión de ejecución para la visualización de indicadores.
Figura 9 Guión de ejecución para el procedimiento de adición de nuevos indicadores.
Visualización
Ver figura 8.
Adicionando nuevos indicadores
Ver figura 9.
Análisis
Ver figura 10.
Página |
[1] https://www.postgresql.org/
[2] https://postgis.net/
[3] https://www.djangoproject.com/
[4] https://www.qgis.org/
[5] https://react.dev/
[6] https://leafletjs.com/