Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4368 Valor de pixel e interação entre vetor e imagens de satélite através da internet. Kleber Renato da Paixão Ataíde1,2 Gustavo Macedo de Mello Baptista1 1 Universidade de Brasília – UnB [email protected] 2 Instituto Nacional de Meteorologia - INMET Eixo Monumental, Via S1, Sudoeste – Brasília – DF, Brasil [email protected] Abstract. This work present some features of the database open source 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, over layer, contains, proximity. Palavras-chave: Valor de pixel, Geoprocessamento, Imagens de Satélite, PostGIS, WKT Raster . 1. Introdução Os dados ambientais e meteorológicos são aplicados em diversas áreas de interesse da sociedade. Estes dados apresentam tipos, freqüência, origens diferentes e geralmente não se encontram centralizados em uma única fonte. (KOZIEVITCH, 2005). Existem diversos algoritmos que relacionam dados vetoriais e dados em formato matricial que geram como produto final informações sobre temperatura de superfície, índice de vegetação, uso de cobertura do solo, evapotranspiração de cultura, saldo de radiação, até produção agrícola e trajetória de tempestades. Porém sempre há a necessidade de se ter todos os dados na máquina do usuário para que seja feita a modelagem e a obtenção do resultado. Logo, torna-se interessante que se possa obter essas informações para um local específico e de interesse do usuário final através de um ambiente de internet, onde o usuário apenas marque seu local de interesse e obtenha a informação desejada. Diante desse contexto, existe a necessidade de armazenar o conjunto dos 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, áreas de plantio e dados em formato matricial como as imagens de satélite em um banco de dados que possibilite a interação entre esses diversos tipos de dados com auxilio das extensões espaciais. 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 que são utilizados na meteorologia e estudos ambientais. 2. Metodologia de Trabalho 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. 4368 Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4369 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.4 ou superior http://www.postgresql.org/download/; • PostGIS versão 1.5 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 4369 Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4370 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)) 4370 Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4371 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 e vetores, como municípios, áreas de interesse mapeadas, bacias hidrográficas entre outros. 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. 4371 Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4372 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 para uma determinada área de interesse do usuário final 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. 4372 Anais XV Simpósio Brasileiro de Sensoriamento Remoto - SBSR, Curitiba, PR, Brasil, 30 de abril a 05 de maio de 2011, INPE p.4373 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. 5. Referências Bibliográficas 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. 4373