Visualizando datos meteorológicos: desarrollo de un cliente y servidor WMS
Viewing meteorological data: development of a WMS client and server
Ver/ Abrir
Identificadores
URI: http://hdl.handle.net/10902/8279Registro completo
Mostrar el registro completo DCAutoría
Muñiz Revuelta, AlbaFecha
2016-02Derechos
Atribución-NoComercial-SinDerivadas 3.0 España
Palabras clave
Meteorología
Aplicación web
Cliente
Servidor
Fichero NetCDF
WMS
Meteorology
Web application
Client
Server
NetCDF file
Resumen/Abstract
RESUMEN: La empresa Predictia tiene desarrollado un servidor WMS (Web Map Service) con una serie de funcionalidades que permiten crear diferentes capas para la representación de datos meteorológicos sobre mapas. Estas funcionalidades se dividen en diferentes tipos que dependen del estilo de visualización que se desea utilizar. Para la visualización basada en capas “vectoriales” se utiliza Mapnik y se accede a una fuente externa para abastecerse de los datos, mientras que para la visualización basada en capas “raster” se utiliza también Mapnik pero se accede a los datos a través de ficheros NetCDF (Network Common Data Form).
El trabajo que se ha realizado se divide en dos partes:
• Por el lado del servidor se han añadido dos funcionalidades nuevas. La primera, utilizando Java para leer ficheros NetCDF, consiste en generar un fichero JSON a partir de los datos obtenidos de estos ficheros, con la información necesaria para representar de forma animada datos de viento. La segunda, implementada en Python y usando también ficheros NetCDF, tiene por objeto la generación de capas que permiten la visualización de los datos del viento en diferentes formatos, así como de las zonas de altas y bajas presiones. Esta última funcionalidad se ha desarrollado de forma genérica, de manera que pueda ser fácilmente extendida con otros tipos de estilos de representación.
• Por el lado del cliente se ha desarrollado un cliente web que utiliza cada una de las funcionalidades expuestas anteriormente, dibujando las capas obtenidas a través del servidor sobre un mapa. Este cliente es bastante configurable, pudiendo el usuario elegir el tipo de mapa de fondo, las capas que se quieren representar, la fecha en la que se hizo la predicción (Runtime), la fecha/hora de la predicción que se desea visualizar, etc. El cliente proporciona también un meteograma para poder visualizar los datos en forma de serie temporal.
Las tecnologías y lenguajes que se han utilizado para el desarrollo de este proyecto son JavaScript, WMS, Python, HTML, CSS, Java, así como bastantes librerías relacionadas con estas tecnologías.
ABSTRACT: The Predictia Company has developed a WMS (Web Map Service) server with several functionalities that allow to create different layers to represent meteorological predictions in maps. These functionalities are divided in different types depending on the visualization style. For “vectorial” layers, the server uses Mapnik and the data are obtained from an external database. Mapnik is also used for the “raster” layers but the data are obtained from NetCDF (Network Common Data Form) files. The work accomplished during the project is divided in two parts:
On the server side, two new features have been added. The first, based on Java and NetCDF files manipulation, consists in generating a JSON file from data obtained from NetCDF files, which can represent in an animated way the wind prediction. The second, implemented in Python and based also on NetCDF files, aims to generate layers that allow displaying wind data in different formats, as well as areas of higher and lower pressures. This last feature has been developed in a generic way, so that it can be easily adapted to other types of predictions.
On the client side, a web client has been developed that uses the new server functions to draw the obtained layers on a map. This client is quite configurable so his user can choose the type of background map, the layers to be represented in the map, the runtime control and the prediction time. The client also provides a meteogram to display data as a graph. Several technologies and languages have been used for the development of this project such as JavaScript, WMS, Python, HTML, CSS, Java, and many libraries related to these technologies.