Geração de mapas climáticos online utilizando ferramentas livres Fabiano F. Silva1, Jacques D. Brancher1 Departamento de Ciências da Computação – Universidade Estadual de Londrina(UEL) Campus Universitário - Caixa Postal 6001 – 86.051-990 – Londrina – PR – Brasil 1 [email protected], [email protected] Abstract. This article discusses the construction of a website that provides the user generation of weather maps on line using free tools. Based on real data, according to the region chosen by the user. The data are taken from free sources of information on line [INMET, 2009], through a mechanism of automatic search. The sources of data centered georeferenced automatic weather stations, which provide the data with a delay of 1 to 3 hours. This view provides data such as maximum temperature, relative humidity, rainfall and solar radiation. The generation of the maps cover areas not covered by the generation of a virtual grid, using the technique of interpolation IDW. Keywords: Climate map, software tool free. Resumo. Este artigo aborda a construção de um site na internet que proporcione ao usuário geração de mapas climáticos online utilizando ferramentas livres. Com base em dados reais, de acordo com a região escolhida pelo usuário. Os dados serão extraídos de fontes livres de informações online [INMET, 2009], através de mecanismo automático de busca. As fontes centralizam dados de estações meteorológicas, que disponibilizam os dados com uma atraso de 1 a 3 horas. Isto proporciona visualizar dados como temperatura máxima, umidade relativa, chuva e radiação solar. A geração dos mapas cobrirá áreas sem cobertura através da geração de uma grade virtual, utilizando a técnica de interpolação IDW. Palavras-chave: Mapa climático, ferramenta livre. 1. Introdução O meio rural hoje tem acesso a muitos recursos que dão suporte para o produtor manter melhor o seu negócio, aumentar a sua produtividade e se precaver de desastres e pragas, como por exemplo a conseqüência que uma grande temporada de seca pode causar a sua produção agrícola. O desenvolvimento de sistemas computacionais transformou o computador em um grande aliado do homem, dando soluções que melhoram o seu dia a dia. Atualmente sistemas informatizados coletam dados climáticos reais de várias regiões do país e disponibilizam de forma eletrônica e aberta na internet. Este artigo irá abordar a construção de um site na internet que oferecerá a geração mapas geográficos climáticos online, com base em informações adquiridas da própria internet. Proverá comunicação ativa com o usuário. As ferramentas e as linguagens utilizadas são totalmente livres e disponíveis separadamente na internet. Para tal o artigo está dividido da seguinte forma: na seção Referencial Teórico são apresentados alguns autores que desenvolveram trabalhos similares com aplicações diferentes. Em Modelagem do sistema são apresentados os módulos e suas relações. Em seguida, na seção Descrição do sistema, é descrita a estrutura, as características e as funcionalidades do sistema. A seção Aquisição de dados climáticos aborda a técnica aplicada para mineração dos dados climáticas na internet. Os detalhes de implementação são descritas na seção Implementação. Os resultados obtidos são apresentados na seção Resultados Obtidos. Na seção Conclusões é relatada a contribuição que este artigo oferece à comunidade. Por final são sugeridos algumas evoluções na seção Trabalhos futuros. 2. Referencial Teórico A necessidade de irrigação foi a motivação dos autores no desenvolvimento de um sistema web disponibilizando dados climáticas de algumas cidades em forma de tabelas, abrangendo algumas cidades da região do Piauí [Silva, Andrade Junior e Marin, 2008]. Tal ferramente tornou-se referencial para tomada de decisão de irrigação na região. De forma similar surgiu a necessidade de centralização de informações meteorológicas na região sul do Pernambuco e norte da Bahia, para auxiliar o manejo de culturas locais e também tomar decisões em relação a irrigação. Isso levou pesquisadores à construção de sistema web para disponibilizar os dados em forma de tabelas e gráficos [Moura, 2005]. No artigo “Geração online de Mapas Agrometeorológicos” [Romani e Outros, 2005] é abordada a junção de uma rede de estações meteorológicas composta por várias instituições públicas, formando uma rede centralizada de dados. É utilizado o sistema SURFER para a geração dos mapas estáticos, que trata-se de um sistema comercial e proprietário, além de ser utilizado somente no sistema operacional Microsoft Windows, também comercial e proprietário. Por fim, é apresentado como resultado a geração de mapas utilizando interpolação, apresentados também de forma online. A ferramenta ALOV é apresentada como um opção de publicação de mapas online, em forma de arquivos de mapas em camadas, no padrão ESRI shapefiles, por Souza e Miranda (2002) e Miranda (2002). Esta ferramenta é utilizada em forma de applet para publicar mapas de forma vetorial, permitindo sobreposição de camadas de mapas, aproximação e afastamento (zoom) e ainda busca de locais no mapa. Outro ambiente estudado é o GRASS GIS [Grass, 2009]. Ele permite a geração de mapas geográficos a partir de entrada de dados, possui integração com Sistema Gerenciador de Banco de Dados (SGBD) variados, como PostgreSQL e Mysql. Pode ser executado em vários sistemas operacionais (SO), inclusive o Linux e Windows. É fácil, ágil e rápido, permite a interação através de interface gráfica (GUI) ou ainda linha de comando, permitindo inclusive a utilização de scripts. Para fins comparativos são apresentados na Tabela 1 os artigos estudados e este artigo, de acordo com a ordem: 1. Um sistema web para a consulta de dados meteorológicos como ferramenta de apoio ao manejo de irrigação no estado do Piauí por Silva, Andrade Junior e Marin (2008); 2. Dados Climáticos Estação Meteorológica Automática do Campo Experimental de Bebedouro por Moura (2005); 3. Geração online de Mapas Agrometeorológicos por Romani e outros (2005); 4. Geração de mapas climáticos online utilizando ferramentas livres por Silva e Brancher (2009); Tabela 1. Comparação entre os trabalhos estudados Autor e Característica 1 2 3 4 Forma de obtenção dos dados Automática Automática Automática Automática Nacional Nacional Abrangência dos dados Regional (estado Regional (Bahia e do Piauí) Pernambuco) Organização dos dados Centralizada Centralizada Centralizada Centralizada Origem das ferramentas utilizadas Proprietárias e livres Não informado Proprietárias e livres Totalmente livres Interação com o usuário Internet Internet Internet Internet e e-mail Simulação para locais sem abrangência Não há Não há Sim através de interpolação Sim através de interpolação Resultados através de mapas geográficos Não há Não há Sim Sim 3. Modelagem do sistema O sistema modelado funciona na topologia Client/Server. O client realiza os pedidos como: período, região, e variável climática. O server realiza o processamento e responde, no tempo determinado, com o resultado gerado. A visão macro é apresentada na Figura 1. Figura 1. Topologia de funcionamento do sistema A visão estrutural, incluindo os módulos e suas relações é apresentada na Figura 2 e explicadas na seqüencia. Figura 2. Visão estrutural dos módulos e suas relações. Como pode ser visto na Figura 2, as entradas de requisições (pedidos) são realizadas através da web, na seguinte ordem: 1. O usuário mantém suas configurações através do site, como: cadastrar seus dados pessoais para contato e agendar quais mapas ele deseja visualizar online, de hora em hora; 2. O usuário visualiza os mapas gerados de acordo com seus agendamentos e/ou o agendamento de outros usuários. Por exemplo: se um usuário agendou a geração do mapa de umidade relativa para Minas Gerais, ele é avisado de hora em hora por e-mail, porém os mapas gerados ficam disponíveis no site para qualquer internauta; 3. A aquisição de dados climáticos é executada utilizando a internet. O módulo de aquisição acessa o site do Inmet (2009) consulta os dados necessários e persiste os mesmos no SGDB. O módulo de aquisição de dados é disparado de hora em hora, através de um temporizador. A seção Aquisição de Dados Climáticos detalha o funcionamento deste; 4. A geração dos mapas é executada consultando os agendamentos realizados pelos usuários e os dados climáticos adquiridos pelo módulo de aquisição de dados. Desta forma são gerados os mapas das variáveis e regiões pré-estabelecidos pelos usuários do sistema. Este módulo é disparado de hora em hora, logo depois da execução do módulo de aquisição de dados e é explicado na seção Implementação; 5. Após a aquisição dos dados e geração dos mapas, o sistema prepara os relatórios para envio aos usuários que assim solicitaram. A opção de comunicação por email é opcional. Desta forma os usuários que solicitaram comunicação por email recebem de hora em hora um resumo com os mapas que agendaram; 4. Descrição do sistema O server do sistema utiliza as seguintes tecnologias aplicadas a cada módulo/camada, conforme a Tabela 2, bem como as tarefas realizadas para atender aos requisitos do site. Tabela 2. Tecnologias aplicadas. MÓDULO/CAMADA TECNOLOGIA EMPREGADA TAREFAS Linux Ubuntu, versão 8.10 Intrepid Configuração lighttpd, versão 1.4 Configuração PostgreSQL, versão 8.3 / Postgis Configuração e Construção Python, versão 2.5 Construção Django, versão 1.0.2 Configuração e Construção GRASS GIS, versão 6.3 Configuração e Construção Envio de e-mail Django, versão 1.0.2 Configuração IDE Netbeans, versão 6.7 Ferramenta de edição Sistema operacional Servidor de Web SGBD Aquisição de dados Framework Web Mapas geográficos Para a construção do sistema foram utilizadas soluções livres, ou seja, para uso não comercial. O sistema operacional escolhido foi o Linux distribuição Ubuntu versão 8.10 (Intrepid Ibex), pacote server. O sistema operacional foi configurado para atender as necessidades de: servidor de web (Lighttpd 1.4), sistema gerenciador de banco de dados (PostgreSQL 8.3 / Postgis), repositório de dados climáticos (banco de dados), repositório de arquivos para prover as páginas web (Django 1.0.2), ambiente de geração de mapas geográficos (GRASS GIS 6.3), repositório de mapas gerados (sistema de arquivos), ferramenta para envio de e-mail aos usuários. A ferramenta escolhida para edição dos arquivos, programação e layout web foi o Netbeans 6.7. O servidor web escolhido foi o Lighttpd 1.4 que permite servir a interface de acesso do usuário ao sistema, apresentar as páginas web e ainda os arquivos de mapas. Sendo também interface entre o lado cliente e o banco de dados. 5. Aquisição de dados climáticos A aquisição dos dados meteorológicos é feita através de consulta automática em portais que disponibilizam os dados com atraso curto, de 1 a 3 horas, ou seja, os dados das 13 horas de uma determinada estação estarão disponíveis no site no máximo até as 16 horas. O módulo de aquisição de dados possui um pré-cadastro das estações meteorológicas existentes, com informações como: • Instituição; • Localização geográfica da estação (latitude e longitude); • Cidade e estado; • Código de identificação da estação na instituição; • Altitude em metros; • Referencial de fuso horário com UTC; A partir destas informações o módulo de aquisição de dados consulta os dados meteorológicos das estações cadastradas, no site da instituição INMET (2009). Os dados geralmente são disponibilizados em páginas web no formato HyperText Markup Language (HTML), com markups (marcações) do tipo <table> (tabela). Este módulo é responsável por transformar a página com formato HTML em dados “entendíveis”. A partir de então registra na tabela de dados. As variáveis adquiridas são: Tabela 3. Variáveis disponíveis VARIÁVEL UNIDADE Temperatura máxima Graus Celsius Temperatura mínima Graus Celsius Temperatura no instante Graus Celsius Umidade relativa máxima Percentual Umidade relativa no instante Percentual Umidade relativa mínima Percentual Direção do vento Graus Velocidade do vento Metros por segundo m/s Radiação solar Kjm2 Chuva mm Em caso de falha de dados o módulo se isenta de registrar qualquer tipo de informação com relação a variável com falha. As falhas conhecidas são: Dado não informado, por exemplo Temperatura máxima de Passo Fundo do dia 01/01/2009, possui os dados de hora em hora, exceto das 11 e 12 horas, onde houve falha na leitura da estação meteorológica. Dado com valor fora dos limites pré-determinados, por exemplo, Umidade Relativa com 109% ou -5%; Dado com caracteres não numéricos, por exemplo Chuva com o dado “9AH.8” ao invés de “9.8”; 6. Implementação A implementação do projeto consiste em arquivos de configuração, arquivos de interface gráfica (CSS e HTML), arquivos de código fonte Python e arquivo de script, estruturados em forma de pastas, a seguir: • gmweb: Pasta raiz do projeto Gerador de mapas na web. ◦ nbproject: Por padrão a ferramenta IDE de programação armazena todos os arquivos de interesse da própria nesta pasta; ◦ dmweb: Classes de processamento, ou seja, a aquisição de dados climáticos e a geração das imagens de mapas, as mesmas são executadas a partir do temporizador: ▪ AquisicaoDadosClimaticos: Classes que tratam a aquisição dos dados climáticos; ▪ dmwgis: Classes que tratam a leitura dos dados climáticos adquiridos e, a partir da ferramenta de geoprocessamento, a geração dos mapas em forma de imagens (padrão PNG) para a web. ▪ Implantacao: Script de implantação do sistema, consiste na geração do banco de dados, tabelas, e cadastramento das estações climáticas. Base para início de todo o sistema. ▪ lib: Bibliotecas de uso comum da sub-pasta; ◦ portal: Pasta raiz para publicação na web; ▪ gmweb: Pasta raiz do site, seguindo o padrão Django contém arquivos de configuração do: site, aplicações, PlugIns, templates, entre outros. ▪ deploy: Arquivos necessários para deployment e publicação do site no servidor lighttpd; ▪ fsdmweb: classes dos objetos persistentes ORM (Object relational mapping) ▪ fsutil: classes auxiliares do site ▪ media: arquivos de mídia como CSS (Cascade style sheeting), JS (Java script), entre outros; ▪ templates: arquivos de modelo no formato HTML, necessários para geração das páginas para publicação na internet; 6.1. Classes de processamento Compreendem-se como classes de processamento as atividades de: 1.Aquisição de dados climáticos, e; 2.Geração dos mapas em forma de imagens para web. 6.2. Classes de persistência São as classes que uma vez modeladas, permitem o armazenamento, consulta, alteração e exclusão. O próprio Framework Django trata da comunicação com o banco de dados (PostgreSQL). Todas as operações de manipulação são realizadas com os objetos. Compreendem-se como classes persistentes, as partes do site: 1.Variável: cada objeto compreende uma variável climática disponível para a geração de mapas; 2.Localidade: cada objeto consiste um local disponível para geração de mapas; 3.AgendamentoTarefa: cada objeto compreende o agendamento de um mapa realizado por um usuário. Ao entrar no site e se cadastrar, o usuário agenda os mapas que deseja visualizar. Esta classe permite informar a variável climática, a localidade e uma informação booleana dizendo se o usuário deseja receber o mapa por e-mail Por exemplo: Variável: Temperatura, Localidade: Paraná, Comunicar por e-mail: [ ]. Variável: Umidade relativa, Localidade: Pará, Comunicar por e-mail: [x]. 4.TarefaPendente: cada objeto representa uma tarefa pendente a ser executada. Os objetos são gerados através do temporizador que de hora em hora cria cada um de acordo com as tarefas agendadas (classe AgendamentoTarefa); 5.MapaPronto: cada objeto representa um mapa gerado. Ao chegar neste ponto, a classe AgendamentoTarefa foi base para colocação da tarefa na fila, através da classe TarefaPendente. Assim a execução da tarefa resulta em um objeto da classe MapaPronto. Uma classe MapaPronto contém: a localidade, a variável, a data e hora da informação do mapa, e a data e hora da publicação do mapa na web; 7. Resultados obtidos O resultado deste trabalho <http://gmweb.freitassilva.com:81>. encontra-se publicado no sítio A página principal do site apresenta os últimos mapas gerados, conforme a figura 3. Figura 3. Página principal do site A proposta deste trabalho é que o usuário se cadastre no site e agende a geração de mapas climáticos e os receba por e-mail, se assim desejar. Para tanto o mesmo deve clicar no link “Registre-se” localizado na seção “Usuário”, ao lado direito, conforme a figura 3. Assim entrará na página de “Registro do usuário”, conforme a figura 4. Figura 4. Registro do usuário no site. Registrando-se no site, o usuário pode entrar, utilizando o link “Entrar”, informando o sua identificação (nome do usuário) e sua senha. Após a entrada, estarão disponíveis os agendamentos do mesmo, conforme figura 5. Figura 5. Agendamentos de mapas. Após informar a Variável, a Localidade e a opção de Comunicação por e-mail, o agendamento encontra-se registrado e o mapa estará atualizado de hora em hora. Como a comunicação por e-mail é opcional, o usuário poderá receber uma mensagem via email de hora em hora também. Como o agendamento encontra-se registrado, o usuário tem então 3 opções em um agendamento registrado. Estas opções estão disponíveis na forma de link nas colunas: Editar, Excluir e Gerar, conforme a figura 6. Figura 6. Opções em um agendamento. O link Editar, permite alterar os dados deste registro de agendamento. Caso deseje excluir, utilize o link Excluir. O link Gerar, permite que sejam gerados os mapas online das duas horas anteriores, por exemplo caso o horário atual seja 10:40, ele gerará os mapas das 9:00 e das 10:00 horas e disponibilizará no site. Os mapas gerados podem ser visualizados a qualquer momento no site, sem a necessidade de estar registrado no mesmo. As opções de apresentação dos mapas estão disponíveis na seção “Mapas”, ao lado esquerdo do site. Podem ser visualizados por Localidade, por Variável ou por Período, conforme a Figura 7. Figura 7. Visualização de mapas por Localidade. Ao clicar na figura de miniatura de mapá o site apresenta a figura do mapa no seu tamanho real, conforme a figura 8. Figura 8. Visualização de um mapa gerado em seu tamanho real. 8. Conclusões A construção deste site resultou em um grande aprendizado na construção de um sistema completo utilizando somente ferramentas grátis e disponíveis na internet. Destacando-se a facilidade e agilidade de construção, modelagem, design, implementação e hospedagem do site. É notável também a compatibilidade entre as ferramentas livres utilizadas, permitindo oferecer um bom serviço ao usuário final. As ferramentas utilizadas permitem a exploração de novas funcionalidades para o site, bem como geração de relatórios, gráficos, tabelas, exportação em formatos comuns como XLS, PDF, CSV, etc. 9. Trabalhos futuros Este artigo apresentou a implementação de uma estrutura de banco de dados que permite armazenar informações temporais de determinados pontos geográficos no mapa do Brasil. Isto permite que a estrutura possa ser utilizada para a elaboração de resultados e/ou relatórios plotados em mapas para quaisquer tipos de informações, permitindo tomadas de decisão em um âmbito geográfico. Sugere-se por exemplo, a implementação de um módulo que gere previsões de dados climáticos através de Redes Neurais. Estas previsões também podem produzir mapas iguais aos gerados com dados reais. Sugere-se também a inclusão de quaisquer variáveis que necessitem de análise de forma geográfica, por exemplo, qual o número de casos da gripe A, vírus H1N1, no estado do Paraná. O sistema pode gerar um mapa permitindo uma análise geográfica do caso. Agradecimentos A Deus pela sua graça e oportunidades de estudo oferecidas. À minha esposa Michelle e meu filho Pedro, pela compreensão nos momentos que precisei me ausentar para os estudos. Ao CNPq/MCT e ao Fundo Setorial de Tecnologia da Informação – CT-Info, pela concessão da Bolsa de Desenvolvimento Tecnológico e Industrial (número do processo: 382181/2008-5). A Softcenter pela oportunidade de realizar a residência essencial para o exercício do estudo. À UEL e todos do DCC pelo bom serviço no auxílio aos estudos desta especialização. Referências Silva, Aldo J. S., Andrade Junior, Anderson S., Marin, Fábio R. (2008) “Um sistema web para a consulta de dados meteorológicos como ferramenta de apoio ao manejo de irrigação no estado do Piauí.”, Rev. Tecnol. Fortaleza, v. 29, n. 2, p. 141-147. Moura, Magna S. B. (2007) “Dados Climáticos Estação Meteorológica Automática do Campo Experimental de Bebedouro, 2005”. Petrolina: Embrapa Semi-Árido. Romani, Luciana A. S., Evangelista, Silvio R. M., Zullo Junior, Jurandir, Aguiar, Daniel, Fonseca, Marcelo (2004) “Geração online de Mapas Agrometeorológicos”. Embrapa. Miranda, José I., Souza, Kleber X. S. (2002) “Publicando Mapas na Web: Uso do ALOV Map”. Embrapa. Miranda, José I. (2002) “Servidor de Mapas para Web: Aplicação Cliente com o ALOV Map”. Embrapa. GRASS GIS (2009) “Geographic http://grass.itc.it, Junho. Resources Analysis INMET (2009) “Instituto Nacional de http://www.inmet.gov.br/sonabra/maps/automaticas.php, Junho. Support Meteorologia”, Django (2009) “Django Framework”, http://www.djangoproject.com. Junho. Python (2009) “Python Language”. http://www.python.org. Junho. System”.