Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

Comissão: CT7 - Sistemas de Informações Geográficas

Análise do módulo PostGIS (OpenGIS®) para armazenamento e tratamento de dados geográficos com alta performance e baixo custo Helton Nogueira Uchoa (Opengeo) (1) Renata Juliana Cristal Coutinho (Opengeo) (1) Paulo Roberto Ferreira (UFRJ)(2) Luiz Carlos Teixeira Coelho Filho (UFAM) (3) Jorge Luís Nunes e Silva Brito (UERJ) (4)
(1)

Opengeo Consultoria de Informática LTDA
Av. Marechal Floriano, 38 / 1203 – Centro Rio de Janeiro – RJ – CEP: 20080-004 pesquisa@opengeo.com.br

(2)

Universidade Federal do Rio de Janeiro

Programa de Pós-Graduação em Engenharia de Transportes – COPPE - Mestrado Cidade Universitária - RJ - CEP 21949-900 roberto@pet.coppe.ufrj.br
(3)

Universidade Federal do Amazonas

Programa de Pós-Graduação em Informática - Mestrado Av. Gen Rodrigo Otávio Jordão Ramos 3000 Minicampus - Manaus / AM – CEP: 69077-000 lcoelho@ppgi.ufam.edu.br
(4)

Universidade do Estado do Rio de Janeiro

Programa de Pós-Graduação em Engenharia da Computação – Geomática Rua São Francisco Xavier, 524 – Maracanã Rio de Janeiro – RJ – CEP 20559-900 jnunes@uerj.br

RESUMO
O crescimento contínuo do volume de informações que necessitam ser armazenadas e espacialmente tratadas tem causado dificuldades para muitas instituições que ainda trabalham com repositórios de dados baseados em diretórios e arquivos. Os principais órgãos de mapeamento do país ainda possuem os repositórios baseados nesta arquitetura. Por isso, eles têm buscado uma solução baseada num Banco de Dados Geográfico, já que esta é a forma ideal de administrar de maneira segura e eficiente um grande volume de dados. No Brasil, as principais soluções proprietárias para repositórios baseados em Banco de Dados utilizam, normalmente, o Microsoft SQL Server® ou o Oracle® Spatial. As soluções de Geoprocessamento que utilizam esta arquitetura proprietária possuem dois grandes problemas, a saber: • A instituição (cliente) fica dependente de uma única empresa que impõe custos elevados para manter e atualizar esta estrutura; • O controle por demanda impossibilita que a estrutura seja ampliada para atender todas as demandas internas e externas de uma instituição. Um exemplo claro desta situação pode ser observada nas prefeituras que não conseguem integrar todas as secretarias a um repositório central, pois os custos com o aumento do número de acessos são muito elevados, fruto deste controle por demanda. Observando estes problemas presentes na área de Geotecnologias, empresas canadenses resolveram investir em um modelo de negócios baseado em software livre (SL). Com isso, estas empresas passaram a desenvolver importantes projetos para aplicações em Sistemas de Informação Geográfica (SIG). O objetivo deste trabalho é analisar o módulo PostGIS que foi desenvolvido pela empresa canadense Refractions e licenciado livremente para a comunidade mundial de SL. Este módulo tem o objetivo de permitir o armazenamento e tratamento de dados geográficos no SGBD PostgreSQL, seguindo o padrão OpenGIS® Simple Features Specification (SFS – OGC). Também na categoria de software livre, o PostgreSQL é um SGBD objeto-relacional com recursos comparáveis ao
OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

Oracle®, porém ainda pouco conhecido pelos profissionais da área de GEO. Muitos profissionais de TI que trabalham com Linux, conhecem bem o potencial do PostgreSQL e tem dado preferência ao mesmo em substituição das plataformas proprietárias. A análise efetuada neste trabalho permite concluir que o PostGIS se apresenta como um caminho viável para implantação de uma solução corporativa de Geoprocessamento em instituições públicas que necessitam de performance e baixo custo. Adicionalmente, conclui-se que a padronização OpenGIS® pode garantir a interoperabilidade de várias instituições públicas, permitindo que a gestão pública do Brasil realmente entre na era da Geoinformação. PALAVRAS-CHAVES: OpenGIS, PostGIS, Software Livre, PostgreSQL

ABSTRACT
The continuous growth of the volume of information that needs to be archived and specially processed has caused difficulties for many institutions that still work with repositories of data based upon directories and files. The main mapping agencies of Brazil still have their file systems based on this architecture. Because of that, they have searched for a solution based upon geographical databases, as this is the ideal way of controlling large volumes of data in a safe, efficient way. In Brazil, the main proprietary solutions for a repository based upon a database use normally Microsoft SQL ServerTM or OracleTM Spatial. The geoprocessing solutions that use this proprietary architecture have two main problems. • The institution (client) remains dependent on an only enterprise that imposes high costs for maintenance and updating of this structure; • The “on demand” control does not allow this structure to be enlarged in to serve all internal and external demands that such institutions may have. A clear example of this situation can be observed in city management, that cannot integrate all its counties to a central repository. This is caused by the costs related to the growth of access are very large, a consequence of the “on demand” controlling strategy. Taking a deeper look on these problems that exist in geotechnologies, some Canadian enterprises have decided to invest in a business model based upon Free Software. As a consequence, these enterprises have started to develop important projects for applications based on Geographical Information Systems (GIS). The goal of this paper is to analyze the module PostGIS, that was developed by the Canadian enterprise Refractions, and freely licensed for the geo-community. This module has the objective of allowing storage and treatment of geographic data through the database PostgresSQL, according to the OpenGISTM standards – Simple Features Specification (SFS – OGC). Also belonging the free software category, PostgreSQL is an object-relational database with resources comparable to Oracle TM, but still unknown by geo-professionals. Many IT professionals that work with Linux know its potential and have substituted proprietary platforms by it. With more than 100 spatial/topological functions, PostGIS is regarded as a promising way for implementing a corporative geoprocessing solution in public institutions that need high performance at low cost. The OpenGISTM standard can guarantee interoperability between many institutions, allowing public administration in Brazil to really entering in the era of Geoinformation. KEYWORDS: OpenGIS, PostGIS, Free Software, PostgreSQL 1 INTRODUÇÃO O PostgreSQL é o Sistema Gerenciador de Banco de Dados (SGBD) de código aberto que possibilitou o desenvolvimento de soluções corporativas com uma melhor relação custo x benefício. Um ponto forte deste SGBD é a sua capacidade de tratar grandes volumes de dados com escalabilidade, ou seja, a sua arquitetura pode ser continuamente ampliada de acordo com a demanda dos usuários. Exatamente neste contexto, entram as aplicações na área de Geotecnologias que necessitam de uma infraestrutura robusta e em contínua expansão. A evolução do PostgreSQL está baseada longa história cujo início está no meio acadêmico, mostram os fatos a seguir: • O Ingres (1977-1985) desenvolvido Universidade de Berkeley na Califórnia ponto de partida para o PostgreSQL (PG); numa como pela foi o

De 1986 à 1994, Michael Stonebraker chefiou um grupo de desenvolvedores com o objetivo de projetar um SGBD objeto-relacional. Este projeto foi denominado Postgres (“Post” indica “posterior”, fazendo referência ao Ingres); O código deste projeto foi utilizado pela empresa Illustra para o desenvolvimento de um projeto comercial; A Illustra Information Technologies uniu-se com a Informix, sendo esta adquirida pela IBM em 2001. Oficialmente o desenvolvimento do Postgres parou na versão 4.2 em 1994; Dois estudantes de graduação de Berkeley, Jolly Chen e Andrew Yu, adicionaram o suporte SQL ao PG em 1994/1995. Este projeto foi denominado Postgres95. Ambos deixaram Berkeley, porém o Jolly Chen continuou mantendo e desenvolvendo o Postgres95 (este projeto foi desenvolvido em ANSI C);

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

Chen buscou formar uma equipe pequena com bastante tempo disponível para continuar a implementação das 250.000 linhas de código C. A equipe principal de desenvolvimento era formado por Marc Fournier (Canadá), Thomas Lockhart (Califórnia), Vadim Mikheev (Rússia) e Bruce Momjian (Pensilvânia); Em 1996, o nome foi alterado de Postgres95 para PostgreSQL (versão 6.0).

implementa diversas funcionalidades topológicas, possibilitando o desenvolvimento de Sistemas de Informação Geográfica (SIG) Corporativos. A topologia também faz parte da especificação SFS (OpenGIS®), garantindo ao PostGIS interoperabilidade com inúmeros sistemas que também adotam o SFS. O licenciamento do PostGIS é definido pela GNU GPL (General Public License), garantindo todas as liberdades1 de um software livre. Um fato importante a ser destacado pela licença GNU GPL é que, ao contrário da BSD, qualquer melhoria do código-fonte do PostGIS deve ser devolvida ao mantenedor (líder do desenvolvimento) do projeto. O PostGIS foi desenvolvido pela empresa canadense Refractions Research e, no período em que este artigo foi escrito, encontrava-se na versão 1.0.2. Para tratar grandes volumes de dados espaciais com maior eficiência, PostGIS implementa a indexação RTree sobre a indexação GiST (Generalized Search Trees) nativa do PostgreSQL. Apesar do PostgreSQL possuir nativamente três tipos de indexação (B-Tree, R-Tree e GiST), a R-Tree nativa não apresenta a robustez exigida para as aplicações relacionadas ao PostGIS. O código-fonte disponível para download está voltado para compilação em plataforma Linux/Unix, podendo ser compilado, com algumas adaptações, em qualquer plataforma. Visando direcionar o trabalho para plataformas livres, todos os estudos serão conduzidos sobre uma configuração totalmente isenta de sistemas proprietários. 2 PRINCIPAIS FUNÇÕES DO POSTGIS O PostGIS conta com um grande número de funções para análises espaciais/topológicas que estendem o próprio SQL do PostgreSQL. Para este trabalho, foram selecionadas algumas funções, tendo em vista as demandas cotidianas das instituições que tratam da Geoinformação, bem como, a complexidade computacional das mesmas: • Disjoint: analisa se duas geometrias possuem algum ponto em comum e retorna o valor verdadeiro (t, true) se nenhum ponto for identificado; • Intersects: analisa se duas geometrias possuem alguma interseção e retorna verdadeiro (t, true) caso isto ocorra; • Touches: analisa se duas geometrias possuem alguma interseção e retorna verdadeiro (t, true) caso isto ocorra;
1 Segundo a Fundação Software Livre (Free Software Foundation), as quatro liberdades que definem o software livre: i. A liberdade de executar o programa, para qualquer propósito; ii. A liberdade de estudar como o programa funciona e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade; iii. A liberdade de redistribuir cópias, permitindo a ajuda ao próximo; iv. A liberdade de aperfeiçoar o programa e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. Acesso ao código-fonte é um pré-requisito para esta liberdade.

Na época em que este artigo foi escrito, o PostgreSQL se encontrava na versão 8.0.3, contando com uma rápida evolução, tendo novas versões lançadas a cada poucos meses. Entre as principais características do PostgreSQL, pode-se citar: • Licenciamento BSD. Esta licença garante total liberdade de uso, alteração, modificação e distribuição do sistema. Ela também permite que versões proprietárias e comerciais sejam criadas a partir do sistema licenciado nestes termos; • 100% compatível com ANSI SQL (SQL92 e algumas funcionalidades do SQL 99). Este recurso permite uma grande facilidade na migração de dados de outros bancos que também sigam o ANSI SQL; • SGBD Objeto-Relacional (classes e hierarquia). O PostgreSQL está na mesma categoria de outros SGBD's, tais como Oracle®, Microsoft SQL Server® e IBM DB2®, que evoluíram da arquitetura de relacional para objeto-relacional, ou seja, implentaram algumas definições de orientação à objeto; • Extremamente modular, facilitando o trabalho dos desenvolvedores que desejam implementar novas funcionalidades. Esta característica possibilitou a criação do módulo PostGIS, contendo inúmeras funcionalidades para o desenvolvimento de aplicações que tratam a Geoinformação; • Possui as seguintes interfaces nativas: ODBC, JDBC, C, C++, PHP, Perl, TCL, ECPG, Python e Ruby. Neste quesito, o PostgreSQL supera todos os demais SGBD's, pois nenhum outro possui tantas possibilidades de implementações inerentes ao SGBD. Com isso, as diversas “tribos” de desenvolvedores poderão implementar funções dentro do banco sem a necessidade de aprender uma nova linguagem; • Existem interfaces gráficas livres que permitem a gerência do PG de maneira simples: phpPgAdmin e pgAdmin III. Estas interfaces facilitam a gerência dos bancos de dados, tornando os processos mais intuitivos. O PostGIS é um módulo que adiciona entidades geográficas ao PostgreSQL. Nativamente, o PostgreSQL já suporta geometrias espaciais, porém o PostGIS adiciona a capacidade de armazenamento/recuperação segundo a especificação SFS (Simple   Features   Specification) do consórcio internacional Open GeoSpatial (OGC). Além do armazenamento de dados geográficos, este módulo também

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

• •

Crosses: analisa se duas geometrias se cruzam e retorna verdadeiro (t, true) caso isto ocorra; Within: analisa se uma geometria está continda na outra e retorna verdadeiro (t, true) caso isto ocorra; Contains: analisa se uma geometria contém a outra e retorna verdadeiro (t, true) caso isto ocorra.

­ ­

RIO DO PRADO PALMOPOLIS

Na próxima seção, as funções descritas acima serão analisadas através de algumas queries. 3 PERFORMANCE DE OPERAÇÕES TOPOLÓGICAS Para a análise dos resultados das principais operações topológicas/espaciais do PostGIS, foi estabelecido um ambiente de teste (servidor Linux) com a seguinte configuração: • Processador Atlhon XP 3.200+; • 1 GB de memória RAM; • HD serial ATA de 120 GB. A distribuição Linux utilizada foi o Fedora Core 3 com as seguintes aplicações configuradas/compiladas: • PostgreSQL 8.0.3; • PostGIS 1.0.2; • Proj 4.4.9; • GEOS 2.1.2. Durante a condução dos testes, inúmeras outras aplicações estavam sendo executadas sobre o mesmo computador, simulando um ambiente normalmente encontrado nos órgãos públicos com pouca disponibilidade de recursos financeiros. Entre estas aplicações, estão: Apache, servidor X, MySQL, etc. A base de municípios do IBGE e a base de rodovias federais foram utilizadas para estes testes, buscando compor situações do cotidiano. Esta base possui cerca de 4.8 milhões de vértices. Para que fosse possível visualizar os resultados das análises num mapa, foi utilizado o MapServer. Este sistema também possui as 4 liberdades inerentes aos softwares livres.
➢ ➢

Fig. 1 – Municípios que tocam o município de Rubim
➢ ➢

➢ ➢

Análise: identificar todos os municípios que não estão ao redor do município de Rubin; Query: ­ select t2.nome_munic, t2.gid from municipios t1, municipios t2 where disjoint(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Rubim'; Tempo de execução: 980.335 ms Resultado: o resultado desta query corresponde a todos os municípios, com exceção dos listados na query anterior.

➢ ➢

Análise: identificar todos os municípios que estão ao redor do município de Rubin; Query: ­ select t2.nome_munic from municipios t1, municipios t2 where touches(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Rubim'; Tempo de execução: 1149.628 ms Resultado: ­ ALMENARA ­ JACINTO ­ JEQUITINHONHA ­ SANTO ANTONIO DO JACINTO ­ FELISBURGO

Fig. 2 – Municípios que não tocam o município de Rubim

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

➢ ➢

➢ ➢

Análise: identificar todos os municípios que estão ao redor do município de Uchoa; Query: ­ select t2.nome_munic, t2.gid from municipios t1, municipios t2 where touches(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Uchoa'; Tempo de execução: 675.292 ms Resultado: ­ OLIMPIA ­ GUAPIACU ­ TABAPUA ­ CEDRAL ­ IBIRA ­ CATIGUA

Fig. 4 – Municípios que não tocam o município de Uchoa
➢ ➢

➢ ➢

Análise: identificar todos as rodovias federais que intersectam o município de Uchoa; Query: ­ select t2.rodovia from municipios t1, rodovias t2 where intersects(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Uchoa'; Tempo de execução: 217.608 ms Resultado: ­ BR-456/SP ­ BR-456/SP ­ SP-379

Fig. 3 – Municípios que tocam o município de Uchoa
➢ ➢

➢ ➢

Análise: identificar todos os municípios que não estão ao redor do município de Uchoa; Query: ­ select t2.nome_munic from municipios t1, municipios t2 where disjoint(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Uchoa'; Tempo de execução: 629.816 ms Resultado: o resultado desta query corresponde a todos os municípios, com exceção dos listados na query anterior.

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

➢ ➢

➢ ➢

Análise: identificar todos as rodovias federais que intersectam o município de Altamira; Query: ­ select t2.rodovia, t2.tipo from municipios t1, rodovias t2 where intersects(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Altamira'; Tempo de execução: 2747.839 ms Resultado: ­ BR-163/PA ­ BR-163/PA ­ BR-163/PA ­ BR-163/PA ­ BR-230/PA ­ BR-230/PA ­ BR-158/PA ­ BR-230/PA

Fig. 5 – Rodovias que intersectam o município de Uchoa
➢ ➢

➢ ➢

Análise: identificar todos as rodovias federais que cruzam o município de Altamira; Query: ­ select t2.rodovia from municipios t1, rodovias t2 where crosses(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Altamira'; Tempo de execução: 2682.713 ms Resultado: ­ BR-163/PA ­ BR-163/PA ­ BR-163/PA ­ BR-230/PA ­ BR-230/PA

Fig. 6 – Rodovias que intersectam o município de Altamira

➢ ➢

Análise: identificar todas as rodovias federais que estão contidas no município de Altamira, utilizando a função within; Query: ­ select t2.rodovia, t2.tipo from municipios t1, rodovias t2 where within(t2.the_geom, t1.the_geom)='t' AND t1.nome_munic='Altamira'; Tempo de execução: 2463.775 ms Resultado: ­ BR-163/PA ­ BR-230/PA ­ BR-158/PA

Fig. 5 – Rodovias que cruzam o município de Altamira

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Análise do módulo PostGIS para armazenamento e tratamento de dados geográficos com alta performance e baixo custo

OpenGEO

O maior tempo de consulta não chegou a 3 segundos num computador com valor inferior a R$ 3.000,00. Nenhum software proprietário foi utilizado para a implementação desta solução, ou seja, o hardware seria o único custo, além da capacitação, que uma instituição teria para possuir o seu próprio Banco de Dados Geográfico. Apesar disso, os órgãos de mapeamento oficial do país e a grande maioria das instituições públicas continuam com os investimentos voltados para uma arquitetura proprietária com soluções, normalmente, americanas, comprando uma estrutura cada vez mais dependente de empresas estrangeiras e com alto custo de manutenção. O PostgreSQL já está consagrado no mundo do software livre sendo utilizado por grandes instituições como a Câmara Municipal do Rio de Janeiro, a Prefeitura de Diadema - SP, a Prefeitura de Pedras Grandes - SP, o Hospital São Lucas (SE), a Secretaria da Agricultura e Pecuária - CE, a Unisuam - RJ, a Telemar, etc. Porém, na área de Geotecnologias, o seu potencial ainda é pouco aproveitado, devido a falta de conhecimento dos profissionais da área com relação às novas tecnologias livres. Outro fator que tem dificultado o avanço deste SGBD é a fomação acadêmica baseada em soluções proprietárias, tendo em vista que a grande maioria dos professores ainda preferem seguir a linha tracional de ensino, direcionando o aprendizado para pacotes consolidados no mercado. Espera-se que este trabalho possa chamar a atenção de professores, estudantes e profissionais da área de Geotecnologias para as mudanças tecnológias que estão ocorrendo com a disponiblização de opções livres para toda a comunidade mundial. 5 REFERÊNCIAS BIBLIOGRÁFICAS Douglas, K; Douglas, S, 2003, PostgreSQL – A comprehensive guide to building, programming and administering PostgreSQL databases, Sams Publishing, Indiana, USA, 790 páginas. Site Oficial do PsotgreSQL, http://www.postgresql.org Site Oficial do MapServer, http://mapserver.gis.umn.edu Site Oficial do PostGIS, http://www.postgis.org

Fig. 7 – Rodovias que estão contidas no município de Altamira

➢ ➢

Análise: identificar todas as rodovias federais que estão contidas no município de Altamira, utilizando a função contains; Query: ­ select t2.rodovia, t2.tipo from municipios t1, rodovias t2 where contains(t1.the_geom, t2.the_geom)='t' AND t1.nome_munic='Altamira'; Tempo de execução: 2801.005 ms Resultado: ­ BR-163/PA ­ BR-230/PA ­ BR-158/PA

Como era de se esperar, as duas últimas análises apresentam resultados exatamente iguais, com performances também similares. 4 CONCLUSÃO Os testes conduzidos neste trabalho apresentam o PostgreSQL/PostGIS como uma robusta opção para implementações de SIG corporativo. Outro fator importante a destacar, é a flexibilidade do PostgreSQL no desenvolvimento de novos módulos.

OpenGEO – Centro de Excelência em Geotecnologias Livres – www.opengeo.com.br

Sign up to vote on this title
UsefulNot useful