Este documento apresenta um resumo sobre como trabalhar com informações geográficas utilizando softwares livres. Aborda conceitos de sistemas de informação geográfica e representação computacional de dados espaciais. Explana sobre o Postgis, extensão do PostgreSQL para armazenamento de dados espaciais, e ferramentas livres para visualização e disponibilização de informações geográficas em ambientes desktop, web e mobile.
Disponibilização de informações geográficas utilizando software livre
1. FUNDAÇÃO EDSON QUEIROZ
UNIVERSIDADE DE FORTALEZA - UNIFOR
DISPONIBILIZAÇÃO DE INFORMAÇÕES GEOGRÁFICAS EM
UM AMBIENTE COMPUTACIONAL UTILIZANDO SOFTWARE
LIVRE
VICTOR HUGO PEREIRA SOARES DE JOINVILLE MOURA
Fortaleza – Ceará
2009
2.
3. VICTOR HUGO PEREIRA SOARES DE JOINVILLE MOURA
DISPONIBILIZAÇÃO DE INFORMAÇÕES GEOGRÁFICAS EM
UM AMBIENTE COMPUTACIONAL UTILIZANDO SOFTWARE
LIVRE
Monografia apresentada para obtenção dos
créditos da disciplina Trabalho de Conclusão
do Curso do Centro de Ciências
Tecnológicas da Universidade de Fortaleza,
como parte das exigências para graduação
no Curso de Ciências da Computação.
Orientador: Msc. Raimundo Tales B R Matos
Fortaleza – Ceará
2009
4. DISPONIBILIZAÇÃO DE INFORMAÇÕES GEOGRÁFICAS EM UM
AMBIENTE COMPUTACIONAL UTILIZANDO SOFTWARE LIVRE
Victor Hugo Pereira Soares de Joinville Moura
PARECER: ______________________________
DATA: ___/___/____
BANCA EXAMINADORA:
_______________________________________________
Msc. Raimundo Tales B R Matos - professor orientador
_______________________________________________
Dr. José Maria da S Monteiro Filho - professor examinador
6. AGRADECIMENTOS
A
Minha mãe
por todo amor e carinho me dado pelo decorrer da vida.
A minha família, que é a minha raiz, minha origem e que ajudou a formar a
pessoa que sou hoje.
A Marcyo, pelo apoio e companheirismo sincero durante essa jornada.
A Alves Neto, por todo o conhecimento compartilhado.
Ao Professor Tales, por toda sua ajuda e compreensão.
8. RESUMO
Este trabalho objetiva mostrar como trabalhar com Informações Geográficas (IG) em um
ambiente computacional utilizando softwares livres. Explana sobre o que são Sistemas
de Informação Geográfica (SIG). Aborda também os passos necessários para a
representação computacional da IG além de falar sobre o Postgis, extensão do Sistema
Gerenciador de Banco de Dados (SGBD) PostgreSQL, que permite o armazenamento e
utilização da IG utilizando todos os recursos de um SGBD. Por fim mostra ferramentas
livres que permitem a visualização e disponibilização dessas Informações Geográficas
tanto em um ambiente desktop como em um ambiente web e até mobile.
9. LISTA DE ABREVIATURAS
BD – Banco de Dados
GPS – Global Positioning System
IG – Informação Geográfica
OGC – Open Geospatial Consortium
OpenGIS – Open Geodata Interoperability Specification
SFS – Simple Features implementation Specification for SQL
SGBD – Sistemas Gerenciadores de Bancos de Dados
SIG – Sistema de Informação Geográfica
WKB – Well-known Binary Representation for Geometry
WKT – Well-known Text Representation for Geometry
WMS – Web Map Service
10. LISTA DE TABELAS
Tabela 2.1: Tipos de conceitos associados a entidades geográficas.............................28
Tabela 2.2: Tipos de medidas de dados geográficos.....................................................30
Tabela 2.3: Exemplos de WKT.....................................................................................45
Tabela 3.1: Limites máximos do PostgreSQL 8.4..........................................................49
Tabela 3.2: Exemplos de comandos de inserção para dados geográficos.....................51
Tabela 3.3: Operadores Binários Booleanos Direcionais...............................................68
11. LISTA DE FIGURAS
Figura 1.1: Superfícies de projeção. FONTE: IBGE (1998)..........................................19
Figura 1.2: Pedidos de Outorga para a utilização de águas subterrâneas no estado do
Ceará. FONTE: COGERH - Companhia de Gestão dos Recursos Hídricos (2009).....21
Figura 1.3: Arquitetura de sistemas de informação geográfica. FONTE: Câmara (2005)..
22
Figura 1.4: Tipos de Arquitetura. FONTE: CÂMARA (2005).........................................24
Figura 1.5: Atributos em um mesmo servidor. FONTE: FURUKAWA (2007)...............25
Figura 1.6: Atributos em servidores diferentes. FONTE: FURUKAWA (2007)..............25
Figura 2.1: Paradigma dos quatro mundos. Fonte: Adaptado CÂMARA (2005)............26
Figura 2.2: Modelo de representação utilizando espaço relativo. FONTE: CÂMARA
(2005)...........................................................................................................................31
Figura 2.3: Exemplo de representação do espaço absoluto. FONTE: CÂMARA (2005)....
32
Figura 2.4: Exemplo de dados geográficos. FONTE (a) Google Earth; (b) IBGE...........33
Figura 2.5: Tipos de dados geográficos........................................................................34
Figura 2.6: Representação dos dados Geográficos. FONTE: Adaptado BAUER (2008)...
35
Figura 2.7: Exemplo de layer sobrepostos. FONTE: BAUER (2008).............................35
Figura 2.8: Exemplo de shapefile..................................................................................37
Figura 2.9: Hierarquia das geometrias das feições geográficas. FONTE: OPEN
GEOSPATIAL CONSORTIUM (2006).........................................................................39
Figura 2.10: Modelo de classe para geometrias. FONTE: OPEN GEOSPATIAL
CONSORTIUM (2006).................................................................................................39
Figura 2.11: Modelo de “Point”. FONTE: OPEN GEOSPATIAL CONSORTIUM (2006)..
40
Figura 2.12: Modelo de “Curve”. FONTE: OPEN GEOSPATIAL CONSORTIUM (2006).
.....................................................................................................................................40
Figura 2.13: Modelo de “Surface”. FONTE: OPEN GEOSPATIAL CONSORTIUM
(2006)...........................................................................................................................41
Figura 2.14: Exemplo de Disjoint. A geometria “A” é espacialmente separada da
geometria “B”................................................................................................................41
Figura 2.15: Exemplo do relacionamento “touches”. FONTE: OPEN GEOPATIAL
12. 10
CONSORTIUM (2006).................................................................................................42
Figura 2.16: Exemplo do relacionamento “crosses”. FONTE: OPEN GEOPATIAL
CONSORTIUM (2006).................................................................................................42
Figura 2.17: Exemplo do relacionamento “contains”. FONTE: OPEN GEOPATIAL
CONSORTIUM (2006).................................................................................................43
Figura 2.18: Exemplo do relacionamento “overlaps”. FONTE: OPEN GEOPATIAL
CONSORTIUM (2006).................................................................................................43
Figura 2.19: Códigos Inteiros para tipos geométricos. FONTE: OPEN GEOSPATIAL
CONSORTIUM (2006).................................................................................................44
Figura 2.20: Exemplo de WKB. FONTE: OPEN GEOSPATIAL CONSOSRTIUM
(2006)...........................................................................................................................45
Figura 3.1: Tabelas de sistema do Postgis...................................................................50
Figura 3.2: Preparação dos arquivos para conversão....................................................54
Figura 3.3: Selecionando banco para receber a nova tabela..........................................55
Figura 3.4: Executando importação...............................................................................56
Figura 3.5: Exemplo de Retângulo envolvente. FONTE:
<http://150.164.29.11/mapserver-intro/img/exercicio01_extent.png>.............................57
Figura 3.6: Uma Árvore R. FONTE: Adaptado de informações fornecidas pela
Companhia de Gestão dos Recursos Hídricos - COGERH..........................................58
Figura 3.7: Operação unária booleana. O município de Fortaleza é convexo?...............60
Figura 3.8: Princípio básico para a criação de buffer. FONTE CÂMARA (2005)...........62
Figura 3.9: Exemplo de Buffer Zone ou Mapa de Distância...........................................63
Figura 3.10: Exemplo da função ConvexHull.................................................................64
Figura 3.11: Exemplo da função INTERSECT. FONTE: COGERH..............................65
Figura 3.12: Municípios de Fortaleza e Maranguape são espacialmente separados.
FONTE: COGERH.......................................................................................................66
Figura 3.13: Geometria B contida na geometria A sem tocá-la......................................67
Figura 3.14: Exemplo de relacionamento Binário Booleano Direcional. Fortaleza ao norte
de Pacatuba. FONTE: COGERH.................................................................................67
Figura 3.15: Exemplo de DIFFERENCE. FONTE: COGERH.......................................70
Figura 4.1: Adicionando camada vetorial a partir de um shapefile.................................74
Figura 4.2: Selecionando o shapefile.............................................................................75
Figura 4.3: Visualização dos dados geográficos no Quantum GIS................................75
13. 11
Figura 4.4: Adicionando camada vetorial a partir do Postgis..........................................76
Figura 4.5: Escolha ou criação de uma conexão com o Postgis....................................76
Figura 4.6: Configuração de conexão com o Postgis.....................................................77
Figura 4.7: Feições geográficas existentes no banco de dados com seus respectivos
tipos..............................................................................................................................78
Figura 4.8: Interface i3Geo...........................................................................................79
Figura 4.9: Interface principal do gvSIG mobile. FONTE: CONSELLERIA DE
INFRAESTRUCTURAS Y TRANSPORTE (2008).......................................................82
Figura 4.10: Visualizando shapefile no gvSIG mobile. FONTE: CONSELLERIA DE
INFRAESTRUCTURAS Y TRANSPORTE (2008).......................................................83
14. SUMÁRIO
INTRODUÇÃO........................................................................................................13
1 INFORMAÇÃO GEOGRÁFICA...........................................................................16
1.1 Noções de Cartografia...................................................................................16
1.1.1 Formas de coleta da informação geográfica...........................................17
1.1.2 Sistemas de Projeções Cartográficas.....................................................18
1.2 A informação geográfica ou espacial.............................................................20
1.2.1 Aplicações da informação geográfica......................................................20
1.3 Sistemas de Informação Geográfica.............................................................22
1.3.1 Arquitetura de Integração entre SIG e SGBD..........................................23
2 REPRESENTAÇÃO COMPUTACIONAL DA INFORMAÇÃO GEOGRÁFICA. . .26
2.1.1 Universo Ontológico...............................................................................27
2.1.2 Universo Formal.....................................................................................28
2.1.3 Universo Estrutural................................................................................33
2.1.4 Universo de Implementação...................................................................36
2.2 Padrões para representação da Informação Geográfica.................................36
2.2.1 ESRI Shapefile.......................................................................................36
2.2.2 Padrão SFS............................................................................................38
3 ARMAZENAMENTO DA INFORMAÇÃO GEOGRÁFICA...................................47
3.1 Banco de Dados Espaciais............................................................................47
3.2 Postgis..........................................................................................................48
3.2.1 PostgreSQL...........................................................................................48
3.2.2 Tabelas do Sistema...............................................................................50
3.2.3 Tipos de Dados......................................................................................51
3.2.4 Criando Banco de Dados Espaciais.......................................................52
3.2.5 Convertendo ESRI Shapefile para SFS..................................................53
3.2.6 Índices...................................................................................................56
3.2.7 Operações e consultas sobre a informação geográfica..........................60
4 VISUALIZAÇÃO DE DADOS GEOGRÁFICOS...................................................71
4.1 Software Livre................................................................................................71
4.1.1 Licenças.................................................................................................72
4.2 Softwares Livres para geoprocessamento.....................................................73
4.2.1 Ambiente Desktop..................................................................................73
4.2.2 Ambiente WEB......................................................................................79
4.2.3 Ambiente Mobile.....................................................................................81
CONCLUSÃO..........................................................................................................84
REFERÊNCIAS BIBLIOGRÁFICAS........................................................................86
15. 13
INTRODUÇÃO
Centralizar as Bases de Dados tem sido um novo paradigma das empresas.
De Acordo com JOHANSSON (2009) conceitos como “necessidade de se fazer o
tratamento de dados de maneira local” e “informação é poder” passaram a ser
encarados sob outras perspectivas como "vantagens do tratamento de dados
centralizados em uma única base de dados" e o “que fazer com a informação adquirida
é poder”.
Mas depois de centralizadas as informações, veio o problema de como
compartilha-las? Como acessá-las remotamente dentro de uma organização ou fora
dela? Para a solução à esses problemas, a internet mostra-se bastante atraente. De
acordo com JOHANSSON(2009) “a Internet, obteve um grande salto tecnológico,
principalmente no que tange ao transporte e integração de mídias dos mais variados
tipos e o grau de interatividade com o usuário.”
No caso das Informações geográficas, existem diversas ferramentas
proprietárias para tal propósito como o ORACLE Spatial, ArcGIS e o ArcIMS por
exemplo, mas essas ferramentas ainda possuem um elevado custo. Para UCHOA
(2004), a evolução tecnológica tem exigido crescentes investimentos na área de
16. 14
Tecnologia da Informação (TI), resultando na aquisição contínua de sistemas
proprietários cada vez mais onerosos.
Ainda de acordo com UCHOA (2004), na área de geoprocessamento, o
elevado valor de licenças para construção de uma infraestrutura integrada inviabiliza a
maioria dos projetos em inúmeras empresas, principalmente as entidades públicas que
são as principais usuárias dos produtos cartográficos e as que mais sofrem com o
modelo de negócios das empresas de soluções proprietárias.
Mas devido ao envolvimento da comunidade de softwares livres e o
surgimento de padrões para as informações geográficas esses problemas são
resolvidos, além disso passa-se a contar com alternativas livres como o Postgis,
Quantum Gis e i3Geo e o gvSig para a solução do problema da armazenagem,
utilização e disponibilização das informações geográficas.
Ser capaz de trabalhar com informações geográficas no computador mostra-
se importante devido à diversidade de áreas que pode se beneficiar de seu uso. As
informações geográficas pode ser utilizadas desde as áreas da saúde até áreas como a
economia, monitoramento ambiental, órgãos governamentais e militares entre outros.
Este trabalho pretende demonstrar como as informações geográficas podem
passar do mundo real para o ambiente computacional e serem compartilhadas com os
usuários interessados de forma digital utilizando ferramentas livres.
No capítulo 1 é feita uma breve explanação sobre cartografia, que é a ciência
que cuida de representar as informações geográficas para a confecção de mapas e
atlas. Explica o que é a Informação geográfica e introduz o conceito de Sistemas de
Informação Geográfica (SIG).
Em seguida o capítulo 2 mostra como a informação geográfica podem ser
representadas computacionalmente, quais são os passos necessários à essa conversão
e quais os padrões existentes para essa representação computacional.
Já o capítulo 3 demonstra como armazenar computacionalmente as
informações geográficas. Discute sobre do Sistema de Gerenciamento de Banco de
Dados ( SGBD) PostgreSQL, que junto com sua extensão espacial Postgis, fornece o
suporte para o armazenamento e utilização dos dados espaciais.
17. 15
Por fim, o capítulo 4 mostra algumas das ferramentas livres que permitem a
visualização, criação de mapas e disponibilização das informações na rede e na internet.
18. 16
1 INFORMAÇÃO GEOGRÁFICA
Nesse capítulo, é feita uma breve explicação sobre a cartografia, que é o
conjunto de operações científicas, técnicas e artísticas para trabalhar com a informação
geográfica. Discorre também sobre o que é a informação geográfica e como ela pode
ser utilizada por entidades tanto públicas como privadas. Em seguida mostra o que vem
a ser um Sistema de Informação Geográfica (SIG), quais seus principais componentes
e suas arquiteturas de integração com o SGBD.
1.1 Noções de Cartografia
A vontade de representar o espaço em que vive sempre esteve presente na
humanidade. Encontrar uma maneira de substituir o espaço real por um espaço
análogo é o princípio básico da cartografia.
Com a cartografia é possível coletar, documentar e produzir conhecimento
sobre a superfície terrestre. A Associação Cartográfica Internacional (International
Cartographic Association – ICA) estabeleceu em 1966 a definição de cartografia da
19. 17
seguinte forma:
"A Cartografia apresenta-se como o conjunto de estudos e operações
científicas, técnicas e artísticas que, tendo por base os resultados de
observações diretas ou da análise de documentação, se voltam para a
elaboração de mapas, cartas e outras formas de expressão ou
representação de objetos, elementos, fenômenos e ambientes físicos e
sócio-econômicos, bem como a sua utilização."
Este conceito foi posteriormente ratificado pela UNESCO e hoje tornou-se
aceito sem maiores contestações.
O processo cartográfico é multidisciplinar e envolve diversas áreas do
conhecimento desde a coleta dos dados espaciais até a sua representação final.
1.1.1 Formas de coleta da informação geográfica
As informações espaciais ou geográficas podem ser obtidas de basicamente
de duas formas: in loco ou através de sensoriamento remoto.
In loco
A coleta in loco significa que é preciso estar presente fisicamente no local de
onde irá se retirar as informações espaciais. Os processos mais utilizados são a
utilização de equipamentos GPS1 (Global Positioning System) ou a utilização da
topografia convencional.
Sensoriamento remoto
O sensoriamento remoto é a obtenção de informações geográficas sem a
necessidade de estar presente fisicamente no local em questão. Essa coleta geralmente
é feita através de imagens de satélites ou aerofotogrametria.
Segundo IBGE (1998), “entende-se por Sensoriamento Remoto a utilização
conjunta de modernos sensores, equipamentos para processamento e transmissão de
dados, aeronaves, espaçonaves e etc., com o objetivo de estudar o ambiente terrestre
através do registro e da análise das interações entre a radiação eletromagnética e as
substâncias componentes do planeta Terra, em suas mais diversas manifestações”.
1 Sistema eletrônico constituído de uma constelação de satélites. Juntamente com um
equipamento receptor, permitem a localização de qualquer coordenada na superfície terrestre
através de sinais de rádio emitido pelos satélites.
20. 18
1.1.2 Sistemas de Projeções Cartográficas
Basicamente, os sistemas de projeções cartográficas tentam representar
uma superfície curva em um plano. Segundo IBGE (1998) não existe uma solução
perfeita para esse problema. Para a confecção de uma carta, é necessário um método
segundo o qual, cada ponto na superfície terrestre corresponda a um ponto na carta e
vice-versa.
A teoria das projeções estuda os diferentes métodos de projeção, além das
leis de interligação entre os pontos de uma superfície (Terra) com a outra (carta). Mas
pode-se dizer que todas as representações de superfícies curvas em um plano resultam
em distorções ou "rasgos". As diferentes técnicas empregadas na representação da
superfície são aplicadas no sentido de se alcançar resultados que possuam certas
propriedades favoráveis para um propósito específico.
Os sistemas de projeções podem ser classificados quanto a superfície de
projeção basicamente em três tipos: Projeções Planas, Projeções Cônicas e Projeções
Cilíndricas. A Figura 1.1 mostra como as superfícies de projeções podem ser divididas:
21. 19
PLANAS CÔNICAS CILÍNDRICAS
POLAR – plano tangente ao nó NORMAL – eixo do cone EQUATORIAL – eixo do
polo. paralelo ao eixo da terra. cilindro paralelo ao eixo da
Terra.
EQUATORIAL – plano tangente TRANSVERSA – eixo do cone TRANSVERSA – eixo do cilindro
ao equador. perpendicular ao eixo da Terra. perpendicular ao eixo da Terra.
HORIZONTAL – plano tangente HORIZONTAL – eixo do cone HORIZONTAL – eixo do
a um ponto qualquer. cilindro inclinado em relação
inclinado em relação ao eixo da
ao eixo da Terra.
Terra.
Figura 1.1: Superfícies de projeção. FONTE: IBGE (1998).
22. 20
1.2 A informação geográfica ou espacial
Informação geográfica é toda e qualquer informação sobre recursos minerais,
animais, vegetais, eventos sócio-econômicas e ambientais que possuam uma posição
geográfica definida.
Segundo VINHAS (2006) “Dados geograficamente referenciados, ou
simplesmente dados geográficos, são aqueles que possuem uma dimensão espacial, ou
uma localização, diretamente ligada ao mundo geográfico real como as imagens de
satélites de sensoriamento remoto, os dados de inventários cadastrais, os dados
ambientais coletados em campo e os modelos numéricos de terreno”.
Essa informação geográfica é moldada pode ser trabalhada em bancos de
dados especiais, desenvolvidos para suportar esse tipo de dado. Esses sistemas são
denominados de Sistemas de Informação Geográfica2 ou SIG.
1.2.1 Aplicações da informação geográfica
Variadas áreas podem se beneficiar das informações geográficas. Toda área
em que a pergunta “Onde?” for importante justifica o uso de Sistemas de Informação
Geográfica. Na área da saúde por exemplo, segundo CARVALHO (2005), os casos de
desnutrição podem ser melhor analisados com a utilização de Sistemas de SIG para a
melhor tomada decisão de medidas públicas de saúde.
Já para SAMIZAVA (2008), na área de meio-ambiente, “ferramentas
computacionais, como softwares SIG, fornecem suporte para discriminar áreas
potenciais para instalação de aterros sanitários, de maneira mais rápida e eficiente”.
Além disso, os SIGs podem ser utilizados também para gestão dos recursos
hídricos, ao mostrar quantos pontos estão utilizando água subterrânea em cada
município de um estado. A Figura 1.2 mostra um exemplo; A imagem é composta pela
feição (layer3) dos limites municipais do estado do Ceará e com a feição dos pontos
onde usuários fizeram pedido para a utilização de águas subterrâneas no estado do
2 Veja subtítulo 1.3 Sistemas de Informação Geográfica.
3 Também conhecida por "feature" ou feição geográfica, é a forma de representação gráfica da
informação geográfica.
23. 21
Ceará (em amarelo).
Observa-se que há regiões com maior concentração de pedidos que outros e
essa forma de visualização das informações auxilia os gestores no processo decisório
de conceder ou negar novos pedidos de utilização de águas subterrâneas no estado.
Figura 1.2: Pedidos de Outorga para a utilização de águas subterrâneas no estado do Ceará.
FONTE: COGERH - Companhia de Gestão dos Recursos Hídricos (2009)
Com o exposto, pode-se perceber o quão importante pode ser para entidades
governamentais ou privadas a utilização de Sistemas de Informação Geográfica no
auxílio ao processo decisório.
24. 22
1.3 Sistemas de Informação Geográfica
Os Sistemas de Informações Geográficas ou SIG, são sistemas especiais
que possibilitam o trabalho com informações espaciais. Com eles é possível armazenar,
consultar e visualizar as informações geográficas. Para CÂMARA (2005) a principal
diferença de um SIG para um sistema de informação convencional é sua capacidade de
armazenar tanto os atributos descritivos como as geometrias dos diferentes tipos de
dados geográficos.
De acordo com TAMBASCIA (2005), a arquitetura de um SIG é formada por
vários componentes como sistema de armazenamento de dados espaciais, servidores
de mapas e dados além de aplicações cliente e Web para visualização e manipulação
dos dados. A Figura 1.3 mostra os componentes básicos de um SIG.
Figura 1.3: Arquitetura de sistemas de informação geográfica.
FONTE: Câmara (2005).
No nível mais alto fica a interface com o usuário, essa camada define como o
sistema será controlado, pode ser baseada em um ambiente "desktop", lembrando uma
25. 23
mesa de trabalho como também estar baseada em um ambiente de navegação da
internet.
Na camada intermediária do SIG tem-se mecanismos de processamento de
dados espaciais que incluem a entrada e integração de dados, a consulta e análise
espacial e a visualização e plotagem das informações. A entrada de dados possui os
mecanismos de conversão de dados. Já a parte de análise incluem-se os algoritmos de
análise espacial com as operações de topologia, álgebra de mapas, estatística espacial,
modelagem numérica de terreno e processamento de imagens. Os serviços de
visualização e plotagem devem oferecer suporte adequado para a apresentação gráfica
dos dados pesquisados.
Por fim na camada mais baixa do SIG, há os Bancos de Dados Geográficos 4.
De acordo com CÂMARA (2005) "Cada sistema, em função de seus objetivos e
necessidades, implementa estes componentes de forma distinta, mas todos os
subsistemas citados devem estar presentes num SIG".
1.3.1 Arquitetura de Integração entre SIG e SGBD
CÂMARA (2005) define a existência basicamente de dois modos de
integrações entre o SIG e os SGBD5: A "Arquitetura Dual" e a "Arquitetura Integrada".
Na Arquitetura Dual, Figura 1.4(a), as Informações Geográficas são
armazenadas separadamente, os atributos alfanuméricos são armazenados em um
SGBD e os atributos espaciais são armazenada em arquivos com formato proprietário,
geralmente no formato ESRI Shapefile6.
Os principais problemas desse tipo de arquitetura, são a dificuldade no
controle e manipulação dos atributos espaciais, além da dificuldade em manter a
integridade entre esses atributos os atributos alfanuméricos.
Além disso, nessa arquitetura, os elementos espaciais não podem ser
4 Veja capítulo 3 subtítulo 3.1 Banco de Dados Espaciais
5 Programas responsáveis pelo gerenciamento de uma base de dados. Seu objetivo é retirar das
aplicações clientes a responsabilidade pelo gerenciamento, acesso, manipulação e organização
dos dados. O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar
ou consultar dados. Em bancos de dados relacionais, a interface é constituída pelas APIs ou
drivers do SGBD, que executam comandos na linguagem SQL.
6 Veja capítulo 3 subtítulo 3.2.5 Convertendo ESRI Shapefile para SFS
26. 24
processados pelo SGBD, obrigando que seu processamento seja feito através de outros
aplicativos. Além disso, pode haver obstáculos na interoperabilidade, caso o formato dos
atributos espaciais seja proprietário.
SGBD
Arquivos SGBD
(a) Arquitetura Dual (b) Arquitetura Integrada
Figura 1.4: Tipos de Arquitetura. FONTE: CÂMARA (2005).
Já a Arquitetura Integrada, vista na Figura 1.4 (b), consiste em armazenar
todos os dados no SGBD. O que possibilita a utilização dos recursos do SGBD para a
manipulação dos atributos espaciais com linguagem própria de consulta, além de
usufruir todos os benefícios do SGBD como, controle de transações, integridade
referencial, concorrência entre outros.
A Arquitetura Integrada ainda pode ser utilizada de duas formas, uma onde
todos os atributos estão armazenados em um mesmo servidor, como visto na Figura
1.5. Nessa Arquitetura tanto os atributos geográficos como os atributos alfanuméricos
ficam armazenados em um mesmo servidor.
27. 25
Figura 1.5: Atributos em um mesmo servidor. FONTE: FURUKAWA (2007)
Já na segunda forma, os atributos geográficos e alfanuméricos ficam
armazenados em servidores diferentes, como visto na Figura 1.6. Nesse modelo, a
feição geográfica é construída através de views7. Esse modelo é útil quando já existirem
sistemas para o gerenciamento dos atributos alfanuméricos e se deseja adicionar ou
criar novos sistemas com a informação geográfica.
Servidor Geo Servidor do
Cliente
Figura 1.6: Atributos em servidores diferentes. FONTE: FURUKAWA (2007).
Nesse primeiro capítulo, foi oferecida uma noção sobre o que é a Cartografia
e seus métodos de obtenção das informações geográficas. Foi apresentado o que é a
informação geográfica e sua importância para as mais variaras áreas e definiu-se o
conceito de Sistema de Informação Geográfica e discutiu-se sobre as suas principais
arquiteturas de integração com bancos de dados.
7 Espécie de tabela virtual, criada a partir de um ou mais tabelas do banco de dados.
28. 26
2 REPRESENTAÇÃO COMPUTACIONAL DA INFORMAÇÃO
GEOGRÁFICA
Nesse capítulo discute-se os passos necessários para representar os dados
geográficos do mundo real em informação na forma digital. Mostra como esses dados
são classificados para que possam ser trabalhados computacionalmente e os padrões
existentes para isso.
CÂMARA (2005) propõe o paradigma dos quatro mundos (Figura 2.1), que
tratam de dos quatro passos para a a representação do mundo real no ambiente
computacional . Esse paradigma mostra que para a transposição da realidade para o
ambiente computacional, é necessário uma série complexa de mediações.
Universo Universo Universo Universo
Ontológico Formal Estrutural Implement.
Figura 2.1: Paradigma dos quatro mundos. Fonte: Adaptado CÂMARA
(2005)
29. 27
2.1.1 Universo Ontológico
Ontologia, de acordo com COELHO (2007), é uma disciplina filosófica que
lida com a natureza e com a organização da realidade. Para a Informação geográfica, o
universo ontológico é o passo de criar ontologias, definir os conceitos, as entidades a
serem representados no ambiente computacional.
De acordo com CÂMARA (2005), nesse passo inicial, são escolhidas as
entidades a serem representadas no sistema e os conceitos que as envolvem. Esses
conceitos compartilhados e aceitos pela comunidade formam uma "Ontologia de
aplicação" .
Na área de geoprocessamento, pode-se chama-las de geo-ontologia e possui
dois tipos básicos de conceitos: Os conceitos físicos e os conceitos sociais.
Os conceitos físicos correspondem a fenômenos físicos presentes no mundo
real. Esse conceito ainda pode ser subdividido em: Conceitos para entidade
individualizáveis, e conceitos para entidades com variação contínua no espaço.
Esses conceitos físicos para entidade individualizáveis estão relacionados
com entidades que possuem um limite bem definido a partir de diferenciações
qualitativas ou descontinuidade da natureza. A existência dessas entidades decorrem da
nossa necessidade de nomear os elementos do mundo natural, como por exemplo os
conceitos de montanhas, serras, vales, rios e lagos.
Já os conceitos físicos associados a entidades com variação contínua no
espaço, estão associados a fenômenos naturais que não possuem a princípio uma
fronteira. Exemplos desse tipo são: Temperatura, declividade, altimetria e poluição.
Além dos conceitos físicos, existem os conceitos sociais, que representam
entidades sociais e institucionais criadas pelo ser humano e podem ser subdivididos em
conceitos sociais para entidades individualizáveis e conceitos sociais associados a
entidades com variação contínua no espaço.
Os conceitos sociais para entidades individualizáveis, descrevem entidades
criadas por ações humanas ou através leis. Elas possuem fronteiras bem definidas e
possuem uma identidade única. Sua existência depende geralmente de um registro
legal. Exemplos dessas entidades são: Municípios, lotes, reservas indígenas e países.
30. 28
Já os conceitos sociais para entidades com variação contínua no espaço,
associam-se a convenções sociais, como por exemplo o conceito de pobreza, que está
socialmente definido e ocorre no espaço de forma ininterrupta. Outros exemplos desse
tipo de conceito são: desenvolvimento humano, riqueza, segregação urbana e exclusão
social.
A Tabela 2.1, mostra um resumo desses conceitos ontológicos.
Tabela 2.1: Tipos de conceitos associados a entidades geográficas.
Realidade Física Realidade Social
Entidades individualizáveis Limites bem definidos no Limites definidos por leis.
mundo real. Ex.: Montanha. Ex.: Reservas indígenas.
Entidades com variação Limites variáveis no mundo Limites Variáveis nas
contínua no espaço real. Ex.: Poluição. convenções sociais. Ex:
Pobreza.
FONTE: Adaptado de CÂMARA (2005).
2.1.2 Universo Formal
Esse universo representa um passo intermediário entre os conceitos do
mundo ontológico e as estruturas de dados e algoritmos computacionais, CÂMARA
(2005). Pois devido os computadores trabalharem com estruturas matemáticas, a
passagem dos conceitos informais das ontologias, para as estruturas de dados
poderiam resultar em erros ou inconsistências.
Aqui, além de definir um conjunto de unidades mais lógicas e mais
abrangentes possíveis, ainda se define como serão associados valores aos diferentes
conceitos, ou seja, como medir o mundo real. Desta maneira nesse universo, toma-se
as seguintes decisões: Como medir o espaço geográfico e, qual conceito adotar para
representá-lo.
31. 29
Teoria das Medidas
Para CÂMARA (2005), “o processo de medida consiste em associar
números ou símbolos a diferentes ocorrências de um mesmo atributo, para que a
relação dos números ou símbolos, reflita as relações entre as ocorrências mensuradas”.
A principal referência para escalas de medidas foi feito por STEVENS (1946) que
propões quatro escalas de mensuração: nominal, ordinal, intervalo e razão.
Nominal: Nessa escala os objetos são divididos em classes distintas e sem
ordem inerente. As possíveis relações entre os valores são: Igualdade (x = y) e diferença
(x ≠ y ). Exemplos: zona industrial, floresta, área de preservação.
Ordinal: Introduz o conceito de ordenação, caracterizando as entidades em
classes distintas mas que possuem algum tipo de ordenação. As operações possíveis
entre os valores são: Igualdade (x = y), diferença (x ≠ y ), maior que (x > y) e menor que
(x < y). Um exemplo seria a fertilidade do solo: 1 – ruim, 2 – bom, 3-ótimo.
Intervalo: Baseada em números reais, é caracterizada por possuir um ponto
zero de referência arbitrário, admitindo valores entre [−∞ ,∞] e uma distância
proporcional entre os intervalos. Por possuir um zero arbitrário, não permite estimativas
de proporções. Essa escala admite relações de soma e subtração mas não é
recomendado operações de multiplicação e divisão. Exemplo de escala de intervalo pode
ser a altimetria, onde se toma por definição, como ponto zero o nível do mar, onde a
altitude pode assumir valores positivos e negativos. Podendo-se fazer relações do tipo,
Fortaleza possui uma altitude “x” metros a menos que a altitude de Brasília.
Razão: Também baseada em números reais, não possui um ponto zero
arbitrário. Seu zero é escolhido de acordo com alguma condição natural, o que limita sua
faixa de intervalos entre [0,∞ ] . O valor zero nessa escala representa a ausência
daquilo que está sendo medido. Exemplo dessa escala é a taxa de natalidade de uma
região, não sendo permitido valores negativos para essa medida. Essa medida, permite
comparações de proporções como, a taxa de natalidade no estado do Amapá é “y” vezes
maior que a do estado do Acre.
A Tabela 2.2, faz um resumo dos tipos de escala de medida proposto por
STVENS (1946):
32. 30
Tabela 2.2: Tipos de medidas de dados geográficos.
Escala Operações Possíveis Exemplos
básicas estatísticas
Nominal Determinação de Número de Tipos de solo, uso do solo,
igualdade casos, vegetação
comparação
Ordinal Determinação de Mediana, Aptidão de uso, Classes de
maior ou menor mínimo, máximo, declividade
porcentagens
Intervalo Determinação da Diferença, Temperatura, altimetria
igualdade de soma, ranking,
intervalos ou
diferenças
Razão Determinação da Coeficiente de Renda, população, taxa de óbitos
igualdade de variação
proporções.
FONTE: adaptado de STEVENS (1946)
Teoria da representação
De acordo com CÂMARA (2005), uma das escolhas que devem ser feita
nesse universo é como as entidades serão representadas. As entidades geográficas
podem ser representadas no espaço relativo, ou no espaço absoluto.
Espaço Relativo: Nesse modelo de representação, preocupa-se apenas
com o posicionamento relativo das entidades geográficas, e é indicado quando deseja-
se mapear fluxo e conexões entre as entidades. Esse modelo é melhor representado
utilizando-se grafos, e foge do escopo desse trabalho, que dará ênfase aos atributos no
espaço absoluto modelados de forma vetorial que serão vistos a seguir. A Figura 2.2
mostra um exemplo de modelagem utilizando espaço relativo, exibindo as relações de
vizinhanças entre os distritos de São Paulo através de um grafo, note que as fronteiras
33. 31
foram adicionadas apenas para melhorar a legibilidade da figura.
Figura 2.2: Modelo de representação utilizando espaço relativo. FONTE: CÂMARA (2005).
Espaço absoluto: Nessa forma de representação, cada entidade geográfica
é representada no ambiente computacional por sua localização no mundo real, de forma
que as coordenadas de suas fronteiras correspondam as fronteiras reais da entidade
geográfica. Esse tipo de representação é útil quando necessita-se saber o valor de
determinado fenômeno em todos os pontos da região. A Figura 2.3 ilustra um exemplo
de representação de entidades geográficas utilizando o espaço absoluto, exibindo as
fronteiras de cada distrito do município de São Paulo.
34. 32
Figura 2.3: Exemplo de representação do espaço absoluto. FONTE: CÂMARA (2005).
Nesse modelo de representação ainda se tem outra escolha a fazer, se os
dados vão ser representados de forma matricial ou de forma vetorial. CÂMARA (2005)
em seu trabalho, os chamam de geo-campos (dados matriciais) e geo-objetos (dados
vetoriais), esse trabalho segue a definição de SILBERCHARTCZ (2006), que os
designa apenas como dados vetoriais e dados matriciais.
Dados Matriciais: Nesse modelo as entidades geográficas são representadas
na forma matricial, onde cada ponto possui suas informações próprias por exemplo na
Figura 2.4 (a), que mostra um trecho da cidade de Fortaleza – CE, cada ponto possui
um valor associado que no caso é o valor da reflectância do solo medido pelo sensor
óptico do satélite. Os SGBDs podem armazenar esses dados utilizando o tipo BLOB8,
mas não permitem tratamentos especiais para esses dados geográficos como detecção
de bordas por exemplo, e esse trabalho não se aprofundará nesse assunto.
8 Binary Large Object: Coleção de dados binários armazenados como uma entidade única.
35. 33
(a) Dados Matriciais (b) Dados Vetoriais
Figura 2.4: Exemplo de dados geográficos. FONTE (a) Google Earth; (b) IBGE.
Dados Vetoriais: Aqui a informação geográfica é armazenada de forma
vetorial, na Figura 2.4 (b) observa-se um conjunto de polígonos, representando os
municípios do Brasil, onde cada polígono representa vetorialmente a fronteira legal de
cada município brasileiro. Esse tipo de representação é indicada quando o papel da
fronteira é importante para a análise espacial.
2.1.3 Universo Estrutural
Segundo CÂMARA (2005), nesse universo escolhe-se quais as estruturas
de dados serão utilizadas para representar a informação geográfica. As estruturas de
dados vetoriais, são divididas basicamente em três tipos: Pontos [Figura 2.5 (a)], Linhas
[Figura 2.5 (b)] e Polígonos[(Figura 2.5 (c)].
36. 34
(a) Pontos (b) Linhas (c) Polígonos
Figura 2.5: Tipos de dados geográficos
Pontos: É um par ordenado (x,y) com coordenadas espaciais. Pode ser
utilizado para identificar localização ou eventos no espaço geográfico, como por exemplo
casos de dengue, localização de crimes, localização de espécimes vegetais, casos de
calazar.
Linhas: Representam estruturas unidimensionais, e possuem uma variedade
de usos. Podem representar ruas, rios (dependendo da escala utilizada), e podem
também estar associadas a representação de espaço relativo, simbolizando o grafo.
Polígonos: Área delimitada por uma ou mais linhas conectadas de modo que
o último nó de uma linha poligonal seja idêntico ao nó da linha seguinte. Note que os
limites do polígono dividem o plano em duas regiões: interior e exterior. Esse tipo de
estrutura é muito utilizada para representar entidades individuais como açudes, lotes,
municípios entre outros.
Para cada uma dessas entidades podem ser atribuídos dados provindos de
censo ou estatísticas sobre saúde entre outros.
De acordo com BAUER (2008), “a informação espacial vetorial é apenas
mais um tipo de dado, como os tipos Integer, Boolean e Date. Ela é um tipo especial de
dado que pode ser armazenados em SGBDs”. Muitos dos SGBD atuais já suporta
armazenamento de dados espaciais entre eles tem-se o PostgreSQL com sua extensão
Postgis, Oracle com sua extensão Oracle Spatial e MySQL com a Spatial Extensions.
Esse trabalho trata apenas do Postgis.
A figura abaixo mostra a representação de uma feição cartográfica também
37. 35
chamada de plano de informação ou layer [Figura 2.6 (a)], que é a representação
gráfica do objeto no mundo real e uma representação lúdica de como essa informação é
armazenada numa tabela do SGBD [Figura 2.6 (b)].
Cod Nome
53 Santa Candida
54 Tingui
55 Atuba
55 Atuba
41 Bacacheri
34 Boa Vista
(b) Armazenamento na tabela do SGBD.
48 Bacacheri
36 Bairro Alto
(a) Feição cartográfica
Figura 2.6: Representação dos dados Geográficos. FONTE: Adapta do BAUER (2008).
Os layers, por analogia, podem ser considerados como transparências, que
quando sobrepostas formam uma imagem final. A Figura 2.7 mostra um exemplo de
layers sobrepostos.
Tema: Bairro Tema: Farol do Saber Tema: Ciclovia
Figura 2.7: Exemplo de layer sobrepostos. FONTE: BAUER (2008).
38. 36
2.1.4 Universo de Implementação
Nesse universo, segundo CÂMARA (2005), tomam-se as decisões
concretas de programação, essas decisões devem levar em conta a natureza do
sistema a ser criado. É nessa fase que se tomam as decisões sobre quais os algoritmos
serão utilizados para o tratamento de dados geográficos, em qual Sistema Gerenciador
de Banco de Dados (SGBD) essas informações espaciais serão armazenadas, os
aspectos de indexação dos dados espaciais, a otimização das consultas sobre esses
dados, a linguagem que será utilizada para a programação e as bibliotecas utilizadas
para se trabalhar com dados geográficos e o desempenho que o hardware deverá
possuir.
2.2 Padrões para representação da Informação Geográfica
Existem diversos padrões para a representação computacional da informação
geográfica. Esse trabalho fala de um padrão proprietário, denominado ESRI Shapefile,
que devido ao seu pioneirismo tornou-se um dos padrões mais utilizados e fala também
do padrão de representação livre OpenGIS para SQL, chamado de SFS (Simple
Features Interface Standard for SQL), que padroniza a representação, armazenamento
em SGBD e operações sobre dados geográficos.
2.2.1 ESRI Shapefile
ESRI Shapefile, ou simplesmente shapefile, é um padrão proprietário para
representação de dados geográficos vetoriais. Criado pela ESRI9, é um formato muito
utilizado por diversos SIGs. Segundo a ESRI SHAPEFILE TECHNICAL
DESCRIPTION (1998), um shapefile é um formato vetorial que guarda localizações
geométricas e informação sobre atributos associados.
Segundo FARIA (2006), "as shapefiles lidam com entidades geográficas
singulares. As entidades geográficas suportadas incluem pontos, linhas e áreas (sendo
9 Empresa desenvolvedora de software e serviços de SIG. Sede na Califórnia.
39. 37
estas representadas por polígonos fechados). A cada entidade está associado um
conjunto de atributos guardados no formato dBASE10".
Um shapefile é composto na realidade por no mínimo três arquivos
obrigatórios com as seguintes extensões:
• .shp: arquivo que guarda as os atributos geométricos.
• .shx: arquivo que guarda os índices dos atributos geométricos, ligando-os com
os atributos alfanuméricos.
• .dbf: arquivo dBASE que guarda as informações sobre os atributos das
alfanuméricos relacionados com os atributos geométricos.
Além dessas extensões obrigatórias, ainda podem existir arquivos com
outras extensões como:
• .sbn ou .sbx: arquivo que guarda o índice espacial das entidades.
• .fbn ou .fbx: arquivo que guarda o índice espacial dos atributos para shapefiles
apenas de leitura.
• .ain ou .aih: guarda o índice do atributo dos campos ativos de uma tabela ou
uma tabela de atributos alfanuméricos.
• .prj: guarda a informação sobre o sistema de coordenadas.
• .shp.xml: metadados da shapefile.
A Figura 2.8 mostra um exemplo de shapefile, composta pelos três arquivos
obrigatórios., observa-se que é necessário todos os arquivos possuírem o mesmo nome,
mudando-se apenas sua extensão.
Figura 2.8: Exemplo de shapefile.
10 Um tipo de SGBD, cujo os arquivos ".dbf" ainda são muito utilizados por outros aplicativos.
40. 38
As especificações de um shapefile estão descrita no ESRI SHAPEFILE
TECHNICAL DESCRIPTION (1998), o que possibilita que diversos aplicativos, tanto
proprietários como livres, possam ler e escrever esse formato de arquivo.
2.2.2 Padrão SFS
Com o intuito de criar padrões de interoperabilidade entre geo-sistemas, o
Open Geospatial Consortium11 (OGC) criou o padrão SFS (Simple Features Interface
Standard for SQL), que fornece uma interface comum e bem definida para aplicativos
armazenarem e acessarem dados de feições geográficas em SGBD relacional ou
objeto-relacional, de modo que os dados possam ser usados para suporte a outras
aplicações através de um modelo de feição comum, dados armazenados e interfaces de
acesso à informação.
As Simple Features são feições geográficas descritas usando dados
vetoriais como pontos linhas e polígonos. Essa especificação possui atualmente duas
versões, a 1.1.0 e a 1.2.0, e foi dividida em duas partes: “Common Architecture”, e
“SQL Option”.
A primeira define o modelo geométrico que deve ser adotado e os operadores
e relações espaciais. A SFS parte 1 especifica a hierarquia para representação de
geometrias das feições geográficas, como visto na Figura 2.9 e um modelo de classes
para representar as geometrias, como na Figura 2.10.
11 Consórcio internacional com 386 empresas, agências governamentais e universidades que
participam de um processo de consenso para desenvolver padrões de interfaces que facilitem a
interoperabilidade entre sistemas que utilizem informação geo-espacial.
41. 39
Figura 2.9: Hierarquia das geometrias das feições geográficas. FONTE: OPEN GEOSPATIAL
CONSORTIUM (2006).
Figura 2.10: Modelo de classe para geometrias. FONTE: OPEN GEOSPATIAL CONSORTIUM
(2006)
42. 40
A seguir é mostrada a descrição de algumas geometrias propostas nessa
especificação.
Point: Definido como um objeto geométrico 0-dimensional, representa um
local único no espaço coordenado. Um ponto tem uma coordenada X e uma coordenada
Y e caso seja solicitado pelo Sistema de Referência Espacial associado a esse ponto,
pode-se ter também os valores da coordenada Z e um valor associado M. A Figura 2.11
mostra o modelo proposto para “Point” de acordo com a SFS.
Figura 2.11: Modelo de “Point”. FONTE: OPEN GEOSPATIAL CONSORTIUM (2006).
Curve: Definida como um objeto geométrico 1-dimensional, normalmente
armazenados como uma sequência de pontos. A especificação SFS define apenas uma
subclasse da Curve, LineString, que usa a interpolação linear entre pontos. A Figura
2.12 mostra o modelo de uma Curve.
Figura 2.12: Modelo de “Curve”. FONTE: OPEN GEOSPATIAL CONSORTIUM (2006).
43. 41
Surface: Definido como um objeto 2-dimensional. Sua forma simples possui
um limite exterior e zero ou mais limites interiores. A SFS especifica duas subclasses
para esse modelo a classe “Polygon” e a classe “PolyhedralSurface”, de acordo com a
Figura 2.13.
Figura 2.13: Modelo de “Surface”. FONTE: OPEN GEOSPATIAL CONSORTIUM (2006).
Essa parte da especificação também define os principais relacionamentos
entre entidades geográficas. Abaixo alguns exemplos desses relacionamentos.
Equals: Retorna verdadeiro caso uma geometria “A” seja espacialmente igual
a uma geometria “B”. E pode ser aplicado a qualquer combinação de tipos de
geometrias.
Disjoint: Retorno verdadeiro caso uma geometria “A” esteja espacialmente
disjuntas, ou seja, separadas, de uma geometria “B”. Também pode ser aplicado a
qualquer combinação de tipos de geometrias.
A
B
Figura 2.14: Exemplo de Disjoint. A geometria “A” é espacialmente separada da
geometria “B”.
44. 42
Touches: Retorna verdadeiro caso uma geometria “A” toque em uma
geometria “B”. Esse relacionamento pode ocorrer em pares de geometrias do tipo
Área/Área, Linha/Linha, Linha/Área, Ponto/Área e Ponto/Linha. A Figura 2.15 mostra
exemplos desse relacionamento.
Linha/Área Ponto/Área Ponto/Linha
Área/Área Linha/Linha
Figura 2.15: Exemplo do relacionamento “touches”. FONTE: OPEN GEOPATIAL
CONSORTIUM (2006).
Crosses: Retorna verdadeiro caso uma geometria A cruze uma geometria B.
Pode se aplicado em pares de geometrias do tipo Linha/Linha e Linha/Área. A Figura
2.16 demonstra exemplos desse relacionamento.
Linha/Área Linha/Linha
Figura 2.16: Exemplo do relacionamento “crosses”. FONTE: OPEN GEOPATIAL CONSORTIUM
(2006).
45. 43
Contains: Retorna verdadeiro se uma geometria “A” contém uma geometria
“B”. Pode ser aplicado a qualquer combinação de tipos de geometrias. A Figura 2.17
mostra exemplos desse relacionamento.
Área/Área Área/Ponto
Linha/Ponto Área/Linha
Figura 2.17: Exemplo do relacionamento “contains”. FONTE: OPEN GEOPATIAL CONSORTIUM
(2006).
Overlaps: Retorna verdadeiro se uma geometria “A” sobrepões uma
geometria “B”. Pode ser aplicado a pares de geometrias do tipo Linha/Linha e Área/Área.
A Figura 2.18 apresenta exemplos dessa relação entre geometrias.
Área/Área
Linha/Linha
Figura 2.18: Exemplo do relacionamento “overlaps”. FONTE: OPEN GEOPATIAL CONSORTIUM
(2006).
O SFS propõe também modelos gramaticais de representação dos dados
46. 44
geográficos, o WKB (Well-known Binary Representation for Geometry), e o WKT
(Well-known Text Representation for Geometry). A seguir, mais detalhes de cada uma
dessas formas de representação dos dados geográficos.
WKB: Provê uma representação portável de objetos geométricos como uma
cadeia contínua de bytes, permitindo uma troca mais simples desses entre o cliente e a
aplicação. No Postgis a informação sobre os atributos geográficos são armazenadas
dessa maneira.
A Figura 2.19 mostra os principais códigos inteiros comuns para os tipos
geométricos.
Figura 2.19: Códigos Inteiros para tipos geométricos. FONTE: OPEN GEOSPATIAL
CONSORTIUM (2006).
E na Figura 2.20, tem-se um esquema de como é representado a
informação no formato WKB. A figura especifica que o objeto espacial está
representado no formato NDR12 (B=1), que é do tipo “Polygon” (T=3) e que é formado
por dois anéis (NR=2) cada um com 3 pontos (NP=3).
12 Tipo de representação para números “Unsigned Integer” e “Double”.
47. 45
Figura 2.20: Exemplo de WKB. FONTE: OPEN GEOSPATIAL CONSOSRTIUM (2006).
WKT: Forma textual de representação dos dados das entidades geográficas.
A Tabela 2.3 mostra exemplo dos principais tipos.
Tabela 2.3: Exemplos de WKT.
Tipo de geometria Representação textual Comentário
Point Point (10 10) Um “Point”
LineString LineString ( 10 10, 20 20, 30 40) Uma “LineString” com 3
pontos
Polygon Polygon Um “Polygon” com 1 anel
((10 10, 10 20, 20 20, 20 15, 10 10)) externo e zero anéis internos
Multipoint MultiPoint ((10 10), (20 20)) Um “MultiPoint” com 2
pontos
MultiLineString MultiLineString Uma “MultiLineString” com 2
( “Linestrings”.
(10 10, 20 20), (15 15, 30 15)
)
MultiPolygon MultiPolygon Uma “MultiPolygon” com 2
( polígonos
((10 10, 10 20, 20 20, 20 15, 10 10)),
((60 60, 70 70, 80 60, 60 60 ))
)
48. 46
GeomCollection GeometryCollection Uma “GeometryCollection”
( composta por 2 valores do
POINT (10 10), tipo “Point” e um valor do
POINT (30 30), tipo “LineString”
LINESTRING (15 15, 20 20)
)
PolyhedralSurface PolyhedralSurface Z Um cubo poliédrico,
( com um canto na origem e
((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)), com o canto oposto em (1, 1,
((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), 1)
((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)),
((0 0 1, 1 0 1, 1 1 1, 0 1 1. 0 0 1))
)
Tin Tin Z ( Um tetraedro (4
((0 0 0, 0 0 1, 0 1 0, 0 0 0)), faces triangulares),
((0 0 0, 0 1 0, 1 0 0, 0 0 0)), com um canto na origem
((0 0 0, 1 0 0, 0 0 1, 0 0 0)),
((1 0 0, 0 1 0, 0 0 1, 1 0 0)),
)
Point Point Z (10 10 5) Um ponto 3D
Point Point ZM (10 10 5 40) O mesmo ponto 3D com o
valor M igual a 40
Point Point M (10 10 40) Um ponto 2D com o valor M
igual a 40
FONTE: OPEN GEOSPATIAL CONSORTIUM
Já a segunda parte da SFS, especifica a parte de acesso aos dados,
definindo um esquema SQL para armazenamento, consulta e atualização de entidades
geográficas. Além de definir os conceitos e formatos de tabelas de feição e tabelas de
metadados13.
Nesse capítulo viu-se o paradigma dos quatro mundos, proposto por
CÂMARA (2005), que demonstra os passos e escolhas necessárias para a
transposição da informação geográfica do mundo real para o ambiente computacional.
Foi descrito também nesse capítulo, dois padrões muito utilizados para a representação
computacional da IG, o Shapefile, e o padrão SFS com suas especificações sobe
entidades geométricas, modelos, relacionamentos entre essas entidades e as
representações dessas informações como o WKB e o WKT.
13 Veja mais informações no capítulo 3, subtítulo 3.2.2 Tabelas do Sistema.
49. 47
3 ARMAZENAMENTO DA INFORMAÇÃO GEOGRÁFICA
Esse capítulo discorre sobre o armazenamento de informações geográficas
em um SGBD, fala sobre o Postgis, que é a extensão espacial do SGBD PostgreSQL e
que implementa o padrão SFS além de exemplificar vários tipos de operações e
consultas sobre dados espaciais.
3.1 Banco de Dados Espaciais
São Sistemas de Gerenciamento de Bancos de Dados (SGBD) com
capacidade para trabalhar com tipos de dados espaciais. Eles basicamente oferecem
armazenamento e recuperação dos dados espaciais e seus atributos além de operações
sobre esses dados.
Atualmente vários SGBDs possuem suporte para o trabalho com dados
espaciais. Entre os SGBDs proprietários cita-se o ORACLE Spatial, Microsoft SQL
Server 2005 com sua extensão espacial MsSqlSpatial e IBM DB2 Spatial Extender, e
50. 48
entre os SGBDs livres14 pode-se citar o PostgreSQL com sua extensão Postgis e o
MySQL Spatial todos eles em conformidade com o padrão SFS. Este trabalho foca no
Postgis devido ser um SGBD livre robusto e estar de acordo com a especificação SFS
versão 0.9 do OGC (Open Geospatial Consortium) na sua versão 1.4.0.
3.2 Postgis
O Postgis, que é uma extensão do SGBD PostgreSQL, está sob a GNU
General Public License15 e atualmente está na sua versão 1.4.0. Ele adiciona
funcionalidades ao PostgreSQL que permitem o armazenamento e processamento de
dados geográficos, implementando a especificação SFS o que possibilita que diferentes
tipos de softwares, que seguem esse padrão, possam acessar e trabalhar com as
informações armazenadas.
3.2.1 PostgreSQL
O PostgreSQL é um SGBD objeto relacional de código fonte aberto, é
descendente do sistema "Postgres" que por sua vez é descendente de um projeto mais
antigo de SGBD chamado "Ingres" que surgiu em meados de 1970 criado pela equipe
do Professor Michael Stonebreaker na Universidade de Berkeley e foi um dos primeiros
Sistemas de Bancos de Dados Relacional.
O SGBD PostgreSQL fornece suporte para SQL92 e SQL:1999 além de
suporte completo para joins, triggers e stored procedures (em múltiplas linguagens),
views, chaves estrangeiras, integridade transacional e controle de concorrência de
múltiplas versões. Possui a maioria dos tipos de dados do SQL:2008 incluindo
INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL e
TIMESTAMP, além de permitir a adição de novos tipos como ISBN16/ISSN17, tipos para
14 Veja definição de software livre no capítulo 4 subtítulo 4.1 Software Livre.
15 Veja capítulo 4 subtítulo 4.1.1 Licenças
16 International Standard Book Number – sistema internacional padronizado que identifica
numericamente os livros segundo o título, o autor, o país, a editora, individualizando-os inclusive
por edição, IBCT (2009).
17 International Standard Serial Number – é um número de identificação único, internacionalmente
reconhecido para publicações seriadas, IBCT (2009).
51. 49
armazenamento de endereços de redes além dos tipos geométricos e espaciais.
Também suporta o armazenamento de objetos binários grande como sons,
imagens ou vídeos. PostgreSQL funciona com várias linguagens de programação como
C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, a sua própria PL / pgSQL que é
semelhante ao Oracle PL / SQL entre outras, além de possuir uma vasta documentação.
A Tabela 3.1 abaixo mostra os limites máximos suportados pelo PostgreSQL
na sua versão 8.4.
Tabela 3.1: Limites máximos do PostgreSQL 8.4.
Propriedade Limite
Limite máximo do Banco de Dados Ilimitado
Limite máximo de tabela 32 TB
Limite máximo de linha 1,6 TB
Limite máximo de campo 1 GB
Limite máximo de linhar por tabela Ilimitado
Limite máximo de colunas por tabela 250 - 1600*
FONTE: POSTGRESQL (2009).
3.2.2 Tabelas do Sistema
O Postgis contém duas tabelas de sistema que são especificadas pelo
padrão SFS. Uma chamada de "spatial_ref_sys" e outra de "geometry_columns",
mostradas na Figura 3.1.
* dependendo do tipo de dados das colunas.
52. 50
Figura 3.1: Tabelas de sistema do Postgis.
A primeira "spatial_ref_sys" possui uma lista (cerca de três milhares de
registros) com a maioria dos sistemas de projeções cartográficas18 existentes. Esses
sistemas de projeções serão utilizados para determinar a localização das coordenadas
de uma determinada informação geográfica armazenada na tabela. Essa tabela será
referenciada pela tabela "geometry_columns" na coluna "srid".
A segunda tabela "geometry_columns" armazena informações sobre cada
uma das colunas geométricas do banco espacial. Cada registro nessa tabela do sistema
armazena informações de qual é o nome da tabela da coluna com a geometria, qual o
nome do schema a que essa tabela pertence, o nome da coluna que contém as
informações geográficas e o tipo de dado armazenado na coluna geométrica19, o sistema
de projeção cartográfica adotado para essa tabela além de um identificador único para
cada registro.
3.2.3 Tipos de Dados
Os principais tipos de dados do Postgis são: POINT (ponto), LINESTRING
(linha), POLYGON (polígono), MULTIPOINT (multi-pontos), MULTILINESTRING
18 Veja capítulo 1 subtítulo 1.1.2 Sistemas de Projeções Cartográficas
19 Veja subtítulo 3.2.3 Tipos de Dados
53. 51
(multi-linhas), MULTIPOLYGON (multi-polígonos), GEOMETRYCOLLECTION(coleção
de geometrias).
Uma forma fácil de inserir dados geográficos em uma tabela, é utilizando a
função GeomFromText( Text WKT, SRID), que recebe um texto no formato WKT e o
SRID associado à geometria, e o transforma em uma geometria para inserção no banco
de dados (formato WKB).
A Tabela 3.2 mostra exemplos de inserções em uma tabela geográfica.
Lembre que é necessário que a tabela possua o mesmo tipo de dado que se deseja
inserir, por exemplo, não é permitido inserir linhas em uma tabela que armazene pontos.
Tabela 3.2: Exemplos de comandos de inserção para dados geográficos.
Tipo Comando de inserção
POINT INSERT INTO feicao_point (the_geom) VALUES
(GeomFromText('POINT(0 0)', 29194));
LINESTRING INSERT INTO feicao_linestring (the_geom) VALUES
(GeomFromText('LINESTRING(0 0,1 1,1 2)', 29194));
POLYGON INSERT INTO feicao_polygon (the_geom) VALUES
(GeomFromText('POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1
1))', 29194));
MULTIPOINT INSERT INTO feicao_multipoint (the_geom) VALUES
(GeomFromText('MULTIPOINT(0 0,1 2)', 29194));
MULTILINESTRING INSERT INTO feicao_multilinestring (the_geom) VALUES
(GeomFromText('MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))',
29194));
MULTIPOLYGON INSERT INTO feicao_multipolygon (the_geom) VALUES
(GeomFromText('MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2
2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))', 29194));
GEOMETRYCOLLECTION INSERT INTO feicao_geometry_collection (the_geom) VALUES
(GeomFromText('GEOMETRYCOLLECTION(POINT(2
3),LINESTRING(2 3,3 4))', 29194));
3.2.4 Criando Banco de Dados Espaciais
54. 52
Para a criação de um banco de dados espaciais, basta executar o seguinte
comando no PostgreSQL:
CREATE DATABASE meu_banco_espacial TEMPLATE=template_postgis
Para a criação de uma tabela espacial no seu novo banco, execute a seguinte
instrução:
CREATE TABLE minha_feicao ( id INTEGER, nome VARCHAR(20) );
SELECT AddGeometryColumn(’’,
’minha_feicao’,
’geometria’,
-1,
’LINESTRING’,
2);
Observe que a coluna com a geometria foi adicionada através da função
"AddGeometryColumn" do Postgis. As colunas geométricas devem preferencialmente
ser adicionada à tabela através dessa função, cuja a sintaxe pode ser vista abaixo:
AddGeometryColumn(
<nome_schema>,
<nome_tabela>,
<nome_coluna>,
<srid>,
<tipo_geometria>,
<dimensao>
)
Os seus atributos são:
• <nome_schema>: nome do "schema" a que a tabela pertence.
• <nome_tabela>: nome da tabela que receberá a coluna geométrica.
• <nome_coluna>: Nome da nova coluna de geometria.
• <srid>: SRID ou Spatial Reference System Identifier. Número do sistema de
55. 53
coordenadas, referência a tabela do sistema "spatial_ref_sys", quando o valor
não for definido deve-se setar o valor -1.
• <tipo_geometria>: Um dos tipos de geometria do Postgis.
• <dimensao>: O número de dimensões da coluna, que podem ser 2, 3 ou 4 no
Postgis.
Ao ser executada, essa função cria a coluna na tabela passada como
parâmetro e em seguida insere um registro na tabela do sistema "geometry_columns"
com todas as informações da coluna geométrica criada.
3.2.5 Convertendo ESRI Shapefile para SFS
O Postgis possui um aplicativo que permite a conversão de arquivos ESRI
Shapefile para o formato SFS. Em sua instalação padrão, o Postgis trás o aplicativo
"shp2pgsql" que possui essa finalidade. Esse aplicativo fica localizado dentro do sub-
diretório "bin" da pasta de instalação do PostgreSQL.
Preparando os arquivos
Primeiramente deve-se preparar os dados para a importação. Isso significa
que deve-se copiar o shapefile (que é composto por três arquivos) e o arquivo do
aplicativo "shp2pgsql" para um mesmo diretório como na Figura 3.2. Em nosso exemplo
eles estarão no diretório "C:Temp".
56. 54
Figura 3.2: Preparação dos arquivos para
conversão.
Convertendo Arquivos
Após esse procedimento, deve-se abrir um console e entrar, através de
comandos, dentro do diretório onde foram colocados os arquivos do shapefile e o
programa "shp2pgsql". Em seguida deve-se digitar o seguinte comando, supondo que já
se esteja dentro do diretório:
C:Temp>shp2pgsql -s 29194 limites_municipais.shp limites_municipais >
limites.sql
Onde os parâmetros significam:
• -s: Corresponde a localização do Hemisfério Sul.
• 29194: Juntamente com o parâmetro anterior, referencia o SRID do Postgis No
nosso caso, esse valor representa o sistema SAD 69 24S20.
• limites_municipais.shp: Nome do arquivo que deseja-se importar.
• limites_municipais: Nome da tabela que será criada no Banco de Dados.
• limites.sql: arquivo SQL que será criado no diretório onde estão os arquivos.
Importando para o Banco de Dados
Com o arquivo SQL gerado, pode-se agora inserir essas informações no
Banco de Dados Espaciais Postgis. Para isso, no PgAdmin III21, primeiramente
selecione o banco espacial que deseja importar a nova tabela, Figura 3.3 seta 1, em
20 Um dos sistemas de projeções existentes. Muito utilizado no estado do Ceará.
21 Interface gráfica para gerenciamento do SGBD PostgreSQL.
57. 55
seguida clique no botão "Executar consultas SQL", Figura 3.3 seta 2.
2
1
Figura 3.3: Selecionando banco para receber a nova tabela.
Na janela que se abrirá, clique em "abrir arquivo", Figura 3.4 seta 1, e
selecione o arquivo criado, em seguida clique no botão "executar consulta", Figura 3.4
seta 2. Após esse procedimento ser concluído com sucesso, seu banco espacial
possuirá a nova tabela de feição geográfica.
1 2
Figura 3.4: Executando importação.
O Postgis também possui uma ferramenta que faz o caminho inverso,
convertendo tabelas de feições em shapefile. Esse procedimento é descrito em
“PostGIS 1.4.0 Manual”.
58. 56
3.2.6 Índices
Os índices em um SGBD, tem a função de acelerar o tempo de acesso às
linhas de uma tabela. Para para grandes tabelas com dados espaciais (com cerca de
algumas mil linhas), torna-se imprescindível a utilização de índices para a realização das
buscas sobre os seus atributos espaciais.
O PostgreSQL atualmente oferece suporte para 4 tipos de índices: Hash ,
Árvore B, Árvore R e GiST.
Hash
No PostgreSQL implementam o hash linear. Esse tipo de índice é útil apenas
para operações de igualdade simples. No PostgreSQL o índice hash não tem
apresentado um bom desempenho, sendo desencorajado seu uso, sendo aconselhado
substituí-lo por índice de Árvore B ou índice de Árvore R.
Árvore B
Esse índice é o índice-padrão do PostgreSQL, é assumido quando não se
informa o tipo de indexação ao criar um índice. Esse índice é um método de Árvore B e
é usado para consultas que utilizem os operadores <, <=, =, >=, > além de LIKE, ILIKE
~ e *~. Como as Informações Geográficas não podem ser racionalmente ordenados,
esse tipo de índice não é útil para a indexação, pois é difícil dizer quem é maior entre as
coordenadas (0,0) , (0,1) (1,0).
Árvore R
Utilizado apenas para operações de sobreposição nos tipos de dados
espaciais simples como pontos, linhas e retângulos . De acordo com
SILBERCHARTCZ (2006), Uma árvore R é uma estrutura de árvore balanceada com os
objetos indexados armazenados nos nós folhas, semelhante a árvore B+. Contudo ao
invés de armazenar intervalos de valores, cada nó da árvore é associado o retângulo
envolvente do objeto. A Figura 3.5 mostra um exemplo de retângulo envolvente (em
vermelho) que é o menor retângulo paralelo aos eixos que contém o objeto.
59. 57
Figura 3.5: Exemplo de Retângulo
envolvente. FONTE:
<http://150.164.29.11/mapserver-
intro/img/exercicio01_extent.png>
Na Árvore R, os nós folhas possuem o retângulo envolvente de seus objetos,
já os nós internos, possuem o retângulo envolvente que contém as caixas de contorno
do seus nós filhos. Nesse tipo de índice, cada nó armazena o retângulo envolvente dos
seus nós filhos junto com o ponteiro para os nós filhos. Já cada nó folha armazena o
objeto indexado, que opcionalmente poderá armazenar as caixas de contornos do seu
objeto, pois elas auxiliam na verificação de sobreposições exceto quando os objetos
indexados forem retângulos, pois os retângulos envolventes seriam idênticos ao objeto
indexado.
A Figura 3.6 mostra um exemplo de uma árvore R. Na figura, os nós folhas
possuem polígonos dos açudes, com seus respectivos retângulos envolventes em
vermelho, os nós folhas são denominados por letras. E os nós da árvore R possuem os
retângulos envolventes que possuem os seus nós folhas, e são representados na figura
pelos retângulos verdes com numeração arábica. Na figura elas são um pouco maiores
para facilitar a visualização, mas na realidade eles ficariam colados nos limites dos
objetos que contém.
A Árvore R propriamente dita está no lado direito da Figura 3.6 a figura a
esquerda refere-se apenas às coordenadas do retângulo envolvente i dos nós internos
da árvore, denominados de BBi (na cor verde), e dos retângulos envolventes dos
atributos geográficos (na cor vermelha).
60. 58
BB1 BB2
A B C D E F
Figura 3.6: Uma Árvore R. FONTE: Adaptado de informações fornecidas pela Companhia de
Gestão dos Recursos Hídricos - COGERH.
De acordo com NEUFELD (2009), os índices de Árvore R no PostgreSQL
não são "null safe", logo se ao criar um índice sobre uma coluna de geometria e ela
contiver valores nulos, a indexação falhará. Desde a versão 0.6 as árvores R foram
completamente descartadas do PostgreSQL, sendo substituídas por implementações de
Árvores R sobre GiST.
GiST
GiST (Generalized Search Trees) é uma forma generalizada de indexação,
que reúne uma grande variedade de diferentes algoritmos de indexação e pesquisa. É
um índice baseado em árvore, com método de acesso balanceado, estruturado em
árvore, que pode ser usado para implementar uma família inteira de índices diferentes,
por exemplo, índices de Árvore B e índices de Árvore R.
Esse índice fornece uma interface que permite tanto a criação de tipos de
dados personalizados, bem como métodos de consulta extensíveis com o qual permite-
se busca-los.
O índice GiST procura por dados em "things to one side" (coisas que são
vizinhas), "things which overlap" (coisas que se sobrepõem), "things which are inside"
61. 59
(coisas que estão dentro) e podem ser usadas em vários tipos de dados, inclusive
dados geográficos. Ele é usado para acelerar as buscas em todos os tipos de estruturas
de dados irregulares que não são facilmente indexados numa árvore B.
A sintaxe para construir um índice de GiST em uma coluna de geometria é a
seguinte:
CREATE INDEX [nome_index] ON [nome_tabela]
USING GIST ( [coluna_geometrica] );
Em seguida, é importante forçar PostgreSQL a coletar estatísticas de tabela
que são usadas para otimizar planos de "query":
VACUUM ANALYZE [nome_tabela] ( [nome_coluna] );
Segundo NEUFELD (2009), no PostgreSQL, os índices GiST têm duas
vantagens em relação a índices de árvore R. Primeiramente os índices GiST são "null
safe" (segurança nula), ou seja, significa que eles podem indexar colunas que incluem
valores nulos o que não acontece com o índice de árvore R. Em segundo lugar, índices
GiST apoiam o conceito de "lossiness" que é importante quando se possui objetos de
tamanhos maiores que 8K. "Lossiness" permite ao PostgreSQL armazenar apenas a
parte importante de um objeto em um índice - no caso de objetos de geográficos,
apenas o retângulo envolvente. Objetos geográficos maiores que 8K causarão índices
de árvore R para falhar no seu processo de construção.
3.2.7 Operações e consultas sobre a informação geográfica
Segundo CÂMARA (2005), as operações sobre dados espaciais podem ser
definidas da seguinte forma:
Operação Unária Booleana
Esse tipo de operação mapeia geometrias em valores booleanos (verdadeiro
ou falso). Um exemplo de consulta seria saber se uma geometria é convexa22. Por
22 Um polígono é dito NÃO convexo se dados dois pontos do polígono, o segmento formado por
esses pontos contiver pontos que estão fora do polígono.
62. 60
exemplo pode-se fazer a pergunta: O contorno de Fortaleza representa um polígono
convexo (Figura 3.7)?
Polígono convexo
Município de Fortaleza
Polígono não convexo
Figura 3.7: Operação unária booleana. O município de Fortaleza é
convexo?
Operação Unária Escalar
Nessa operação, os atributos geométricos são mapeados em valores
escalares. Como exemplo dessa operação tem-se a pergunta: “Qual a área do
município de fortaleza?”
Essa pergunta pode ser respondida através da seguinte consulta que utiliza
função do Postgis chamada AREA(geometria geom), que recebe uma geometria como
parâmetro, que no exemplo é a coluna "the_geom" que contém a informação
geométrica:
63. 61
CONSULTA:
SELECT municipio AS municipio, AREA(the_geom) as m2
FROM limites_municipais
WHERE municipio LIKE 'Fortaleza';
RETORNO:
municipio m2
Fortaleza | 313240185.82959
O valor de retorno dessa função depende da medida adotada no sistema de
coordenadas da geometria, no caso do SAD 69 24s por exemplo, essa medida é metros,
o que faz a função AREA(geometria geom) retornar um valor em metros quadrados.
Operação Unária Espacial
A operação Unária espacial mapeia geometrias em outras geometrias. Nesse
tipo de operação sobre dados espaciais, cada geometria é convertida em uma nova
geometria. Abaixo tem-se alguns exemplos:
Buffer: Também conhecidos por "buffer zones" ou mapas de distância, são
áreas construídas ao redor de objetos mantendo certa distancia, CÂMARA(2005). Em
geometrias do tipo ponto, o buffer é construído apenas criando um circulo de raio r. A
Figura 3.8 mostra o princípio para criação de buffers.
Figura 3.8: Princípio básico para a criação de buffer. FONTE CÂMARA (2005)
Esse recurso é muito prático por exemplo quando se deseja determinar uma
área de proteção ambiental ao redor de um açude. Supondo que a área de preservação
ambiental seja definida como uma distância de 100 metros a partir da borda de um
64. 62
açude. A reposta à pergunta: "Qual o limite da área de proteção ambiental do açude
Penedo no estado do Ceará?" pode ser obtida através da seguinte consulta.
SELECT acude as acude, BUFFER( the_geom, 100 )
FROM acudes
WHERE acude LIKE 'PENEDO';
Ela utiliza a função BUFFER( geometria geom, double valor) do Postgis,
que recebe uma geometria e um valor como parâmetro e retorna uma nova geometria a
partir do valor da distância fornecida. Observe que o valor passado como parâmetro
deve ser compatível com o sistema de coordenadas da feição cartográfica (metros,
hectares, quilômetros).
A Figura 3.9 (b), mostra o resultado obtido através da consulta, juntando-se
as feições do acude, visto na Figura 3.9 (a), pode-se observar claramente a área de
preservação ambiental ao redor do açude, Figura 3.9 (c).
(a) Açude Penedo
(b) Buffer Zone (c) Área de Proteção Ambiental
de 100 metros
Figura 3.9: Exemplo de Buffer Zone ou Mapa de Distância.
65. 63
ConvexHull: Nesse outro tipo de operação unária espacial, uma geometria é
convertida em outra geometria que representa seu polígono convexo. Ela pode ser
executada no SGBD através da instrução CONVEXHULL ( geometria geom), a
consulta abaixo por exemplo, mostra a forma de se obter o polígono convexo que
contém o município de Fortaleza.
SELECT CONVEXHULL(the_geom) FROM limites_municipais
WHERE municipio LIKE 'Fortaleza';
A Figura 3.10 (b) mostra o resultado da consulta acima, a figura Figura 3.10
(a), mostra o contorno do município de Fortaleza e a Figura 3.10 (c) mostra a
sobreposição das duas imagens. Elas foram colocadas apenas para uma melhor
compreensão do resultado obtido.
(a) Geometria de Fortaleza (b) Resultado da consulta (c) sobreposição
(polígono convexo)
Figura 3.10: Exemplo da função ConvexHull.
Operação Binária Booleana
Essa operação mapeia pares de entidades geométricas em valores
booleanos e pode ser subdividida em:
66. 64
Relacionamentos Topológicos: São relacionamentos que não são alterados
por transformações topológicas como: translação, rotação e mudanças de escala, como
operações do tipo “Contains”, “Disjoint”, “Touches”, “Intersects” e “Crosses”.
Como exemplo dessas operações, pode-se ter uma situação onde se deseja
saber: “Quais os municípios do estado do Ceará, são cortados (interceptados) pelo
Canal da Integração?”. A seguinte consulta retornaria a informação requerida:
SELECT m.gid, m.municipio, m.the_geom
FROM limites_municipais m
INNER JOIN canal_integracao c ON
INTERSECTS(c.the_geom, m.the_geom) IS NOT FALSE
Observe que a função INTERSECTS(geometria geomA, geometria
geomB) recebe duas geometrias e retorna verdadeiro caso a primeira geometria
(geomA) intercepte a segunda geometria (geomB). O resultado da consulta pode ser
observado na Figura 3.11 pelos municípios coloridos. O canal da integração está em
azul.
Figura 3.11: Exemplo da função INTERSECT. FONTE: COGERH.
67. 65
Outra função pertencente a esse grupo é a função DISJOINT (geometria
geomA, geometria geomB), que retorna verdadeiro caso a primeira geometria (geomA)
seja espacialmente separada da segunda geometria (geomB). Essa relação pode ser
usada para comparações de vizinhança como o seguinte exemplo: “O município de
Fortaleza é vizinho do município de Maranguape?”. A reposta para essa questão pode
ser obtida a partir da seguinte consulta.
CONSULTA:
SELECT DISJOINT(
SELECT the_geom FROM limites_municipais WHERE municipio LIKE 'Fortaleza' ,
SELECT the_geom FROM limites_municipais WHERE municipio LIKE 'Maranguape'
);
RETORNO:
TRUE -- ou seja, estão espacialmente separados
A Figura 3.12 apresenta os contornos do município de fortaleza e do
município de Maranguape. Observe que esses municípios não se tocam em nenhum
ponto e estão espacialmente separados, demonstrando que o retorno da função acima
está correto, pois os municípios de Fortaleza e Maranguape não são vizinhos.
Figura 3.12: Municípios de Fortaleza e Maranguape são espacialmente separados. FONTE:
COGERH.
68. 66
A resposta a pregunta também poderia ser respondida, nesse caso
específico, utilizando a função TOUCHES(geometria geomA, geometria geomB)
que retornaria “verdadeiro” caso as geometrias não se tocassem, como no caso de
Fortaleza e Maranguape, mas em casos especiais, de uma geometria estar incluída
(contida) na outra e não se tocarem, como na Figura 3.13, poderia-se ter uma resposta
errônea pois o a função TOUCHES retornaria FALSE (falso), pois as geometrias não se
tocariam, mas elas não poderiam ser consideradas vizinhas pois uma estaria contida na
outra, não estando espacialmente separadas.
A
B
Figura 3.13: Geometria B contida na geometria A sem tocá-la.
Relacionamento Direcional: Esse relacionamento declara uma relação de
direção entre as geometrias. Por exemplo, dizer que Fortaleza esta ao norte de
Pacatuba, Figura 3.14, é um exemplo desse relacionamento.
Figura 3.14: Exemplo de relacionamento Binário Booleano Direcional. Fortaleza ao norte de
Pacatuba. FONTE: COGERH.
69. 67
Para esse tipo de consulta são utilizados operadores especiais no Postgis,
vistos na Tabela 3.3, e a consulta abaixo mostra um exemplo de utilização um desses
operadores (“|&>”).
CONSULTA:
SELECT(
(SELECT (the_geom) FROM limites_municipais WHERE municipio LIKE 'Fortaleza')
|&>
(SELECT (the_geom) FROM limites_municipais WHERE municipio LIKE 'Pacatuba')
);
RETORNO:
TRUE
Tabela 3.3: Operadores Binários Booleanos Direcionais.
Operador Exemplo Descrição
&& A && B Retorna “verdadeiro” quando o RE da geometria A SOBREPÕE o
RE da geometria B.
&< A &< B Retorna “verdadeiro” quando o RE da geometria A SOBREPÕE ou
está à ESQUERDA do RE da geometria B.
&<| A &<| B Retorna “verdadeiro” quando o RE da geometria A SOBREPÕE ou
está ABAIXO do RE da geometria B.
&> A &> B Retorna “verdadeiro” quando o RE da geometria A SOBREPÕE ou
está à DIREITA do RE da geometria B.
|&> A |&> B Retorna “verdadeiro” quando o RE da geometria A SOBREPÕE ou
está ACIMA do RE da geometria B.
<< A << B Retorna “verdadeiro” quando o RE da geometria A está totalmente à
ESQUERDA do RE da geometria B.
<<| A <<| B Retorna “verdadeiro” quando o RE da geometria A está totalmente
ABAIXO do RE da geometria B.
>> A >> B Retorna “verdadeiro” quando o RE da geometria A está totalmente à
DIREITA do RE da geometria B.
|>> A >> B Retorna “verdadeiro” quando o RE da geometria A estiver totalmente
ACIMA do RE da geometria B.
@ A@B Retorna “verdadeiro” quando o RE da geometria A estiver totalmente
CONTIDA no RE da geometria B.
~ A~B Retorna “verdadeiro” quando o RE da geometria A CONTIVER
totalmente o RE da geometria B.
= A=B Retorna “verdadeiro” quando o RE da geometria A for IDÊNTICO ao
RE da geometria B.