SlideShare uma empresa Scribd logo
1 de 90
Baixar para ler offline
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
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
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
Aos familiares de sangue e os de destino.
                              Dedicamos
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.
“O homem que remove montanhas começa carregando pedras pequenas.”


                          Ditado Chinês
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.
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
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
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
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
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
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
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
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.
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.
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
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.
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:
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).
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.
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.
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
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
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.
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.
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)
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.
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.
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):
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
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.
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.
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)].
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
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).
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.
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.
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.
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)
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).
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”.
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).
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
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”.
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 ))
                        )
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.
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
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).
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.
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
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
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
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".
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.
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”.
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.
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).
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"
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.
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:
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
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.
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:
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.
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.
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.
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.
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre
Disponibilização de informações geográficas utilizando software livre

Mais conteúdo relacionado

Destaque

Deus é capaz de fazer
Deus é capaz de fazerDeus é capaz de fazer
Deus é capaz de fazermmboanova
 
Trabajo desarrollo de la_carrera
Trabajo desarrollo de la_carreraTrabajo desarrollo de la_carrera
Trabajo desarrollo de la_carrerakarlagomezc
 
Programa Trans Visitas De Estudo Organizadores
Programa Trans Visitas De Estudo OrganizadoresPrograma Trans Visitas De Estudo Organizadores
Programa Trans Visitas De Estudo OrganizadoresSHR Moisio
 
Deber de html y xml diferencias daniela delgado supo
Deber de html y xml diferencias daniela delgado supoDeber de html y xml diferencias daniela delgado supo
Deber de html y xml diferencias daniela delgado supodanieladelgadosupo
 
Herramientas para una clase invertida
Herramientas para una clase invertidaHerramientas para una clase invertida
Herramientas para una clase invertidaElvita Kehler
 
Mundo por construir
Mundo por construirMundo por construir
Mundo por construirbyronabril
 
Revalidação de diploma - Tradução Juramentada
Revalidação de diploma - Tradução JuramentadaRevalidação de diploma - Tradução Juramentada
Revalidação de diploma - Tradução JuramentadaLaerte J Silva
 
Ofertório oferta de amor(willen soares)
Ofertório   oferta de amor(willen soares)Ofertório   oferta de amor(willen soares)
Ofertório oferta de amor(willen soares)mmboanova
 
Importancia de trabajar las tic en educación
Importancia de trabajar las tic en educaciónImportancia de trabajar las tic en educación
Importancia de trabajar las tic en educaciónchavezolivares123
 
3 2 crear_nuevo_documento
3 2 crear_nuevo_documento3 2 crear_nuevo_documento
3 2 crear_nuevo_documentoZuleika
 
Artistas de Deus
Artistas de DeusArtistas de Deus
Artistas de DeusPetula
 
Parceria fenomenal.
Parceria fenomenal.Parceria fenomenal.
Parceria fenomenal.rodrigomoura
 
Presentación1 seo
Presentación1 seoPresentación1 seo
Presentación1 seoEvelyn
 

Destaque (20)

Deus é capaz de fazer
Deus é capaz de fazerDeus é capaz de fazer
Deus é capaz de fazer
 
Trabajo desarrollo de la_carrera
Trabajo desarrollo de la_carreraTrabajo desarrollo de la_carrera
Trabajo desarrollo de la_carrera
 
Programa Trans Visitas De Estudo Organizadores
Programa Trans Visitas De Estudo OrganizadoresPrograma Trans Visitas De Estudo Organizadores
Programa Trans Visitas De Estudo Organizadores
 
Deber de html y xml diferencias daniela delgado supo
Deber de html y xml diferencias daniela delgado supoDeber de html y xml diferencias daniela delgado supo
Deber de html y xml diferencias daniela delgado supo
 
Herramientas para una clase invertida
Herramientas para una clase invertidaHerramientas para una clase invertida
Herramientas para una clase invertida
 
Mundo por construir
Mundo por construirMundo por construir
Mundo por construir
 
Revalidação de diploma - Tradução Juramentada
Revalidação de diploma - Tradução JuramentadaRevalidação de diploma - Tradução Juramentada
Revalidação de diploma - Tradução Juramentada
 
Repórter da freguesia versão para publicaçãp
Repórter da freguesia versão para publicaçãpRepórter da freguesia versão para publicaçãp
Repórter da freguesia versão para publicaçãp
 
Cultura digital
Cultura digitalCultura digital
Cultura digital
 
Ingry2
Ingry2Ingry2
Ingry2
 
Valores - Melissa
Valores - MelissaValores - Melissa
Valores - Melissa
 
Ofertório oferta de amor(willen soares)
Ofertório   oferta de amor(willen soares)Ofertório   oferta de amor(willen soares)
Ofertório oferta de amor(willen soares)
 
Importancia de trabajar las tic en educación
Importancia de trabajar las tic en educaciónImportancia de trabajar las tic en educación
Importancia de trabajar las tic en educación
 
Introduccion a xhtml
Introduccion a xhtmlIntroduccion a xhtml
Introduccion a xhtml
 
Mafalda silva
Mafalda silvaMafalda silva
Mafalda silva
 
3 2 crear_nuevo_documento
3 2 crear_nuevo_documento3 2 crear_nuevo_documento
3 2 crear_nuevo_documento
 
Y.A.
Y.A.Y.A.
Y.A.
 
Artistas de Deus
Artistas de DeusArtistas de Deus
Artistas de Deus
 
Parceria fenomenal.
Parceria fenomenal.Parceria fenomenal.
Parceria fenomenal.
 
Presentación1 seo
Presentación1 seoPresentación1 seo
Presentación1 seo
 

Semelhante a Disponibilização de informações geográficas utilizando software livre

Apostila Geoprocessamento Aplicado Geologia
Apostila Geoprocessamento Aplicado GeologiaApostila Geoprocessamento Aplicado Geologia
Apostila Geoprocessamento Aplicado GeologiaLeonardo Vigário
 
Tutorial bdgeo geobrasil2006
Tutorial bdgeo geobrasil2006Tutorial bdgeo geobrasil2006
Tutorial bdgeo geobrasil2006Hélison Dornelas
 
T.C.C. Aplicativo em NCL e simulação de colisão e explosão de satélite arti...
T.C.C.   Aplicativo em NCL e simulação de colisão e explosão de satélite arti...T.C.C.   Aplicativo em NCL e simulação de colisão e explosão de satélite arti...
T.C.C. Aplicativo em NCL e simulação de colisão e explosão de satélite arti...Jeferson Machado
 
Monografia - Luiz Fernando Cruz v5
Monografia - Luiz Fernando Cruz v5Monografia - Luiz Fernando Cruz v5
Monografia - Luiz Fernando Cruz v5Luiz Fernando Cruz
 
Gps wi fi para ambientes fechados (indoor)
Gps wi fi para ambientes fechados (indoor)Gps wi fi para ambientes fechados (indoor)
Gps wi fi para ambientes fechados (indoor)Ricardo Francoti
 
2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracaoWosley Arruda
 
Danilo costa bertoloto
Danilo costa bertolotoDanilo costa bertoloto
Danilo costa bertolotoPaulo Wagner
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...Sandro Santana
 
Projeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebProjeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebAna Martins
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisMarcelo Ramos
 
Desenvolvimento de uma Rede Social Baseada em Geolocalização
Desenvolvimento de uma Rede Social Baseada em GeolocalizaçãoDesenvolvimento de uma Rede Social Baseada em Geolocalização
Desenvolvimento de uma Rede Social Baseada em GeolocalizaçãoMaycon Viana Bordin
 
TCC_2010_2_Fernando_Figueiredo_Torres
TCC_2010_2_Fernando_Figueiredo_TorresTCC_2010_2_Fernando_Figueiredo_Torres
TCC_2010_2_Fernando_Figueiredo_TorresFernando Torres
 
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...rafaelov
 
Geogvsig
GeogvsigGeogvsig
Geogvsigbiodudi
 
tccfinal
tccfinaltccfinal
tccfinalrjunkes
 

Semelhante a Disponibilização de informações geográficas utilizando software livre (20)

Apostila Geoprocessamento Aplicado Geologia
Apostila Geoprocessamento Aplicado GeologiaApostila Geoprocessamento Aplicado Geologia
Apostila Geoprocessamento Aplicado Geologia
 
Tutorial bdgeo geobrasil2006
Tutorial bdgeo geobrasil2006Tutorial bdgeo geobrasil2006
Tutorial bdgeo geobrasil2006
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
 
T.C.C. Aplicativo em NCL e simulação de colisão e explosão de satélite arti...
T.C.C.   Aplicativo em NCL e simulação de colisão e explosão de satélite arti...T.C.C.   Aplicativo em NCL e simulação de colisão e explosão de satélite arti...
T.C.C. Aplicativo em NCL e simulação de colisão e explosão de satélite arti...
 
 
Monografia - Luiz Fernando Cruz v5
Monografia - Luiz Fernando Cruz v5Monografia - Luiz Fernando Cruz v5
Monografia - Luiz Fernando Cruz v5
 
Dis
DisDis
Dis
 
Gps wi fi para ambientes fechados (indoor)
Gps wi fi para ambientes fechados (indoor)Gps wi fi para ambientes fechados (indoor)
Gps wi fi para ambientes fechados (indoor)
 
2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao
 
Danilo costa bertoloto
Danilo costa bertolotoDanilo costa bertoloto
Danilo costa bertoloto
 
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...Dissertação  google inc act on general strike suzart Attain to cpf 051 812 95...
Dissertação google inc act on general strike suzart Attain to cpf 051 812 95...
 
Projeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para WebProjeto de Interfaces Gráficas para Web
Projeto de Interfaces Gráficas para Web
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
 
Desenvolvimento de uma Rede Social Baseada em Geolocalização
Desenvolvimento de uma Rede Social Baseada em GeolocalizaçãoDesenvolvimento de uma Rede Social Baseada em Geolocalização
Desenvolvimento de uma Rede Social Baseada em Geolocalização
 
TCC_2010_2_Fernando_Figueiredo_Torres
TCC_2010_2_Fernando_Figueiredo_TorresTCC_2010_2_Fernando_Figueiredo_Torres
TCC_2010_2_Fernando_Figueiredo_Torres
 
Algoritmos de redes
Algoritmos de redesAlgoritmos de redes
Algoritmos de redes
 
Computação ubíqua
Computação ubíquaComputação ubíqua
Computação ubíqua
 
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...
Elaboração de uma Solução para Automatização do Georreferenciamento de Objeto...
 
Geogvsig
GeogvsigGeogvsig
Geogvsig
 
tccfinal
tccfinaltccfinal
tccfinal
 

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
  • 5. Aos familiares de sangue e os de destino. Dedicamos
  • 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.
  • 7. “O homem que remove montanhas começa carregando pedras pequenas.” Ditado Chinês
  • 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.