Sistema de Consulta para Estaciones Meteorológicas Automáticas de la CONAGUA

Sistema de Consulta para Estaciones Meteorológicas Automáticas de la CONAGUA Raul Cabrera Aguilar Facultad de Ingeniería, Universidad Autónoma de Camp

159 downloads 40 Views 708KB Size

Recommend Stories


COMENTARIOS PARA LA CONSULTA PREVIA
COMENTARIOS PARA LA CONSULTA PREVIA ENERO 2008 PLAN GENERAL DE ORDENACION URBANA DE LEKEITIO ESTUDIO DE RENOVACION Y DESARROLLOS URBANOS. PAMPLONA

Las Estaciones de la Cruz
Las Estaciones de la Cruz La medalla del Apostolado representa en una cara la custodia con la Sagrada Eucaristía y la leyenda: “Adorámoste eternament

Story Transcript

Sistema de Consulta para Estaciones Meteorológicas Automáticas de la CONAGUA Raul Cabrera Aguilar Facultad de Ingeniería, Universidad Autónoma de Campeche Av. Agustín Melgar S/N entre Juan de la Barrera y Calle 20, San Francisco de Campeche, Campeche, México [email protected] Ernesto Peña Puch Facultad de Contaduría, Universidad Autónoma de Campeche Av. Agustín Melgar S/N entre Juan de la Barrera y Calle 20, San Francisco de Campeche, Campeche, Mé[email protected]

Gregorio Posada Vanegas Instituto EPOMEX, Universidad Autónoma de Campeche Av. Agustín Melgar S/N entre Juan de la Barrera y Calle 20, San Francisco de Campeche, Campeche, México [email protected]

Beatriz Edith Vega Serratos Instituto EPOMEX, Universidad Autónoma de Campeche Av. Agustín Melgar S/N entre Juan de la Barrera y Calle 20, San Francisco de Campeche, Campeche, México [email protected]

RESUMEN El presente trabajo describe el mantenimiento realizado a una aplicación previamente desarrollada para la recolección de información meteorológica de la CONAGUA y el desarrollo de una aplicación web que permite la presentación de la información recolectada. La aplicación previa, en funcionamiento desde 2011, efectuaba la recolección de información para los estados de: Campeche, Chiapas, Quintana Roo, Tabasco y Yucatán. La información descargada era guardada como archivo de texto, lo cual dificultaba su análisis debido a la gran cantidad de información con la que se cuenta, para mejorar lo anterior entonces se hizo necesario construir una base de datos para la adecuada manipulación de los más de 12 millones de registros obtenidos hasta la fecha; con el desarrollo de una aplicación web se solucionó el problema de la representación eficaz de esta información tanto forma gráfica como tabular. Para la administración del proyecto se siguió la guía PMBOK y para el desarrollo de la aplicación web se siguió un proceso de entrega incremental por prototipos. PALABRAS CLAVE: Estaciones meteorológicas automáticas, PMBOK, aplicación web, base de datos.

1

1

INTRODUCCIÓN

La Comisión Nacional del Agua, CONAGUA, a través del Sistema Meteorológico Nacional ha instalado en los últimos años una red de estaciones meteorológicas que de manera automática (con resolución de 10 y 60 minutos y 24 horas) transmite, para diversos puntos de la república mexicana, el valor de diversas variables meteorológicas como son: precipitación, velocidad y dirección de viento, humedad, temperatura, radiación solar, presión barométrica y para algunos lugares evaporación [1]. Este sistema además permite consultar y descargar la información climatológica, lamentablemente debido a la gran cantidad de información disponible, el sistema de visualización implementado por la CONAGUA solamente guarda por un periodo de tiempo corto la información, para 10 minutos los guarda 24 horas, para 60 minutos 1 semana y para 24 horas, 2 meses.

Para solucionar lo anterior, y poder tener información histórica, en el año 2011 la Universidad Autónoma de Campeche, por medio del instituto EPOMEX desarrolló un Sistema de Consulta para Estaciones Meteorológicas Automáticas de la Comisión Nacional del Agua de México CONAGUA- el cual descargaba los datos en formato de texto, lo que dificultaba su análisis debido a la gran cantidad de información que se había acumulado a través del tiempo. [2] El primer objetivo de este trabajo es mover la información ya descargada a una base de datos, esta tarea involucró analizar y extraer la información de cada archivo disponible en las computadoras del Instituto EPOMEX de la Universidad Autónoma de Campeche. El segundo objetivo del proyecto fue la presentación de la información almacenada en la base de datos a través de una aplicación web que despliegue gráficas y tablas para un análisis más eficiente, por lo cual se utilizó una tecnología de Google “Google Charts” [3]. Actualmente el sistema cuenta con dos partes fundamentales para su operación: a) Módulo de descarga de información: El cual se encarga de descargar la información meteorológica todos los días a las 3:00 pm, analizarla y enviarla a la base de datos. b) Aplicación web: El cual está disponible para la presentación de la información. Este proyecto contribuye un primer esfuerzo para el análisis de las variables meteorológicas proporcionadas por cada una de las estaciones que se encuentran distribuidas en todo el país, ya que actualmente están disponibles en la página de la CONAGUA por un tiempo muy corto, lo cual permite el análisis en intervalos de tiempo muy pequeños, la aplicación contribuye facilitando el análisis de estas variables en intervalos de tiempo más largos, logrando así obtener una perspectiva diferente sobre el cambio de algunas variables a lo largo de los años. 2

Metodología

Para la administración del desarrollo de la aplicación se utilizó la guía PMBOK [4], la cual describe procesos, herramientas y técnicas para la dirección de proyectos. La guía PMBOK establece que la dirección de un proyecto se logra mediante la aplicación e integración adecuada de 5 grupos de procesos: a) b) c) d) e)

Iniciación Planificación Ejecución Seguimiento y control Cierre

2

El proyecto se desarrolló cumpliendo con cada uno de estos procesos mencionados. En la fase de Iniciación se elaboró el documento de "Acta de constitución del proyecto" en donde se definieron los alcances, restricciones, stakeholders, objetivos y entregables del proyecto.

Figura 1. Entregables y sub entregables del proyecto

Durante la planificación del proyecto se elaboró la Estructura de Desglose del Trabajo (EDT), se definieron los principales entregables del proyecto y sus fechas de entrega. Para la representación de los entregables se utilizó la herramienta WBS Chart Pro [5], la cual permite generar un diagrama en el que se representan los entregables con sus sub entregables, tal y como se muestra en la Figura 1.

3

En la fase de ejecución se desarrolló la aplicación, de acuerdo con la EDT, se tienen los principales módulos del sistema: a)

Módulo para listar cada una de las estaciones disponibles en la computadora que actualmente hace la descarga diaria. b) Módulo para analizar un archivo de texto y extraer información de cada variable meteorológica. c) Módulo para crear una tabla que represente a la estación en la base de datos. d) Módulo para la descarga de la información de la página de estaciones meteorológicas automáticas de la CONAGUA. Los módulos fueron escritos en el lenguaje Python [6], [7] debido a los beneficios que este proporciona, como código limpio y multiplataforma. En la fase de seguimiento y control, se analizó el rendimiento de los módulos con el cProfile que proporciona Python, ya que el número de archivos que se iban a analizar es muy grande y el rendimiento es fundamental para completar esa tarea en el menor tiempo posible. Además se definían los requerimientos de la aplicación web, después de la entrega del segundo prototipo, la aplicación tendría que cumplir con la siguiente funcionalidad: a) Presentación de la información en forma de gráficas y tablas. b) Descarga de las gráficas y descarga de la información de la estación como un archivo CSV. Además la aplicación web, iba a ser usada de manera local por los investigadores del Instituto EPOMEX. En la fase de cierre, se instalaron los módulos en Python, el tiempo que tardaron en mover la información a la base de datos fue de 1 semana, para agilizar la tarea se ejecutaron 3 procesos de manera paralela. Para programar la descarga diaria se utilizó el administrador de procesos CRON que proporciona la plataforma Linux para tareas programadas, el módulo se ejecuta todos los días a las 3:00pm. La aplicación web está en un servidor de aplicaciones Apache, para facilitar el acceso a la aplicación de manera local, se utilizó bind9 configurándolo para que puedan acceder mediante la url http://epomex.scema.mx. La aplicación tiene una arquitectura monolítica, ya que el servidor de base de datos, de aplicaciones y de descarga de la información están en la misma máquina, esto se puede apreciar en el diagrama de despliegue de la Figura 2.

4

Figura 2. Diagrama de despliegue del sistema SCEMA.

2.1

Módulo para listar cada una de las estaciones disponibles en la computadora que actualmente hace la descarga diaria

Las estaciones cumplen con una estructura de archivos que permite su manipulación, este módulo es necesario para mostrar el contenido de cada estación. La estructura se puede apreciar en la Figura 3, en donde “Raiz” es la carpeta donde están disponibles todos los estados.

Figura 3. Estructura de las carpetas 2.2

Módulo para analizar un archivo de texto y extraer información de cada variable meteorológica

La función de este módulo es tomar un archivo con información meteorológica y extraer el valor correspondiente a cada variable. Cabe mencionar que el formato para el archivo de texto de cada estación es diferente, así como se puede apreciar en las figuras 4 y 5, lo cual presentaba un riesgo ya que en el peor de los casos iba a ser imposible mover la información a una base de datos, sin embargo la mayor parte de los archivos cumple con un patrón que consiste en dividir cada columna que represente una variable meteorológica en partes iguales, sin embargo hay archivos que no se ajustan a este formato, lo que se hace es guardar en un archivo la lista de los archivos que no se logran analizar con éxito, para un futuro análisis con módulos especiales que se encarguen de esa tarea.

5

Figura 4. Información meteorológica de la estación YOHALTUM con frecuencia de 10 minutos.

Figura 5. Información meteorológica de la estación SAN PEDRO con frecuencia de 10 minutos. 2.3

Módulo para crear una tabla que represente una estación en la base de datos

Debido a que cada estación presenta variables distintas, en la base de datos se crea una tabla por estación.

2.4 Módulo para la descarga de la información de la página de estaciones meteorológicas automáticas de la CONAGUA. Este módulo es el encargado de descargar la información de cada estación, para ello accede a la siguiente dirección http://smn.cna.gob.mx/emas/ mediante el módulo urllib2 de Python. 3

Aplicación web

Para el desarrollo de la aplicación web, se hicieron 2 prototipos para la recolección de sus requerimientos. La arquitectura de la aplicación web sigue el patrón de diseño Modelo Vista Controlador, la vista fue desarrollada utilizando el framework jQuery y para la presentación de gráficas se utilizó Google Charts. Los controladores y modelo están escritos en php. Para acceder a un servicio web se envían solicitudes HTTP a URL específicas, transmitiendo a los servicios parámetros de URL como argumentos. Estos servicios devuelven los datos de la solicitud HTTP en formato JSON y son procesados mediante javascript para la construcción de la gráfica y tabla. La manera en la que se obtienen las gráficas es ilustrada en la Figura 6 y la Figura 7 muestra una de las gráficas generadas por la aplicación. Actualmente la aplicación web cuenta con servicios web para hacer consultas a la información almacenada en la base de datos por día, año y para descargar toda la información como un archivo CSV.

6

Figura 6. Generación de gráficas.

Figura 7. Radiación solar en los meses mayo, junio, julio, agosto y septiembre del municipio de Campeche en el año 2012.

7

A continuación es posible apreciar la aplicación web en las Figuras 8 y 9.

Figura 8. Gráfica presentada en la aplicación SCEMA, en la imagen se pueden apreciar todas las variables meteorológicas correspondientes al mes de Febrero del año 2014.

8

Figura 9. Tabla presentada en la aplicación SCEMA, en la imagen se pueden apreciar todas las variables meteorológicas correspondientes al mes de Febrero del año 2014.

4

conclusiones

La aplicación aporta a los investigadores de la Universidad Autónoma de Campeche, en especial al Instituto EPOMEX una manera sencilla de acceder a la información meteorológica exponiéndola en gráficas para su análisis. Al disponer de una base de datos, es posible aplicar técnicas de minería de datos para encontrar patrones en las variables meteorológicas y convertirlas en información comprensible para los investigadores. Debido a que los servicios web manejan JSON para responder a los request de clientes, es posible compartir la información con otros centros de investigación, lo cual representa una gran ventaja para sumar esfuerzos entre distintas instituciones en el país para el estudio del comportamiento del clima. A pesar de que actualmente la aplicación recolecta información de 5 estados del país, ahora con la base de datos y los módulos escritos en Python, es posible recolectar información de todos los estados del país, aportando así una herramienta muy útil al Instituto EPOMEX.

9

REFERENCIAS

[1] Comisión Nacional del Agua: Servicio Meteorológico Nacional. Available at http://smn.cna.gob.mx/emas/ (accesado en: abril 2014) [2] Peña, E., Posada, G., Vega B.E, Programa Numérico para descarga automática de las estaciones automáticas del SMN-CONAGUA. XXII Congreso Nacional de Hidráulica, Acapulco, México. [3] Google Developers: Using Google Charts. Available at https://developers.google.com/chart/interactive/docs/index?hl=es (accesado en: 4 Abril 2014) [4] Project Management Institute. Guía de los fundamentos para la dirección de proyectos (Guía del PMBOK). 4ª ed. Newtown Square, Pennsylvania: Project Management Institute, Inc. 2008. [5] Critical Tools: WBS Chart Pro. Available at http://www.criticaltools.com/wbschartprosoftware.htm (accesado en: 1 Marzo 2014)

[6] Python documentation: The Python Profilers. Available at: https://docs.python.org/2/library/profile.html (accesado en: Marzo 2014) [7] Python documentation: urrlib2 – extensible library for opening URLs. Available at https://docs.python.org/2/library/urllib2.html (accesado en: Enero 2014)

10

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.