Dados Meteorológicos e Ambientais em PostgreSQL (PostGIS / WKT Raster) e consulta via WEB. Kleber Renato da Paixão Ataíde1,2, Wagner de Aragão Bezerra1 Instituto Nacional de Meteorologia - Eixo Monumental Via S1 - Brasília – Brasil. 2 Doutorando em Geociências Aplicadas-Universidade de Brasília-UnB Email: [email protected] 1 ABSTRACT: This work present one part of development of a new tool web to assist the meteorology and environmental analyses service using resources existing in the DBMS PostgreSQL and yours spatial extensions PostGIS and WKT Raster to storage and query of meteorological and environmental data, resulting in applications that interact raster data (satellite images) and vector data (thematic maps) by structured query language SQL, where one of the main functionality of the final product is to can make query, trough web interface, of the real data contents in each pixel from satellite image into database and relations of intersects, cross, contains, proximity. Palavras-chave: Valor de pixel, Geoprocessamento, Imagens de Satélite, PostGIS, WKT Raster. 1- INTRODUÇÃO Os dados meteorológicos e ambientais são aplicados em diversas áreas de interesse da sociedade como agricultura (previsão de tempo ajuda na decisão da plantação, períodos de seca, colheita), lazer (previsão do tempo na praia, no campo) segurança (alertas sobre chuvas, ventanias), etc. Estes dados apresentam tipos, freqüência e origem diferentes e geralmente não se encontram centralizados em uma única fonte. (KOZIEVITCH, 2005). O Instituto Nacional de Meteorologia (INMET), por exemplo, recebe diversos tipos de dados como estações meteorológicas convencionais, automáticas e de radiossonda, além de recepção de dados de bóia e imagens de satélites de órbita polar e geoestacionária. Diante desse contexto, existe a necessidade de armazenar um conjunto de diferentes tipos de dados geoespaciais tais como dados pontuais das estações meteorológicas, dados poligonais como mapas de regiões, estados, municípios, bacias hidrográficas e dados em formato matricial como as imagens de satélite, logo, é necessário uma ferramenta que possibilite o armazenamento, a consulta e a interação entre esses diversos tipos de dados usando um banco de dados com extensão espacial. O presente trabalho tem por objetivo apresentar algumas aplicações em desenvolvimento usando algumas funções e características da extensão espacial PostGIS/WKT Raster do SGBD objeto-relacional PostgreSQL, como alternativa open source para armazenamento e consulta de dados espaciais dos mais diversos tipos que são utilizados na meteorologia e estudos ambientais. 2-MATERIAL E MÉTODOS O PostgreSQL é um sistema gerenciador de banco de dados objeto-relacional código aberto e de grande porte que oferece suporte a dados espaciais por meio de sua extensão PostGIS para vetores e WKT Raster para dados matriciais, como as imagens de satélite, segundo as especificações do OpenGis (Simple Features Specification for SQL)(PostGIS, 2009). Permitindo uso de linguagem SQL, procedures, funções e consultas complexas entre tabelas e outras características, tornando possível o relacionamento entre tabelas com dados espaciais como vetores e matrizes. Para instalação do WKT Raster é necessário anteriormente ter instalado o PostgreSQL e a estensão espacial PostGIS. 2.1 - Instalação do PostgreSQL O pacote de instalação do PostgreSQL está disponível em várias fontes de formatos binários. O pacote completo inclui: Servidor central com documentação completa (HTML, man) Várias ferramentas para linha de comando (por exemplo, o psql, pg_ctl, pg_dump, pg_restore) Biblioteca C (libpq) e o processador incorporado C (ecpg) Várias linguagens procedurais server-side (por exemplo, plpgsql, pltcl, plperl) Vários pacotes add-on populares (por exemplo, metaphone, pgcrypto e outros acessórios úteis) Além disso, alguns instaladores que incluem pacotes adicionais, como pgAdmin e PostGIS. Os pacotes binários estão disponíveis para um número de diferentes sistemas operacionais, como FreeBSD, Linux, Mac OS X, Solaris e Windows encontrados no site http://www.postgresql.org/download/ 2.2 - Instalação do PostGIS A instalação do PostGIS pode ser efetuada logo após a instalação do PostgreSQL através do seu programa instalador automático, ou pode também ser carregado do site http://postgis.refractions.net/download/ , no qual existem diversas versões para download inclusive o pacote binário do WKTRaster. 2.3 - Instalação do WKT Raster O WKT Raster pode ser carregado do site citado anteriormente ou se for para Windows pode ser conseguido no seguinte endereço: http://www.postgis.org/download/windows/experimental.php. Os requerimentos para sua instalação são: PostgreSQL versão 8.3 ou superior http://www.postgresql.org/download/; PostGIS versão 1.4 ou superior http://postgis.refractions.net/download/; Biblioteca Proj4 versão 4.4 ou superior http://trac.osgeo.org/proj/; Biblioteca GEOS versão 3.2.0 ou superior http://trac.osgeo.org/geos/; Onde o GEOS 3.2.0 e o PROJ4.6.1 são instalados juntamente com o PostGIS 1.5.1.faltando apenas o Python e o GDAL para o Python. Extensão WKTRaster PostGIS versão 0.1.6SVN ou superior http://postgis.refractions.net/download/windows/experimental.php; Python (http://www.python.org/download/)versão 2.5 ou superior e GDAL para Python(http://pypi.python.org/pypi/GDAL/) versão 1.6.0 (http://download.osgeo.org/gdal/win32/1.6/) ou superior para o carregador (gdal2wktraster.py); Instalar o NumPy baixado de http://sourceforge.net/projects/numpy/files/NumPy/; Para usar o gdal2wktraster.py, é necessário o Python 2.5 e vínculos com GDAL que pode ser baixado em http://pypi.python.org/pypi/GDAL/1.6.1 e executar o programa GDAL-1.6.1.win32-py2.5.exe. O PostGIS foi desenvolvido pela Refractions Research, como um projeto em tecnologia de banco de dados espaciais de código aberto e liberado sob a licença GNU General Public License e continua em desenvolvimento onde tem sido acrescentado de ferramentas de interface para usuário, suporte a topologia básica, validação de dados, transformação de coordenadas, APIs de programação entre outros, onde também há suporte à topologia completa, suporte de varredura, redes e roteamento, superfície tridimensional, curvas, splines e outras características, (PostGIS Manual, 2009). O WKTRaster implementa um tipo RASTER como o tipo GEOMETRY implementado no PostGIS e oferece um conjunto de funções SQL (como intersects) que operam de forma integrada em vetores e raster, pois é uma extensão do PostGIS instalada separadamente em versões superiores a 1.3.5 e tão simples quanto, onde RASTER é um novo tipo de coluna, assim como o tipo geometria do PostGIS, para uma camada de raster, do mesmo modo como uma camada de vetor no PostGIS, uma linha da tabela com uma coluna do tipo raster contendo um tile assim como uma linha de características do vetor no PostGIS, (OBE et al, 2009). Os vetores de municípios, regiões, bacias hidrográficas, etc. e as imagens são inseridas nesse banco de dados com suas características originais para consulta, mantendo a resolução espacial, valores dos pixels de cada banda, quantidade de bandas múltiplas, resolução de até 16 bits, informações geográficas, atribuição de valores nulos para pixels indesejados entre outras permitindo interagir valores de pixel da imagem com determinada área de interesse do usuário inserida em formato de vetor nesse banco de dados, além de suas operações matemáticas. Cada tile raster tem especificações de tamanho do pixel, largura e altura, georreferenciamento, número de bandas, tipo de pixel por banda e valor de pixeis nodata por banda, quais são essenciais para realizar operações básicas de GIS raster. Para inserir uma imagem nesse banco de dados é utilizado um programa em python, que é semelhante ao shp2pgsql.exe chamado gdal2wktraster.py. Possibilitando a conversão de raster para geometria, introduz raster como construtor de geometria, onde não há necessidade de se preocupar se está trabalhando com raster ou vetor em funções de análise, operações geométricas, armazenamento de raster dentro do banco de dados como WKB, para operações de análise eficiente entre camadas vetor e raster, ou fora do banco de dados, para desktop e aplicações web que podem ser acessados rapidamente e carregar tiles, beneficiando os índices espaciais GIST do PostGIS. Cada função SQL WKT Raster permite que um raster dentro do banco de dados trabalhe perfeitamente com raster armazenado fora do banco de dados. Introduz o conceito de objetos raster com características geográficas armazenadas com tiles de tamanhos variados ao invés de polígonos e conversão de vetor para raster sem perda de informação. O WKT Raster é muito mais simples que PGRaster e Oracle GeoRaster, pois suporta apenas um tipo, onde não existe diferença entre raster e tiles, um tile é um raster e vice-versa, por exemplo, uma linha é um tile que por sua vez é um raster; uma tabela é uma camada raster; sem metadados; sem máscara, sem múltiplas dimensões, apenas x e y, mas sem confundir com bandas, pois o WKT Raster suporta multibandas raster sem pirâmide (OBE et al, 2009).. Conforme Casanova et al.(2005), os tipos de dados geográficos do PostGIS são textuais no formato WKT (Well-Know Text): • Point: (0 0 0), LineString: (0 0, 1 1, 2 2); • Polygon: ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), (1 0 0, ...), ...) • MultPoint: (0 0 0, 4 4 0) • MultLineString: ((0 0 0, 1 1 0, 2 2 0), (4 4 0, 5 5 0, 6 6 0)) • MultiPolygon: (((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), (...),...), ...) • GeometryCollection: (POINT(2 2 0), LINESTRING((4 4 0, 9 9 0)) 3-RESULTADOS E DISCUSSÃO A seguir são apresentados alguns exemplos que simulam os resultados apresentados a partir de consultas que interagem informações em formato raster, como imagens de satélite ou dados interpolados, por exemplo e vetores, como municípios, áreas de interesse mapeadas, bacias hidrográficas entre outro. A Figura 1 apresenta operação Vetor / Vetor com resultado como uma camada vetor; Figura 1 – Um buffer circular(a)vetorial que intersecta com dois tipos de vegetação vetoriais (tipo 1 e tipo 2) com resultado em vetor. A Figura 2 apresenta operação Vetor / Raster com resultado como uma camada raster; Figura 2 – Um buffer circular(a) vetorial que intersecta com dois tipos de vegetação raster (tipo 1 e tipo 2) com resultado em raster. A Figura 3 apresenta operação Vetor / Raster com resultado como uma camada vetor Figura 3 – Um buffer circular(a) vetorial que intersecta com dois tipos de vegetação raster (tipo 1 e tipo 2) com resultado em vetor. A Figura 4 apresenta operação Raster/ Raster com resultado como uma camada raster Figura 4 – Um buffer circular(a) raster que intersecta com dois tipos de vegetação raster (tipo 1 e tipo 2) com resultado em raster. Diante disso, o objetivo final do trabalho na forma mais completa consiste de um Sistema de Informações Geográficas via WEB que permite ao usuário consultar remotamente os valores dos pixels de uma imagem de satélite inserida no banco de dados sem a necessidade de fazer download da imagem para sua máquina. Esse sistema possibilitará, por exemplo, escolher o tipo de informação que deseja a partir de determinada área, por exemplo, o índice de vegetação, temperatura da superfície do continente, do oceano ou do topo das nuvens, albedo, tipo de nebulosidade entre outros que sejam inseridos no banco de dados ou que possam ser gerados a partir das imagens brutas consultadas através de cada algoritmo específico. O tipo de consulta pode ser por demanda do usuário ou até mesmo haver campos para inserção de fórmulas matemáticas que o próprio usuário manuseie obedecendo a uma lista de comandos que o sistema entenda e que ficarão disponibilizados na página web. Um exemplo da interface é apresentado na Figura 5. Figura 5 – Exemplo do ambiente de consulta do valor do pixel da imagem apenas com o clique do mouse na coordenada geográfica via interface web. 4-CONCLUSÕES Diante desse contexto, observam-se as diversas funcionalidades e aplicações que podem surgir com uso do PostgreSQL e suas extensões espaciais para dados meteorológicos e ambientais principalmente com o surgimento do WKT Raster, o qual apresenta-se como uma ferramenta avançada para consultas e armazenamento de imagens de satélite, possibilitando resolver algumas questões de níveis micrometeorológicos, agrometeorológicos, estudos ambientais entre outros, além de permitir o usuário consultar valores reais de dados contidos na imagem do satélite sem a necessidade de fazer o download da imagem para ter acesso a essa informação, além de permitir fazer consultas que interagem informações em formato vetor e matricial, como por exemplo, listar todas estações meteorológicas instaladas dentro de uma determinada bacia e que tem cobertura de nuvens em determinada hora.. 5-REFERÊNCIA BIBLIOGRÁFICA KOZIEVITCH, N. P. Dados meteorológicos: um estudo de viabilidade utilizando um SGBD em plataforma de baixo custo, dissertação de mestrado, Curitiba-PR, 2005, p.70. OBE, REGINA. O.; HSU, LEO. S. PostGIS in Action: MEAP Edition Manning Early. Manning Publications Co. Acces Program. p. 425, ISBN: 9781935182269, May. 2009. Disponível em: <www.manning.com>. Acessado em: 10/01/2010. POSTGIS MANUAL. Disponível em <http://postgis.refractions.net/docs/postgis.pdf>.Acesso em: 10/10/2009. THE MAPSERVER TEAM. MapServer: MapServer documentation, Release 5.6.1, 2010, p. 714.