Vous êtes sur la page 1sur 503

editado e organizado por:

Marco Antonio Casanova


Gilberto Cmara
Clodoveu A. Davis Jr.
Lbia Vinhas
Gilberto Ribeiro de Queiroz

Bancos de Dados Geogrficos

Maio, 2005
Copyright Editora Mundogeo

Editora Mundogeo
Coordenao Editorial

Produo Grfica AR Comunicao


Capa
Preparao
Reviso
Editorao Eletrnica AR Comunicao
Impresso e acabamento Grfica Infante

B212b

Bancos de dados geogrficos / Organizadores Joo da Silva... [et al.]. Curitiba:


EspaoGEO, 2005.
504 p.
ISBN
1. Bancos de dados geogrficos. 2. Aplicativos geogrficos. 3. Geoinformao.
I. Cmara, Gilberto, 1956 II. Ttulo.
CDD- 629.4

Todos os direitos desta edio so reservados Editora


MundoGEO.
R. Desembargador Hugo Simas, 1231 Escritrio 03
Bom Retiro Curitiba / PR 80520-250
Tel.: (41) 3338-7789 Fax: (41) 3338-9237
www.mundogeo.com
H quase duas dcadas, bancos de dados tornaram-se o componente
central de sistemas de informao, tanto do ponto de vista de projeto,
quanto do ponto de vista de operao. Esta evoluo foi possvel graas a
uma slida tecnologia desenvolvida para armazenamento e manipulao
de dados convencionais, notadamente os chamados sistemas de gerncia
de bancos de dados objeto-relacionais (SGBD-OR).
O projeto e operao de sistemas de informao geogrfica vem
seguindo o mesmo rumo, adotando bancos de dados geogrficos (BDGs)
como ponto central da arquitetura. A relativa demora na adoo de
BDGs explica-se pela complexidade de representao e manipulao de
dados geogrficos. Tal complexidade exigiu desenvolvimentos adicionais
da tecnologia dos SGBD-OR at que o nvel de funcionalidade e o
desempenho fossem satisfatrios para a plena adoo de BDGs.
Mais recentemente, o foco do desenvolvimento de sistemas de
informao caminhou na direo de federaes de sistemas fracamente
acoplados. Os sistemas de informao geogrfica acompanharam de
perto esta evoluo, oferecendo uma gama variada de servios de
intercmbio e disseminao de dados geogrficos, novamente fruto da
maturao de novas tecnologias.
Este livro aborda bancos de dados geogrficos dentro desta ampla
perspectiva, cobrindo desde aspectos de representao dos dados
geogrficos at a sua disseminao na Internet. O livro est dividido em
quatro partes, para facilitar a leitura.
A Parte I - Fundamentos examina os problemas bsicos de
representao computacional de dados geogrficos, resume os principais
algoritmos geomtricos e representaes topolgicas e trata da
modelagem de dados espao-temporais em geral.
A Parte II - Persistncia e Acesso apresenta uma viso geral das
principais tecnologias especificamente desenvolvidas para sistemas de
gerncia de banco de dados geogrficos. Inclui ainda exemplos de
sistemas existentes que oferecem extenses espaciais.

A Parte III - Interoperabilidade cobre tecnologias relacionadas a


integrao e interoperabilidade, e inclui o tema de disseminao de dados
geogrficos na Internet. Apresenta tambm as propostas do Open
Geospatial Consortium para interoperabilidade.
Por fim, a Parte IV - TerraLib descreve os aspectos mais relevantes da
biblioteca TerraLib, incluindo o tratamento de dados matriciais.
Apresenta ainda o TerraLib Development Kit - Tdk, cujo objetivo
principal facilitar o desenvolvimento de aplicativos geogrficos que
utilizem a TerraLib.
O contedo do livro foi balanceado para atender a diferentes
comunidades:
Gerentes de tecnologia de informao interessados em implantar
bancos de dados geogrficos em suas instituies podem se
beneficiar da leitura dos Captulos 1, 3, 5, 8, 10 e 11.
Desenvolvedores de sistemas de informao geogrfica tm acesso
a material sobre o funcionamento interno dos bancos de dados
geogrficos (Captulos 2, 6 e 7) e tambm uma descrio da
TerraLib (Captulos 12, 13 e 14).
Alunos de ps-graduao podem encontrar uma introduo a
temas no estado-da-arte nos Captulos 4, 9 e 10.
Este livro resultante da cooperao entre as equipes baseadas nos
estados de So Paulo (INPE), Rio de Janeiro (PUC-Rio) e Minas Gerais
(UFMG e PUC Minas). Uma parte substancial dos resultados aqui
apresentados resultou de projetos de pesquisa e desenvolvimento, teses e
dissertaes nessas instituies. Este livro serve como texto bsico do
curso de ps-graduao em Bancos de Dados Geogrficos ministrado no
INPE (http://www.dpi.inpe.br/cursos/ser303) e nas disciplinas da
Ps-Graduao em Informtica da PUC Minas. Este livro tambm se
encontra on-line, com material adicional, no stio:
http://www.dpi.inpe.br/livros/bdados.

Agradecemos ao CNPq pelo apoio ao projeto TerraLib e o apoio


parcial as pesquisas de Gilberto Cmara e Clodoveu Davis Jr; ao INPE
pelo apoio na editorao deste livro; ao Dr. Antnio Miguel Vieira
Monteiro, chefe da Diviso de Processamento de Imagens; ao TecGraf e
seu coordenador Prof. Marcelo Gattass; PRODABEL e PUC Minas; e,
finalmente, Terezinha Gomes dos Santos pelo apoio logstico.
Esperamos que a comunidade de geoinformao brasileira possa
beneficiar-se de nossa experincia, que tentamos transmitir neste livro.

So Jos dos Campos, Rio de Janeiro, Belo Horizonte, maio de 2005.


Os autores.
Sobre os autores
Alberto H. F. Laender doutor em Cincia da Computao pela
University of East Anglia (UK) e professor titular da UFMG.
Clodoveu A. Davis Jr. doutor em Cincia da Computao pela UFMG e
professor da PUC Minas.
Daniela Francisco Brauner doutoranda em Informtica na PUC-Rio.
Gilberto Cmara doutor em Computao Aplicada pelo INPE, e
pesquisador da Diviso de Processamento de Imagens do INPE.
Gilberto Ribeiro de Queiroz mestre em Computao Aplicada pelo
INPE e engenheiro da Diviso de Processamento de Imagens do
INPE.
Karine Reis Ferreira mestre em Computao Aplicada pelo INPE e
engenheira da Diviso de Processamento de Imagens do INPE.
Karla A. V. Borges doutoranda em Cincia da Computao na UFMG e
analista da PRODABEL.
Ligiane Alves de Souza mestrando em Cincia da Computao na
UFMG.
Lbia Vinhas doutoranda em Computao Aplicada no INPE e
engenheira da Diviso de Processamento de Imagens do INPE.
Marcelo Tlio Monteiro de Carvalho pesquisador do Grupo de
Tecnologia em Computao Grfica (TecGraf) da PUC-Rio.
Marco Antonio Casanova doutor em Applied Mathematics pela Harvard
University (EUA) e professor da PUC-Rio.
Mrio de S Vera pesquisador do Grupo de Tecnologia em Computao
Grfica (TecGraf) da PUC-Rio.
Olga Fradico de Oliveira doutoranda em Computao Aplicada no
INPE.
Paulo de Oliveira Lima Junior mestre em Computao Aplicada pelo
INPE, professor e coordenador do curso de Bacharelado em Sistemas
de Informao da UNIPAC (Conselheiro Lafaiete, MG).
Ricardo Cartaxo Modesto de Souza engenheiro snior da Diviso de
Processamento de Imagens do INPE.
Taciana de Lemos Dias doutoranda em Computao Aplicada no INPE,
professora da PUC Minas e analista da PRODABEL.
1. Representao computacional de dados geogrficos ............................. 11
2. Algoritmos geomtricos e relacionamentos topolgicos ....................... 53
3. Modelagem conceitual de dados geogrficos ......................................... 93
4. Modelos espao-temporais .................................................................. 147
5. Arquiteturas e Linguagens..................................................................... 181
6. Mtodos de acesso para dados espaciais ............................................... 213
7. Processamento de consultas e gerncia de transaes......................... 233
8. SGBD com extenses espaciais ............................................................. 281
9. Integrao e interoperabilidade ............................................................. 317
10. Disseminao de dados geogrficos na Internet................................ 353
11. O Open Geospatial Consortium ......................................................... 377
12. Descrio da TerraLib.......................................................................... 395
13. Tratamento de dados matriciais na TerraLib.................................... 439
14. Desenvolvimento de aplicativos com a TerraLib .............................. 475
1 Representao computacional de dados geogrficos

Gilberto Cmara

1.1 Introduo
Este captulo examina os problemas bsicos de representao
computacional de dados geogrficos, e esclarece questes da seguinte
natureza: Como representar os dados geogrficos no computador? Como as
estruturas de dados geomtricas e alfanumricas se relacionam com os dados
do mundo real? Que alternativas de representao computacional existem
para dados geogrficos?
Em seu livro Olhos de Madeira, Carlo Ginzburg nos traz um
fascinante ensaio sobre a origem da palavra representao. A origem do
termo remonta ao sculo XIII, chamando-se reprsentation aos
manequins de cera exibidos junto ao cadver dos reis franceses e ingleses
durante as cerimnias funerrias (Ginzburg, 2001). Enquanto o
soberano era velado, a presena do manequim era um testemunho
transcendncia do rei e a sua presena futura no mundo dos mortos. O
manequim tinha a funo de lembrar aos presentes que o rei havia
assumido uma outra forma e que uma nova vida se iniciava para o morto.
Nesta nova forma, apesar de morto o rei continuaria presente para seus
sditos (re + prsentation).
Assim, desde a sua origem a palavra representao est associada a
uma forma abstrata de descrio do mundo. O uso do manequim como
representao do soberano morto apenas um exemplo do problema
mais geral da construo de abstraes que descrevem o mundo. Para
explicar como funcionam os bancos de dados geogrficos, este captulo
descreve o processo de transformar aos conceitos abstratos de espao
1. Representao computacional de dados geogrficos

geogrfico no referindo ao espao computacionalmente representado. Para


exemplificar, consideremos alguns problemas:
Uma cientista social deseja entender e quantificar o fenmeno da
excluso social numa grande cidade brasileira, atravs de mapas de
excluso/incluso social, gerados a partir de dados censitrios
(Sposati, 1996).
Uma ecloga pretende estudar os remanescentes florestais da Mata
Atlntica, atravs de estudos de fragmentao obtidos a partir de
interpretao de imagens de satlite (Pardini et al., 2005).
Uma pedloga pretende determinar a distribuio de propriedades
do solo numa rea de estudo, a partir de um conjunto de amostras
de campo (Bnisch et al., 2004).
O que h de comum nesses casos? A especialista lida com conceitos de
sua disciplina (excluso social, fragmentos, distribuio de propriedades do
solo) e precisa de representaes que traduzam estes conceitos para o
computador. Aps esta traduo, ela poder compartilhar os dados de seu
estudo, inclusive com pesquisadores de outras disciplinas.

1.2 Descrio geral de sistemas de informao geogrfica


O termo sistemas de informao geogrfica (SIG) aplicado para sistemas
que realizam o tratamento computacional de dados geogrficos. A
principal diferena de um SIG para um sistema de informao
convencional sua capacidade de armazenar tanto os atributos
descritivos como as geometrias dos diferentes tipos de dados geogrficos.
Assim, para cada lote num cadastro urbano, um SIG guarda, alm de
informao descritiva como proprietrio e valor do IPTU, a informao
geomtrica com as coordenadas dos limites do lote. A partir destes
conceitos, possvel indicar as principais caractersticas de SIGs:
Inserir e integrar, numa nica base de dados, informaes
espaciais provenientes de meio fsico-bitico, de dados censitrios,
de cadastros urbano e rural, e outras fontes de dados como imagens
de satlite, e GPS.
Oferecer mecanismos para combinar as vrias informaes, atravs
de algoritmos de manipulao e anlise, bem como para consultar,
recuperar e visualizar o contedo da base de dados geogrficos.

12
Descrio geral de sistemas de informao geogrfica

Os componentes de um SIG esto mostrados na Figura 1.1. No nvel


mais prximo ao usurio, a interface homem-mquina define como o
sistema operado e controlado. Esta interface pode ser tanto baseada na
metfora da mesa de trabalho (Kuhn e Frank, 1991) (Richards e
Egenhofer, 1995) (Cmara et al., 1999), como adaptada ao ambiente de
navegao da Internet (Kraak e Brown, 2001), quanto baseada em
linguagens de comando como Spatial SQL (Egenhofer, 1994) e LEGAL
(Cmara, 1995). No nvel intermedirio, um SIG deve ter mecanismos
de processamento de dados espaciais. A entrada de dados inclui os
mecanismos de converso de dados (Hohl, 1998). Os algoritmos de
consulta e anlise espacial incluem as operaes topolgicas (Egenhofer e
Franzosa, 1991), lgebra de mapas (Tomlin, 1990), estatstica espacial
(Druck et al., 2004), modelagem numrica de terreno (Li et al., 2004) e
processamento de imagens (Mather, 2004). Os mecanismos de
visualizao e plotagem devem oferecer suporte adequado para a
apreenso cognitiva dos aspectos relevantes dos dados pesquisado
(MacEachren, 2004) (Tufte, 1983) (Monmonier, 1993). No nvel mais
interno do sistema, um sistema de gerncia de bancos de dados geogrficos
oferece armazenamento e recuperao dos dados espaciais e seus
atributos. Cada sistema, em funo de seus objetivos e necessidades,
implementa estes componentes de forma distinta, mas todos os
subsistemas citados devem estar presentes num SIG.

Interface

Entrada e Integr. Consulta e Anlise Visualizao


Dados Espacial Plotagem

Gerncia Dados
Espaciais

Banco de Dados
Geogrfico

Figura 1.1- Arquitetura de sistemas de informao geogrfica.

13
1. Representao computacional de dados geogrficos

Do ponto de vista da aplicao, o uso de sistemas de informao


geogrfica (SIG) implica em escolher as representaes computacionais
mais adequadas para capturar a semntica de seu domnio de aplicao.
Do ponto de vista da tecnologia, desenvolver um SIG significa oferecer o
conjunto mais amplo possvel de estruturas de dados e algoritmos
capazes de representar a grande diversidade de concepes do espao.
Como o presente livro est focado nos diferentes aspectos relacionados
com a tecnologia de bancos de dados geogrficos, discutiremos em maior
detalhe a questo de gerncia de dados espaciais. Leitores interessados
nos demais aspectos de um SIG podero consultar as referncias acima.

1.3 Traduzindo a informao geogrfica para o computador


Para abordar o problema fundamental da Geoinformao, que a
produo de representaes computacionais do espao geogrfico, usamos o
paradigma dos quatro universos, proposto inicialmente por Gomes e Velho
(1995) e adaptado para a geoinformao por Cmara (1995). Este
paradigma distingue quatro passos entre o mundo real e sua realizao
computacional (ver Figura 1.2).

Figura 1.2 - Paradigma dos quatro universos.

No primeiro passo, nossas percepes do mundo real so


materializadas em conceitos que descrevem a realidade e respondem a
questes como: Que classes de entidades so necessrias para descrever o
problema que estamos estudando? (Smith, 2003). Criamos assim o universo
ontolgico, onde inclumos os conceitos da realidade a serem
representados no computador, como os tipos de solo, elementos de
cadastro urbano, e caracterizao das formas do terreno.
O segundo universo (o universo formal) inclui modelos lgicos ou
construes matemticas que generalizam os conceitos do universo
ontolgico e do resposta pergunta: Quais so as abstraes formais

14
Traduzindo a informao geogrfica para o computador

necessrias para representar os conceitos de nosso universo ontolgico? Estas


abstraes incluem modelos de dados e lgebras computacionais.
Exemplos: o modelo entidade-relacionamento (Chen, 1976) e o modelo
OMT (Rumbaugh et al., 1991). O caso especfico de modelos dados
geogrficos tratado em maior detalhe nos captulos 3 e 4 deste livro e
inclui o modelo OMT-G (Davis et al., 2002). A questo de linguagens
tratada no Captulo 5.
O terceiro universo o universo estrutural, onde as diversas entidades
dos modelos formais so mapeadas para estruturas de dados geomtricas
e alfanumricas, e algoritmos que realizam operaes. Neste universo,
respondemos a questes como: Quais so os tipos de dados e algoritmos
necessrios para representar os modelos e as lgebras do universo formal? As
estruturas de dados so os elementos bsicos de construo dos sistemas
computacionais, e sero discutidas em maior detalhe neste captulo.
Aspectos do universo estrutural descritos no livro incluem arquiteturas de
SGBD (Captulo 8), converso de dados (Captulo 9), interoperabilidade
(Captulo 10) e disseminao de dados na Internet (Captulo 11).
O universo de implementao completa o processo de representao
computacional. Neste universo, realizamos a implementao dos
sistemas, fazendo escolhas como arquiteturas, linguagens e paradigmas
de programao. Neste livro, as questes de implementao discutidas
incluem geometria computacional (Captulo 2), mtodos de acesso
(Captulo 6), processamento de consultas (Captulo 7), alm da descrio
detalhada da biblioteca TerraLib (captulos 12 a 14).
O paradigma dos quatro universos uma forma de compreendermos
que a transposio da realidade para o computador requer uma srie
complexa de mediaes. Primeiro, precisamos dar nomes s entidades da
realidade. Depois, geramos modelos formais que as descrevem de forma
precisa. A seguir, escolhemos as estruturas de dados e algoritmos que
melhor se adaptam a estes modelos formais. Finalmente, fazemos a
implementao num suporte computacional apropriado. Nas prximas
sees, examinaremos em detalhe cada um destes universos.

15
1. Representao computacional de dados geogrficos

1.4 O universo ontolgico


Ontologia o campo da filosofia cujo objetivo descrever os tipos e
estruturas de entidades, eventos, processos e relaes que existem no
mundo real (Smith, 2003). Sua gnese remonta a Aristteles, mas o
interesse recente por ontologias em sistemas de informao decorre
principalmente da necessidade de compartilhar informao de forma
eficiente para um pblico cada vez mais interdisciplinar.
Um sistema de informao pode ser concebido como um mecanismo
de comunicao entre duas partes: o produtor e o usurio. Para que
funcione, necessrio que haja uma concordncia entre os conceitos das
partes. Numa perspectiva mais geral, seu sucesso depende da existncia
de uma comunidade que compartilhe as definies utilizadas para
constru-lo. Por exemplo, considere o caso de um estudo sobre segregao
em reas urbanas. Existem diferentes conceitos de segregao na
literatura sociolgica (Caldeira, 2000) (Massey e Denton, 1993) (Torres,
2004) (White, 1983). Para construir um sistema de informao que
permita o estudo da segregao urbana, preciso que o produtor de
informao defina qual dos diferentes conceitos estar sendo
representado, como esta representao ser construda, e como o usurio
pode compreender as caractersticas e limitaes desta representao.
Deste modo, o problema fundamental de um sistema de informao
definir o conjunto de conceitos a ser representado. Se quisermos que
estes conceitos sejam compartilhados por uma comunidade
interdisciplinar, fundamental que os conceitos utilizados sejam
devidamente explicitados. Assim, surge a pergunta: Qual o papel dos
conceitos na representao do mundo? A melhor forma de responder
baseando-se na perspectiva realista (Searle, 1998):
1. A realidade existe independentemente das representaes
humanas.
2. Ns temos acesso ao mundo atravs de nossos sentidos e de nossos
instrumentos de medida.
3. As palavras em nossa linguagem podem ser usadas para referir-se a
objetos do mundo real.

16
O universo ontolgico

4. Nossas afirmaes so verdadeiras ou falsas dependendo de sua


correspondncia aos fatos do mundo.
5. Algumas afirmaes em nossa linguagem dizem respeito a uma
realidade externa e independente (h neve no topo do Monte
Evereste). Outras afirmaes dizem respeito a convenes
socialmente construdas (este papel uma certido de nascimento).
Como nos ensina Searle (1993), esta perspectiva tem conseqncias
importantes sobre nossa concepo do mundo:
Apesar de termos representaes mentais e lingsticas do mundo sob a
forma de crenas, experincias, afirmaes, teorias, etc., h um mundo, l
fora, totalmente independente destas representaes. A rbita elptica dos
planetas relativamente ao Sol e a estrutura do tomo de hidrognio so
inteiramente independentes das representaes que os seres humanos tm
de tais fenmenos. J coisas como o dinheiro, a propriedade, o casamento e
os governos so criados e sustentados pelo comportamento cooperativo
humano.
Na sua maior parte, o mundo existe independentemente da linguagem
(princpio 1) e uma das funes da linguagem representar como so as
coisas no mundo (princpio 3). Um aspecto crucial no qual a realidade e a
linguagem entram em contato marcado pela noo de verdade. Em
geral, as afirmaes so verdadeiras na medida em que representam com
preciso uma caracterstica da realidade que existe independentemente da
afirmao (princpio 4)..
O projeto de um sistema de informao requer, como passo inicial, a
escolha das entidades a ser representados e, se possvel, a descrio
organizada destas entidades por meio de conceitos. Esta descrio forma
uma ontologia de aplicao, definida como um conjunto de conceitos
compartilhados por uma comunidade (Gruber, 1995). Para os dados
geogrficos, uma geo-ontologia tem dois tipos bsicos de conceitos: (a)
conceitos que correspondem a fenmenos fsicos do mundo real; (b)
conceitos que criamos para representar entidades sociais e institucionais
(Smith e Mark, 1998) (Fonseca et al., 2003). Chamamos o primeiro tipo
de conceitos fsicos e o segundo de conceitos sociais (Tabela 1.1). Embora
todos os conceitos resultem do uso compartilhado da linguagem, h uma
diferena entre conceitos que se referem ao mundo fsico (A Amaznia

17
1. Representao computacional de dados geogrficos

possui uma floresta tropical) e aqueles que resultam de convenes


humanas (Esta uma reserva indgena).
Nossa geo-ontologia diferencia entre conceitos associados a entidades
que pode ser individualizadas e identificadas nominalmente (caso de
lagos e lotes) e aquelas que variam de forma contnua no espao (caso de
poluio).

Tabela 1.1 Tipos de conceitos associados a entidades geogrficas


Realidade fsica Realidade social
Entidades indivduos bona fide (e.g., indivduos fiat (e.g., lote)
individualizveis montanha)
Entidades com variao topografias fsicas (e.g., topografias sociais (e.g.,
contnua poluio) segregao)

Os conceitos fsicos podem ser subdivididos em:


Conceitos associados a entidades individualizveis, que possuem
uma fronteira bem definida a partir de diferenciaes qualitativas
ou descontinuidades na natureza. Designados como indivduos
bona fide (do latim boa f), sua existncia decorre de nossa
necessidade de dar nomes aos elementos do mundo natural. Por
exemplo, embora a a superfcie da Terra apresente uma variao
contnua no espao, nossa percepo do espao depende da
associao de nomes especiais a variaes bem definidas no
terreno. Da nascem conceitos como montanha, vale e desfiladeiro.
Conceitos associados a entidades que tem variao contnua no
espao, associadas aos fenmenos do mundo natural, no estando a
princpio limitadas por fronteiras. Chamamos estes conceitos de
topografias fsicas, onde o termo topografia est associado a
qualquer grandeza que varia continuamente. Exemplos incluem
temperatura, altimetria, declividade e poluio.

18
O universo ontolgico

Os conceitos sociais podem ser subdivididos em:


Conceitos que descrevem entidades individuais criadas por leis e
por aes humanas. Estas entidades possuem uma fronteira que as
distingue do seu entorno e tem uma identidade nica. Sua
existncia depende usualmente de um registro legal. Designadas
como indivduos fiat (do latim fazer), incluem conceitos como
lotes, municpios e pases.
Conceitos descrevendo entidades que tm variao contnua no
espao, associadas a convenes sociais. Tome-se o caso de pobreza,
conceito socialmente definido que ocorre no espao de forma
ininterrupta (em cada lugar h algum tipo diferente de pobreza).
Chamamos estes conceitos de topografias sociais. Exemplos
incluem: excluso social, segregao urbana, desenvolvimento
humano.
Uma geo-ontologia um conjunto de conceitos e um conjunto de
relaes semnticas e espaciais entre estes termos. Cada conceito tem um
nome, uma definio e um conjunto de atributos. O conjunto das
relaes semnticas inclui as relaes de sinonmia, similaridade, e
hiponmia (tambm dito especializao: hospital um tipo de prdio).
Por exemplo:
rio: Curso de gua natural, de extenso mais ou menos
considervel, que se desloca de um nvel mais elevado para outro
mais baixo, aumentando progressivamente seu volume at
desaguar no mar, num lago, ou noutro rio.
riacho: rio pequeno, mais volumoso que o regato e menos que a
ribeira
relao semntica: um riacho um rio. (hiponmia).
O conjunto de relaes espaciais inclui as relaes topolgicas como
pertinncia e adjacncia, relaes direcionais como ao norte de, e
relaes informais como no corao de ou perto de. Por exemplo:
afluente: curso de gua que desgua em outro curso de gua,
considerado principal.
relao espacial: um afluente est conectado a um rio.

19
1. Representao computacional de dados geogrficos

Na maior parte dos sistemas de informao atuais, as ontologias de


aplicao no esto explicitadas, o que reduz o potencial de
compartilhamento da informao. Com o advento da Internet, que
permite a disseminao de dados forma ampla e para um pblico
heterogneo, a necessidade de explicitar as ontologias utilizadas tornou-
se ainda mais premente. A explicitao das ontologias de aplicao est
na base das propostas recentes da Web Semntica (Berners-Lee et al.,
2001) e de propostas de padres como OWL. Como resultado de
pesquisas recentes, j temos vrios sistemas disponveis na Internet para
criao e gesto de ontologias, como o Proteg (Noy et al., 2001). Para
dados geogrficos, o consrcio OGC (Open Geospatial Consortium)
props o formato GML como mecanismo de descrio de ontologias
geogrficas. Fazemos uma descrio mais detalhada do tema nos
captulos 9 e 10 deste livro.

1.5 O universo formal


O universo formal representa um componente intermedirio entre os
conceitos do universo ontolgico e as estruturas de dados e algoritmos
computacionais. Como os computadores trabalham com estruturas
matemticas, a passagem direta de conceitos informais da ontologia de
aplicao para estruturas de dados poderia gerar decises inconsistentes.
No universo formal, buscamos estabelecer um conjunto de entidades
lgicas que agrupem os diferentes conceitos da ontologia de aplicao da
forma mais abrangente possvel. Adicionalmente, neste universo
definimos ainda como sero associados valores aos diferentes conceitos;
ou seja, como podemos medir o mundo real. Deste modo, o universo
formal tem duas partes: (a) como medir o mundo real (teoria da
medida); (b) como generalizar os conceitos da ontologia em entidades
formais abrangentes. Estas duas partes sero discutidas a seguir.
1.5.1 Atributos de dados geogrficos: teoria da medida
Para representar dados geogrficos no computador, temos de descrever
sua variao no espao e no tempo. Em outras palavras, precisamos poder
a perguntas como: qual o valor deste dado aqui e agora?. Isto requer
uma compreenso dos processos de mensurao da realidade, de forma
consistente com os dois primeiros princpios de Searle (1998): a

20
O universo formal

realidade existe independentemente das representaes humanas e ns temos


acesso ao mundo atravs de nossos sentidos e de nossos instrumentos de
medida. O processo de medida consiste em associar nmeros ou
smbolos a diferentes ocorrncias de um mesmo atributo, para que a
relao dos nmeros ou smbolos reflita as relaes entre as ocorrncias
mensuradas. Por exemplo, podemos medir a poluio numa cidade
atravs de sensores localizados em diferentes locais. Cada um destes
sensores nos dar uma medida diferente. Esta atribuio denominada
escala de medida. A referncia geral mais importante sobre escalas de
medidas o trabalho de Stevens (1946), que prope quatro escalas de
mensurao: nominal, ordinal, intervalo e razo.
Os nveis nominal e ordinal so temticos, pois a cada medida
atribudo um nmero ou nome associando a observao a um tema ou
classe. A escala nominal classifica objetos em classes distintas sem
ordem inerente, como rtulos que podem ser quaisquer smbolos. As
possveis relaes entre os valores so identidade (a = b) e dessemelhana
(a b). Um exemplo a cobertura do solo, com rtulos como floresta,
rea urbana e rea agrcola (ver Figura 1.3).

Figura 1.3 Exemplos de medida nominal (mapa geolgico) e medida


ordinal (mapa de classes de declividade).

21
1. Representao computacional de dados geogrficos

A escala ordinal introduz a idia de ordenao, caracterizando os


objetos em classes distintas que possuem uma ordem natural (por
exemplo 1 ruim, 2 bom, 3 timo ou 0-10%, 11-20%, mais que
20%). A distncia definida entre os elementos no significativa. Nesta
escala so evidenciadas as relaes < ou >, isto implica que para
todo a e b, as relaes a < b, a > b ou a = b so possveis. Um exemplo
a aptido agrcola de solos, com rtulos como muito apto, apto,
pouco apto, e inapto.
As medidas temticas no esto associadas magnitude do fenmeno.
Quando o estudo necessita de uma descrio mais detalhada, que
permita comparar intervalo e ordem de grandeza entre eventos, recorre-
se aos nveis de medidas denominados de numricos, onde as regras de
atribuio de valores baseiam-se em uma escala de nmeros reais.
Existem dois nveis de medidas baseados em escalas de nmeros reais:
escala por intervalo e o escala por razo. A escala por intervalo possui um
ponto zero arbitrrio, uma distncia proporcional entre os intervalos e
uma faixa de medidas entre [-,]. A temperatura em graus Celsius
exemplo de medida por intervalo, onde o ponto zero corresponde a uma
conveno (a fuso do gelo em gua). Por ter uma referncia zero
arbitrria, valores medidos no nvel por intervalo no podem ser usados
para estimar propores. Operaes aritmticas elementares (adio e
subtrao) so vlidas, porm multiplicao e diviso no so
apropriadas. Por exemplo, dados a e b, pode-se ter a = b + c, onde c a
diferena entre a e b em alguma unidade padro. Assim, a temperatura
em So Paulo pode ser c graus mais baixa do que a temperatura em
Campos de Jordo.
A escala de razo permite um tratamento mais analtico da informao,
pois nela o ponto de referncia zero no arbitrrio, mas determinado
por alguma condio natural. Sua faixa de valores limitada entre [0,].
Nesta escala existe um ponto zero absoluto que no pode ser alterado e
um intervalo arbitrrio com distncias proporcionais entre os intervalos.
Nmeros negativos no so permitidos, pois o nmero zero representa
ausncia total daquilo que est sendo medido. Por exemplo, na descrio
de atributos como peso e volume de objetos no h valores negativos. No
caso de temperatura em graus Kelvin, a condio natural o ponto de

22
O universo formal

repouso dos tomos da matria, a partir do qual no se consegue


temperaturas menores. Este ponto o zero absoluto para temperatura,
zero graus Kelvin. O fato de ponto de referncia zero ser absoluto
permite afirmaes tais como a duas vezes mais pesado que b. Desta
forma, dado a e b pode-se ter a = c x b, onde c indica o nmero de vezes
que b vai at a, a relao de a para b. Operaes matemticas de adio,
subtrao, multiplicao e diviso so suportadas nesta escala.
A Tabela 1.2 apresenta um resumo das escalas de medidas, destaca a
caracterstica principal, apresenta algumas operaes admitidas e
exemplos para cada uma delas.
Tabela 1.2 Tipos de medidas de dados geogrficos
Escala Caractersticas Exemplos Operaes possveis
Nominal Descrio Tipo de solo, vegetao, Seleo,
uso do solo Comparao
Ordinal Ordem Classes de declividade, Mediana, Mximo,
aptido de uso Mnimo
Intervalo Distncia Altimetria Diferena, Soma
Razo Valores Renda, populao, taxa de Operaes
absolutos natalidade aritmticas

1.5.2 Espao absoluto e espao relativo


Antes de considerar os diferentes modelos formais para dados
geogrficos, necessrio analisarmos brevemente os conceitos de espao
absoluto e espao relativo. Esta distino decorre da possibilidade de
representarmos no computador a localizao dos objetos no espao ou
apenas o posicionamento relativo entre eles, como ilustrado na Figura
1.4. Nesta figura, mostramos esquerda os distritos da cidade de So
Paulo, identificados por suas fronteiras. Neste caso, trata-se de uma
representao no espao absoluto, na qual as coordenadas das fronteiras
devem corresponder s estabelecidas na legislao. Do lado direito,
mostramos um grafo com as conexes dos distritos, que formam uma
rede (repetimos a imagem dos distritos por razes de melhor legibilidade

23
1. Representao computacional de dados geogrficos

da figura). No modelo de redes, a localizao exata de cada distrito no


armazenada, pois a rede s captura as relaes de adjacncia. Dizemos
ento que a rede de conexes dos distritos um modelo de espao relativo.

Figura 1.4 Dualidade entre espao absoluto e espao relativo. esquerda,


distritos de So Paulo com suas fronteiras. direita, grafo mostrando a rede
de conectividade entre os distritos (espao relativo). O mapa da esquerda foi
repetido por razes de melhor legibilidade.

A distino entre espao absoluto e espao relativo de grande


importncia para a Geografia. Milton Santos (Santos, 1985) refere-se ao
espao dos fixos e ao espao dos fluxos. Castells (1999) fala em
espao de lugares e espaos de fluxos. Vejam o que Helen Couclelis
comenta a respeito do tema:
Espao absoluto, tambm chamado cartesiano, um container de coisas e
eventos, uma estrutura para localizar pontos, trajetrias e objetos. Espao
relativo, ou leibnitziano, o espao constitudo pelas relaes espaciais
entre coisas (Couclelis, 1997).
Uma das escolhas bsicas que fazemos na modelagem dos fenmenos
geogrficos definir se utilizaremos representaes no espao absoluto
ou no espao relativo. Esta escolha depende primordialmente do tipo de
anlise que queremos realizar. Usualmente, consultas espaciais que
envolvem dois tipos de entidades (quais os rios que cruzam esta estao
ecolgica?) requerem a representao no espao absoluto. O mesmo vale

24
O universo formal

para questes de lgebra de mapas (reas inaptas tem declividade maior


que 15% ou solos arenosos). Quando os procedimentos de anlise
envolvem apenas as relaes de conectividade (como chegar na estao de
metr Clnicas, partindo da estao Liberdade? ou qual a mdia da
mortalidade infantil de meus vizinhos?) podemos utilizar representaes
no espao relativo. Quando falamos em entidades como estradas, linhas
de transmisso, conexes de gua e esgoto, cadeias de mercado e linhas
de comunicao, o espao relativo na maioria das vezes plenamente
adequado.
1.5.3 Modelos no espao absoluto: geo-campos e geo-objetos
Existem dois modelos formais para entidades geogrficos no espao
absoluto: geo-campos e geo-objetos. O modelo de geo-campos enxerga o
espao geogrfico como uma superfcie contnua, sobre a qual variam os
fenmenos a serem observados. Por exemplo, um mapa de vegetao
associa a cada ponto do mapa um tipo especfico de cobertura vegetal,
enquanto um mapa geoqumico associa o teor de um mineral a cada
ponto. O modelo de geo-objetos representa o espao geogrfico como
uma coleo de entidades distintas e identificveis, onde cada entidade
definida por uma fronteira fechada. Por exemplo, um cadastro urbano
identifica cada lote como um dado individual, com atributos que o
distinguem dos demais.
Definio 1.1. Geo-Campo. Um geo-campo representa um atributo
que possui valores em todos os pontos pertencentes a uma regio
geogrfica. Um geo-campo gc uma relao gc = [R, A, f], onde R 2
uma partio conexa do espao, A um atributo cujo domnio D(A),
e a funo de atributo f: R A tal que, dado p R, f(p) = a, onde a
D(A).
A noo de geo-campo decorre da definio fsica associada (segundo
o Aurlio, campo um conjunto de valores de uma grandeza fsica que,
numa regio do espao, dependem s das coordenadas dos pontos
pertencentes a essa regio). Em outras palavras, para cada ponto do
espao, um campo ter um valor diferente.
Definio 1.2 Geo-Objeto. Um geo-objeto uma entidade geogrfica
singular e indivisvel, caracterizada por sua identidade, suas fronteiras, e
seus atributos. Um geo-objeto uma relao go = [id, a1,...an, G], onde id
um identificador nico, G um conjunto de parties 2D conexas e

25
1. Representao computacional de dados geogrficos

distintas {R1,...,Rn} do espao 2, e ai so os valores dos atributos A1,...,


An. Note-se que um geo-objeto pode ser composto por diferentes
geometrias, onde cada geometria tem uma fronteira fechada (e.g., o Japo
com suas diferentes ilhas).
Um exemplo de geo-campo (uma imagem IKONOS da cidade do Rio
de Janeiro) e de um conjunto de geo-objetos (os distritos dessa cidade)
apresentado na Figura 1.5. A varivel associada imagem a reflectncia
do solo, medida pelo sensor ptico do satlite. Os geo-objetos associados
aos distritos de So Paulo so mostrados numa gradao de tons de
cinza, cuja intensidade proporcional ao ndice de excluso social
(Sposati, 1996); quanto mais escuro, mais o distrito possui moradores em
situao de excluso social. Os dados na Figura 1.3 acima (geologia e
declividade) tambm so exemplos de geo-campos.
A Figura 1.5 tambm ilustra uma questo importante: existem
diferenas fundamentais entre geo-campos e geo-objetos? Ou seriam apenas
duas maneiras de ver o mesmo tipo de dado? Considere os retngulos
desenhados no interior das duas representaes mostradas. Na figura
esquerda, o interior do retngulo tem as mesmas propriedades do geo-
campo que o contm. Para cada ponto interior ao retngulo, podemos
recuperar o valor do atributo (neste caso, a reflectncia da imagem).
Verificamos que uma partio espacial genrica de um geo-campo compe
outro geo-campo com as mesmas propriedades.

Figura 1.5 Exemplo de geo-campo (imagem IKONOS do Rio de Janeiro) e de


conjunto de geo-objetos (distritos da cidade de So Paulo).

26
O universo formal

Considere agora a figura da direita (distritos de So Paulo). O interior


do retngulo mostrado no define mais um conjunto de geo-objetos com
as mesmas propriedades do conjunto completo. O retngulo intercepta
parcialmente alguns objetos. Como cada objeto nico e no pode ser
dividido sem perder suas caractersticas originais, verificamos que uma
partio espacial genrica de um conjunto de geo-objetos no compe outro
conjunto de geo-objetos com as mesmas propriedades.
A diferena essencial entre um geo-campo e um geo-objeto o papel
da fronteira. A fronteira de um geo-campo uma diviso arbitrria
relacionada apenas com nossa capacidade de medida. Na Figura 1.5, os
limites da imagem correspondem apenas a eventuais limitaes do
instrumento sensor e no do fenmeno medido. Assim, o geo-campo
pode ser divido em partes e ainda assim manter sua propriedade essencial
(que sua funo de atributo).
Por contraste, um geo-objeto essencialmente definido por sua
fronteira, que o separa do mundo exterior; ele no pode ser dividido e
manter suas propriedades essenciais. Dentro da fronteira, todas as
propriedades do objeto so constantes. Tomemos um distrito de So
Paulo, como a S, que tem um cdigo nico de identificao no censo do
IBGE. Se dividirmos a S em duas partes, precisamos de dois novos
cdigos de identificao para caracterizar os dois novos distritos.
O exame da Figura 1.5 ilustra outra propriedade dos geo-objetos.
bastante comum lidarmos com um conjunto de geo-objetos que
representam uma partio consistente do espao; isto , os recobrimentos
espaciais destes objetos no se interceptam e eles possuem o mesmo
conjunto de atributos. Estas caractersticas fazem com que possamos
agrupar estes objetos numa coleo.
Definio 1.3 Coleo de geo-objetos. Uma coleo de geo-objetos
relao cgo = [id, o1,...on, A1,..., An], onde id um identificador nico, e
o1,...on so geo-objetos que possuem os atributos A1,..., An. Usualmente, se
Ri for a regio geogrfica associada a oi, temos Ri Rj = , i j.
Deste modo, uma coleo rene geo-objetos cujas fronteiras no se
interceptam, e tm o mesmo conjunto de atributos.
O uso de colees de geo-objetos bastante freqente em bancos de
dados geogrficos, pois muito conveniente tratar geo-objetos similares

27
1. Representao computacional de dados geogrficos

de forma consistente. Por exemplo, falamos dos distritos da cidade de So


Paulo, dos municpios do estado do Cear, e das reservas indgenas da
Amaznia. A idia de colees de geo-objetos ainda til para
propormos um modelo orientado-a-objetos para dados geogrficos,
discutido a seguir.
1.5.4 Modelos no espao relativo: redes
O modelo de redes concebe o espao geogrfico como um conjunto de
pontos no espao (chamados de ns), conectados por linhas (chamados
arcos), onde tanto os ns quanto os arcos possuem atributos. Os
fenmenos modelados por redes incluem fluxo de pessoas ou materiais,
conexes de influncia, linhas de comunicao e acessibilidade. Um dos
atrativos do modelo de redes que o suporte matemtico para este
modelo (a teoria de grafos) uma rea de pesquisa consolidada (Bondy e
Murty, 1976) (Gross e Yelen, 1998).
O problema que deu incio teoria dos grafos foi uma questo
espacial. Em 1736, o matemtico Leonard Euler vivia na cidade de
Knigsberg (na poca parte da Prssia; hoje chamada Kaliningrad e
pertencente Rssia) onde haviam duas ilhas prximas no meio da
cidade, cruzadas por sete pontes (ver Figura 1.6 esquerda). Euler se
perguntou se havia uma maneira de fazer um circuito fechado (sair e
voltar para um mesmo lugar), cruzando cada uma das pontes apenas
uma vez. Ele construiu um grafo equivalente (ver Figura 1.6 direita) e
demonstrou que o problema era insolvel.

Figura 1.6 As sete pontes de Knigsberg e o grafo equivalente.

28
O universo formal

Definio 1.4 Redes. Uma rede uma estrutura geogrfica que tem
como suporte um grafo G = [N, A, ], onde N um conjunto de ns, A
um conjunto de arcos (arestas), e (a)=(u,v) uma funo de
incidncia que associa cada arco a A a um par de ns (u, v) N. No
caso geogrfico, os ns podem estar associados a uma localizao (x,y) do
espao para fins de referncia.
Como os ns de uma rede so abstraes de entidades existentes no
espao, eles podem estar associados aos seus atributos descritivos. Por
exemplo, na rede mostrada na Figura 1.4, cada n est associado a um
distrito de So Paulo, e poderia ter diferentes atributos que descrevem
este distrito. Tambm os arcos de uma rede podem ter propriedades,
como o custo de percorrimento de um n a outro. As propriedades
mensurveis das redes incluem operaes diretas computveis sobre a
topologia do grafo, como qual o caminho timo entre dois ns. Tambm
podemos computar operaes matemticas que envolvem apenas as
relaes de conectividade, como os indicadores locais de autocorrelao
espacial (veja-se a respeito, Druck et al, 2004).
A definio de redes pode ser estendida para considerar o caso de
conexes bidirecionais, como no caso de redes de transporte, onde as
relaes entre os ns no so simtricas, pois os fluxos em sentidos
opostos podem ser diferentes. A Figura 1.7 ilustra uma rede simples e
uma rede com conexes bidirecionais.

Figura 1.7 Exemplos de redes simples e de redes com conexes bidirecionais.

29
1. Representao computacional de dados geogrficos

Os modelos de rede tm grande utilidade em problemas de


geoinformao, incluindo assuntos como gerenciamento de servios
como gua, esgoto, eletricidade e telefonia. Para maiores referncias,
deve-se consultar Birkin et al (1996) e Godin (2001).
1.5.5 Um modelo orientado-a-objetos para dados geogrficos
As sees anteriores nos permitem apresentar um modelo orientado-a-
objetos que apresenta uma verso unificada dos dados geogrficos, com
base nos conceitos bsicos de geo-campo, coleo de geo-objetos e rede. Para
fins de organizao lgica, o modelo considera a existncia de uma classe
genrica, chamada de plano de informao (ou layer), que uma
generalizao destes dois conceitos. O conceito de plano de informao
captura uma caracterstica comum essencial dos trs conceitos bsicos:
cada instncia deles referente a uma localizao no espao e tem um
identificador nico. Assim, o uso do conceito de plano de informao
permite organizar o banco de dados geogrfico e responder a perguntas
como: Quais so os dados presentes no banco, qual o modelo associado a
cada um e qual a regio geogrfica associada? Adicionalmente, como cada
geo-campo est associado a uma nica funo de atributo, ele pode ser
especializado em geo-campo temtico (associado a medidas nominais ou
ordinais) e geo-campo numrico (associados a medidas por intervalo ou
por razo). Com estes seis conceitos, construmos um modelo formal
bsico para dados geogrficos, mostrado na Figura 1.8.

Figura 1.8 Modelo OO bsico para dados geogrficos.

30
Do universo ontolgico ao universo formal

O modelo mostrado na Figura 1.8 serve de base para a maioria dos


modelos de dados orientados-a-objetos adotados atualmente em
geoinformao:
O software SPRING (Cmara et al., 1996) inclui os conceitos de
rede, geo-campo numrico e geo-campo temtico, coleo de geo-
objetos (chamada de mapa cadastral). Os geo-campos numricos
admitem as imagens como caso particular.
No ArcGIS (ESRI, 2000), a coleo de geo-objetos chamada de
features (feies). Os geo-campos numricos so chamados de
surfaces (superfcies), e as imagens tambm so modeladas como
caso particular de geo-campos numricos. As redes (networks)
tambm so includas.
No modelo OpenGIS (OGC, 1998), os geo-campos so chamados
de coverage, e a coleo de objetos chamada de feature collection.
O modelo OpenGIS no tem o conceito explcito de layer, mas
considera que as vises de feature collection e coverage so
complementares.
Na TerraLib (vide Captulo 12 deste livro), o conceito de plano de
informao (layer) um conceito usado para organizar a
informao no banco de dados. Os conceitos de geo-campos e de
colees de geo-objetos so implcitos. Como se trata de uma
biblioteca, os designers da TerraLib quiseram permitir diferentes
alternativas de projeto de sistema.

1.6 Do universo ontolgico ao universo formal


Para passar do universo ontolgico para o universo formal, precisamos
responder pergunta: como os conceitos da ontologia de aplicao so
formalizados? Colocando o problema de forma mais geral: Que critrios
deve satisfazer um conceito para que seja utilizvel em estudos quantitativos
associados geoinformao? Tais critrios so:
O conceito deve ser passvel de ser associado a propriedades
mensurveis.
Estas propriedades devem ser medidas no territrio e devem
permitir diferenciar as diferentes localizaes.

31
1. Representao computacional de dados geogrficos

Os resultados quantitativos e os modelos matemticos utilizados


devem ser validados em estudos de campo, que devem incluir
dimenses objetivas e subjetivas do fenmeno em questo.
Para representar um conceito genrico como excluso social,
precisamos definir precisamente quais atributos caracterizam a excluso
social e como podemos medi-los no territrio. Esta caracterizao realiza
a passagem do universo ontolgico para o universo formal. Com base em
conceitos bem estabelecidos e associados a medidas quantitativas no
espao, podemos construir territrios digitais. O processo pode ser
resumido na Figura 1.9.
Domnios do Conhecimento

Modelos
Teorias Inferenciais

Hipteses
Conceitos
Qualitativos Testveis

Territrios
Digitais

Figura 1.9 Relao entre a construo dos territrios digitais e as teorias


disciplinares (cortesia de Silvana Amaral Kampel).
Os especialistas desenvolvem teorias gerais sobre os fenmenos, que
incluem o estabelecimento de conceitos organizadores de sua pesquisa
(como excluso ou vulnerabilidade). Para passar destas teorias para a
construo computacional, necessrio que o especialista formule
modelos inferenciais quantitativos. Estes modelos devem ser submetidos
a testes de validao e de corroborao, atravs dos procedimentos de
anlise quantitativa. Os resultados numricos podem ento dar suporte
ou ajudar a rejeitar conceitos qualitativos.
Aps definir como que atributos mensurveis sero associados ao
conceito, o projetista do sistema de informao dever decidir se este
conceito ser modelado no espao absoluto ou no espao relativo. A deciso
deve-se dar essencialmente em funo das propriedades que queremos

32
Universo estrutural

medir. Se a localizao exata fundamental, ou se precisamos saber o


valor do fenmeno em todos os pontos da regio de estudo, ento
necessrio usar os modelos de espao absoluto. Se o fluxo e as conexes
so essenciais, ento podemos usar o modelo de rede.
Se precisamos dos dados expressos no espao absoluto, ento devemos
escolher ainda qual o modelo apropriado (geo-campo ou geo-objeto).
Para isto, a deciso depende essencialmente do papel da fronteira. Se as
fronteiras so parte essencial das entidades modeladas, estamos tratando
com indivduos e no com topografias (vide Tabela 1.1) e o modelo de
geo-objetos o mais adequado. Seno, usaremos os modelos de geo-
campos.

1.7 Universo estrutural


As estruturas de dados utilizadas em bancos de dados geogrficos podem
ser divididas em duas grandes classes: estruturas vetoriais e estruturas
matriciais.
1.7.1 Estruturas de dados vetoriais
As estruturas vetoriais so utilizadas para representar as coordenadas
das fronteiras de cada entidade geogrfica, atravs de trs formas bsicas:
pontos, linhas, e reas (ou polgonos), definidas por suas coordenadas
cartesianas, como mostrado na Figura 1.10.

Figura 1.10 Representaes vetoriais em duas dimenses.


Um ponto um par ordenado (x, y) de coordenadas espaciais. O ponto
pode ser utilizado para identificar localizaes ou ocorrncias no espao.
So exemplos: localizao de crimes, ocorrncias de doenas, e
localizao de espcies vegetais. Uma linha um conjunto de pontos

33
1. Representao computacional de dados geogrficos

conectados. A linha utilizada para guardar feies unidimensionais. De


uma forma geral, as linhas esto associadas a uma topologia arco-n,
descrita a seguir. Uma rea (ou polgono) a regio do plano limitada por
uma ou mais linhas poligonais conectadas de tal forma que o ltimo
ponto de uma linha seja idntico ao primeiro da prxima. Observe-se
tambm que a fronteira do polgono divide o plano em duas regies: o
interior e o exterior. Os polgonos so usados para representar unidades
espaciais individuais (setores censitrios, distritos, zonas de
endereamento postal, municpios). Para cada unidade, so associados
dados oriundos de levantamentos como censos e estatsticas de sade.
1.7.2 Vetores e topologia: o caso dos geo-objetos
A topologia a parte da matemtica na qual se investigam as
propriedades das configuraes que permanecem invariantes nas
transformaes de rotao, translao e escala. No caso de dados
geogrficos, til ser capaz de determinar relaes como adjacncia
(vizinho de), pertinncia (vizinho de), interseco, e cruzamento.
Objetos de rea podem ter duas formas diferentes de utilizao: como
objetos isolados ou objetos adjacentes. O caso de objetos isolados
bastante comum em SIG urbanos, e ocorre no caso em que os objetos da
mesma classe em geral no se tocam. Por exemplo, edificaes, piscinas, e
mesmo as quadras das aplicaes cadastrais ocorrem isoladamente, no
existindo segmentos poligonais compartilhados entre os objetos.
Finalmente, temos objetos adjacentes, e os exemplos tpicos so todas as
modalidades de diviso territorial: bairros, setores censitrios, municpios
e outros. Neste caso, pode-se ter o compartilhamento de fronteiras entre
objetos adjacentes, gerando a necessidade por estruturas topolgicas.
Estes tambm so os casos em que recursos de representao de buracos e
ilhas so mais necessrios.
Quando queremos armazenar as estruturas de dados do tipo polgono
no caso de objetos adjacentes, temos uma deciso bsica a tomar:
guardamos as coordenadas de cada objeto isoladamente, e assim
duplicamos as fronteiras em comum com outros objetos, ou
armazenamos cada fronteira comum uma nica vez, indicando a que
objetos elas esto associadas? No primeiro caso chamado de polgonos
sem topologia e o segundo, de topologia arco-n-polgono, comparados na
Figura 1.11.

34
Universo estrutural

Figura 1.11 Polgonos sem topologia ( esquerda) e topologia arco-n-


polgono ( direita). (Fonte: Ravada, 2003).

Figura 1.12 Topologia arco-n-polgono.


A topologia arco-n-polgono, como mostrado na Figura 1.12, requer
trs listas separadas. Os pontos inicial e final de cada linha so chamados
de ns. Para cada n, armazenamos as linhas nele incidentes. Para cada
linha, armazenamos os ns inicial e final, permitindo assim que a linha
esteja associada a um sentido de percorrimento; guardamos ainda os dois
polgonos separados por cada linha ( esquerda e direita, considerando
o sentido de percorrimento). Para cada polgono, guardamos as linhas
que definem sua fronteira.
1.7.3 Vetores e topologia: o caso das redes
Objetos de linha podem ter variadas formas de utilizao.
Analogamente aos objetos de rea, podemos ter objetos de linha isolados,

35
1. Representao computacional de dados geogrficos

em rvore e em rede. Objetos de linha isolados ocorrem, por exemplo, na


representao de muros e cercas em mapas urbanos. Objetos de linha
organizados em uma rvore podem ser encontrados nas representaes
de rios e seus afluentes, e tambm em redes de esgotos e drenagem
pluvial. E podem ser organizados em rede, nos casos de redes eltricas,
telefnicas, de gua ou mesmo na malha viria urbana e nas malhas
rodoviria e ferroviria.
No caso das redes, fundamental armazenar explicitamente as
relaes de adjacncia, utilizamos a topologia arco-n. Um n pode ser
definido como o ponto de interseco entre duas ou mais linhas,
correspondente ao ponto inicial ou final de cada linha. Nenhuma linha
poder estar desconectada das demais para que a topologia da rede possa
ficar totalmente definida. Para exemplificar, considere-se a Figura 1.13,
que mostra um exemplo de como a topologia arco-n pode ser
armazenada.

Figura 1.13 Estrutura de dados para topologia arco-n no Oracle Spatial


SGBD (Fonte: Ravada, 2003).

1.7.4 Vetores e topologia: o caso dos dados 2,5 D


Uma das possibilidades associadas a dados vetoriais a associao de
valores que denotem a variao espacial de uma grandeza numrica. No
caso mais simples, associamos a cada localizao no espao um valor
numrico de atributo. Neste caso, como os valores de localizao esto no
plano e o valor adicional descreve uma superfcie sobre este plano. Os

36
Universo estrutural

dados resultantes so chamados de dimenso dois e meio, pois no se


tratam estritamente de dados tridimensionais, pois o suporte espacial
ainda so localizaes 2D. A Figura 1.14 ilustra exemplo de dados de
dimenso 2,5.

Figura 1.14 Exemplo de dado com dimenso 2,5 (cortesia de Renato


Assuno).
A maneira mais comum de armazenar estes dados atravs de
estruturas matriciais (vide prxima seo). Temos trs alternativas que
usam estruturas vetoriais:
Conjunto de amostras esparsas 2,5D, constitudo de pares
ordenados (x,y,z), onde (x,y) uma localizao no plano e z um
valor numrico de atributo.
Conjunto de isolinhas (curvas de nvel), que so linhas s quais
esto associados valores numricos. As isolinhas no se cruzam, e
so entendidas como estando empilhadas umas sobre as outras.
A malha triangular ou TIN (do ingls triangular irregular
network) uma estrutura do tipo vetorial com topologia do tipo
n-arco e representa uma superfcie atravs de um conjunto de
faces triangulares interligadas.
A malha triangular a estrutura vetorial mais utilizada para
armazenar dados 2,5D. Cada um dos trs vrtices da face do tringulo
armazenados as coordenadas de localizao (x, y) e o atributo z, com o
valor de elevao ou altitude. Em geral, nos SIGs que possuem pacotes
para MNT, os algoritmos para gerao da malha triangular baseiam-se
na triangulao de Delaunay com restrio de regio. Quanto mais
equilteras forem as faces triangulares, maior a exatido com que se
descreve a superfcie. O valor de elevao em qualquer ponto dentro da

37
1. Representao computacional de dados geogrficos

superfcie pode ser estimado a partir das faces triangulares, utilizando-se


interpoladores. A Figura 1.15 mostra uma superfcie tridimensional e a
grade triangular correspondente.

Figura 1.15 Superfcie e malha triangular correspondente. (cortesia de Larcio


Namikawa ).

1.7.5 Hierarquia de representaes vetoriais


Para um entendimento mais detalhado das representaes vetoriais
em GIS, deve-se inicialmente precisar o que se entende por primitivas
geomtricas: coordenadas 2D, coordenadas 2,5D, n 2D, n 2,5D, n de
rede, arcos, arcos orientados, isolinhas e polgonos. Dada uma regio R
2, pode-se definir:
COORDENADA_2D - Uma coordenada 2D um objeto composto
por uma localizao singular (xi, yj) R;
COORDENADA_2,5D - Uma coordenada 2,5D um objeto
composto por uma localizao singular (xi, yj, z), onde (xi, yj) R;
PONTO2D - Um ponto 2D um objeto que possui atributos
descritivos e uma coordenada 2D;
LINHA2D - Uma linha 2D possui atributos e inclui um conjunto de
coordenadas 2D;
ISOLINHA - uma isolinha contm uma linha 2D associada a um
valor real (cota);
ARCO ORIENTADO - um arco orientado contm uma linha 2D
associada a uma orientao de percorrimento;

38
Universo estrutural

N2D - um n 2D inclui uma coordenada2D (xi, yi) R e uma lista


L de linhas 2D (trata-se da conexo entre duas ou mais linhas,
utilizada para manter a topologia da estrutura);
N REDE - um n de rede contm um n 2D e uma lista de arcos
orientados;
N 2,5D - um n 2,5D instncia desta classe contm uma
coordenada 2,5D (xi, yi, zi) e um lista L de linhas 2D (trata-se da
conexo entre trs ou mais linhas de uma grade triangular);
POLGONO - um polgono pode ser armazenado como uma lista de
coordenadas 2D (caso dos geo-objetos sem topologia) ou por uma
uma lista de linhas 2D e uma lista de ns 2D (caso de topologia
arco-n-polgono).
Uma vez definidas as primitivas geomtricas vetoriais, pode ser
estabelecida a hierarquia de representaes geomtricas vetoriais, como
mostrado na Figura 1.16, onde distinguem-se os relacionamentos de
especializao -um (is-a), incluso de uma instncia parte-de (part-
of), incluso de um conjunto de instncias conjunto-de (set-of) e
incluso de uma lista de identificadores de instncias lista-de (list-of).

Figura 1.16 Hierarquia de classes para estruturas vetoriais.

39
1. Representao computacional de dados geogrficos

Distinguimos os seguintes tipos de estruturas de dados vetoriais:


CONJUNTO DE PONTOS 2D - uma instncia desta classe um
conjunto de pontos 2D utilizados para guardar localizaes
isoladas no espao (p.ex. no caso de poos de petrleo);
CONJUNTO DE ISOLINHAS - uma instncia desta classe um
conjunto de linhas, onde cada linha possui uma cota e as linhas
no se interceptam;
SUBDIVISO PLANAR - para uma regio geogrfica R qualquer, uma
subdiviso planar contm um conjunto Pg de polgonos que no se
sobrepem;
GRAFO ORIENTADO - uma instncia desta classe uma
representao composta de um conjunto de n de rede e de um
conjunto de arco orientado 2D;
MALHA TRIANGULAR - uma instncia desta classe contm um
conjunto de ns 2,5D e um conjunto L de linhas 2D tal que todas
as linhas se interseptam, mas apenas em seus pontos iniciais e
finais;
MAPA PONTOS 2,5D - uma instncia desta classe um conjunto de
coordenadas 2,5D. Trata-se de um conjunto de amostras 2,5D.
1.7.6 Representao matricial
As estruturas matriciais usam uma grade regular sobre a qual se
representa, clula a clula, o elemento que est sendo representado. A
cada clula, atribui-se um cdigo referente ao atributo estudado, de tal
forma que o computador saiba a que elemento ou objeto pertence
determinada clula. Nesta representao, o espao representado como
uma matriz P(m, n) composto de m colunas e n linhas, onde cada clula
possui um nmero de linha, um nmero de coluna e um valor
correspondente ao atributo estudado e cada clula individualmente
acessada pelas suas coordenadas.
A representao matricial supe que o espao pode ser tratado como
uma superfcie plana, onde cada clula est associada a uma poro do
terreno. A resoluo do sistema dada pela relao entre o tamanho da
clula no mapa ou documento e a rea por ela coberta no terreno, como
mostrado na Figura 1.17.

40
Universo estrutural

Figura 1.17 Estrutura matricial.


A estrutura matricial pode ser utilizada para representar diferentes
tipos de dados:
Grade regular: representao matricial de dimenso dois e meio
na qual cada elemento da matriz est associado a um valor
numrico, como mostra a Figura 1.18 esquerda.
Matriz temtica: representao matricial 2D na qual cada valor da
matriz um cdigo correspondente uma classe do fenmeno
estudado, como mostra a Figura 1.18 direita.

Figura 1.18 esquerda, grade regular com valores de temperatura em graus


Celsius e, direita, matriz temtica com dados classificados (1 = 15-20 graus,
2 = 20-25 graus, 3 = 25-35 graus).

41
1. Representao computacional de dados geogrficos

1.7.7 Espaos celulares: generalizao de estruturas matriciais


Um espao celular uma estrutura matricial generalizada onde cada
clula est associada a vrios tipos de atributos. Os espaos celulares tm
vrias vantagens sobre estruturas matriciais simples. Usando matrizes
com um nico atributo (como o caso dos dados mostrados na Figura
1.18), um fenmeno espao-temporal complexo precisa de vrias
matrizes separadas para ser representado, o que resulta em maior
dificuldade de gerncia e de interface. Num espao celular, a mesma
clula est associada a diferentes informaes, com ganhos significativos
de manuseio dos dados.
Os espaos celulares so muito convenientes para armazenamento em
bancos de dados objeto-relacionais. Toda a estrutura de um espao
celular pode ser armazenada numa nica tabela, o que faz o manuseio
dos dados ser bem mais simples que os dados vetoriais ou mesmo que os
dados matriciais indexados. Aplicaes como lgebra de mapas e
modelagem dinmica ficam mais simples de implementar e operar. Um
exemplo de espao celular mostrado na Figura 1.19, onde mostramos
uma parte de um banco de dados onde h um espao celular onde a
Amaznia foi dividida em clulas de 25 x 25 km2; cada uma delas est
associada a diferentes atributos socioeconmicos e ambientais (na Figura
1.19, o atributo visualizado umidade mdia nos trs meses mais secos
do ano). Os espaos celulares ainda no so estruturas de dados comuns
nos bancos de dados geogrficos, e atualmente apenas a TerraLib tem
suporte para este tipo de estrutura (vide Captulo 12). Com a nfase
crescente dos SIG em modelos dinmicos, podemos prever que esta
estrutura ser futuramente amplamente disponvel nas diferentes
implementaes de bancos de dados geogrficos.

42
Do universo formal para o universo estrutural

Figura 1.19 Espao celular com a Amaznia dividida em clulas de 25 x 25


km2; o atributo visualizado umidade mdia nos trs meses mais secos do ano
(cortesia: Ana Paula Dutra de Aguiar).

1.8 Do universo formal para o universo estrutural


A passagem do universo formal (geo-campos, geo-objetos e redes) para o
universo estrutural no unvoca. Para cada tipo de entidade do modelo
formal, h diferentes possibilidades de uso de estruturas de dados, a saber:
Geo-objetos: como as fronteiras so elementos essenciais, so
usualmente armazenados em estruturas poligonais, com as opes
polgonos sem topologia ou topologia arco-n-polgono.
Redes: como a topologia parte essencial, as redes devem ser
armazenadas como um grafo orientado.
Geo-campos numricos: podem ser armazenados como amostras
2,5D, malhas triangulares ou grades regulares.
Geo-campos temticos: admitem o armazenamento como estruturas
vetoriais (polgonos) ou matriciais (matrizes temticas).

43
1. Representao computacional de dados geogrficos

Os diferentes compromissos de armazenamento para as entidades do


modelo formal so discutidos a seguir. Note-se que um espao celular
(discutido na seo 1.7.7) pode guardar uma combinao arbitrria de
geo-campos numricos e temticos.
1.8.1 Estruturas de dados para geo-objetos
A escolha entre estruturas topolgicas ou no-topolgicas para geo-
objetos em bancos de dados geogrficos depende tambm do suporte
oferecido pelo SGBD. Nos SIG cujas estruturas de dados geomtricas so
manuseadas fora do SGBD (como o SPRING e o Arc/Info), comum a
escolha da topologia arco-n-polgono. No caso dos bancos de dados
geogrficos, a maneira mais simples de armazenar geo-objetos
guardando cada um deles separadamente, o que implica em estruturas
no-topolgicas. Esta forma de trabalho foi sancionada pelo consrcio
Open GIS e suportada pelos diferentes SGBDs (Oracle, PostgreSQL,
mySQL). No entanto, vrias aplicaes requerem o uso da topologia
arco-n-polgono, e alguns SGBDs com suporte espacial j esto
incluindo esta opo, com o Oracle Spatial (Ravada, 2003).
1.8.2 Estruturas de dados para geo-campos temticos
Geo-campos temticos admitem tanto a representao matricial
quanto a vetorial. Para a produo de cartas e em operaes onde se
requer maior preciso, a representao vetorial mais adequada. As
operaes de lgebra de mapas so mais facilmente realizadas no formato
matricial. No entanto, para um mesmo grau de preciso, o espao de
armazenamento requerido por uma representao matricial
substancialmente maior. Isto ilustrado na Figura 1.20.

44
Do universo formal para o universo estrutural

Figura 1.20 Geo-campo temtico em estruturas vetorial e matricial.

A Tabela 1.3 apresenta uma comparao entre as vantagens e


desvantagens de armazenamento matricial e vetorial para geo-campos
temticos. Esta comparao leva em conta os vrios aspectos:
relacionamentos espaciais, anlise, armazenamento. Nesta tabela, o
formato mais vantajoso para cada caso apresentado em destaque.
O armazenamento de geo-campos temticos em estruturas vetoriais
uma herana da cartografia, onde limites entre classes temticas eram
desenhados com preciso em mapas. No entanto, sabemos que estes
limites so imprecisos, na grande maioria dos casos. Assim, como nos
ensina Peter Burrough, as estruturas matriciais so mais adequadas:

Os limites desenhados em mapas temticos (como solo, vegetao, ou


geologia) raramente so precisos e desenha-los como linhas finas
muitas vezes no representa adequadamente seu carter. Assim, talvez
no nos devamos preocupar tanto com localizaes exatas e
representaes grficas elegantes. Se pudermos aceitar que limites
precisos entre padres de vegetao e solo raramente ocorrem, ns
estaramos livres dos problemas de erros topolgicos associados como
superposio e interseo de mapas(Burrough, 1986).

45
1. Representao computacional de dados geogrficos

Tabela 1.3 Comparao entre estruturas vetoriais e matriciais para


mapas temticos
Aspecto Vetorial Matricial
Armazenamento Por coordenadas (mais Requer mais espao de
eficiente) armazenamento
Algoritmos Problemas com erros Processsamento mais rpido
geomtricos e eficiente.
Escalas de trabalho Adequado tanto a Mais adequado para
grandes quanto a pequenas escalas (1:25.000 e
pequenas escalas menores)
Anlise, Simulao e Representao indireta Representa melhor
Modelagem de fenmenos contnuos fenmenos com variao
lgebra de mapas contnua no espao
limitada Simulao e modelagem
mais fceis

1.8.3 Estruturas de dados para geo-campos numricos


Para geo-campos numricos, a escolha bsica se d entre malhas
triangulares e grades regulares. As demais estruturas de dados (amostras
2,5D e isolinhas) so formatos intermedirios, utilizados para entrada ou
sada de dados, mas no adequadas para anlise.
As malhas triangulares so normalmente melhores para representar a
variao do terreno, pois capturam a complexidade do relevo sem a
necessidade de grande quantidade de dados redundantes. As grades
regulares tm grande redundncia em terrenos uniformes e dificuldade
de adaptao a relevos de natureza distinta no mesmo mapa, por causa
da grade de amostragem fixa.
Para o caso de variveis geofsicas e para operaes como visualizao
3D, as grades regulares so preferveis, principalmente pela maior
facilidade de manuseio computacional. A Tabela 1.4 resume as principais
vantagens e desvantagens de grades regulares e malhas triangulares.

46
Universo de implementao

Tabela 1.4 Estruturas para geo-campos numricos


Malha triangular Grade regular
Vantagens Melhor representao de relevo Facilita manuseio e
complexo converso
Incorporao de restries como Adequada para dados no-
linhas de crista altimtricos
Problemas Complexidade de manuseio Representao relevo
complexo
Clculo de declividade

1.8.4 Representaes computacionais de atributos de objetos


Entende-se por atributo qualquer informao descritiva (nomes,
nmeros, tabelas e textos) relacionada com um nico objeto, elemento,
entidade grfica ou um conjunto deles, que caracteriza um dado
fenmeno geogrfico. Nos bancos de dados geogrficos, os atributos de
objetos geogrficos so armazenados em relaes convencionais. As
representaes geomtricas destes objetos podem ser armazenadas na
mesma tabela que os atributos ou em tabelas separadas, mas ligadas por
identificadores nicos. Estes aspectos so discutidos em maior detalhe
nos captulos 3, 5, e 8 deste livro.

1.9 Universo de implementao


No universo de implementao, so tomadas as decises concretas de
programao e que podem admitir nmero muito grande de variaes.
Estas decises podem levar em conta as aplicaes s quais o sistema
voltado, a disponibilidade de algoritmos para tratamento de dados
geogrficos e o desempenho do hardware. Neste livro, aspectos do
universo de implementao so tratados em diferentes captulos:
Os algoritmos de geometria computacional para problemas como
ponto-em-polgono, simplificao de linhas e interseco de linhas
e polgonos so tratados no Captulo 2.

47
1. Representao computacional de dados geogrficos

Os problemas de indexao espacial, que representam um


componente determinante no desempenho total do sistema, so
abordados no Captulo 6.
As questes de processamento e otimizao de consultas espaciais
so discutidas no Captulo 7.
Uma discusso detalhada dos SGBDs com suporte espacial
apresentada no Captulo 8.
Os Captulos 12 a 14 apresentam a biblioteca TerraLib, um
ambiente para construo de aplicativos geogrficos.

1.10 Leituras suplementares


Este captulo apresentou uma viso geral dos diferentes aspectos
envolvidos com a representao computacional dos dados geogrficos,
que o grande objetivo dos bancos de dados geogrficos. Para uma viso
geral de geoinformao sob o ponto de vista da Cincia da Computao,
a referncia mais atualizada Worboys e Duckham (2004). O livro de
Druck et al (2004) apresenta uma discusso sobre as questes de anlise
espacial de dados geogrficos. Sobre o tema de bancos de dados
geogrficos, os livros de Rigaux et al (2002) e Shekar e Chawla (2002) so
leituras complementares a este livro. A coletnea editada por Sellis et al
(2003) apresenta um conjunto de artigos excelentes sobre os problemas
emergentes de bancos de dados espao-temporais.

48
Leituras suplementares

Referncias

BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web.


Scientific American, v. May, 2001.
BIRKIN, M.; CLARKE, G.; CLARKE, M. P.; WILSON, A. Intelligent GIS :
Location Decisions e Strategic Planning. New York: John Wiley, 1996.
BONDY, J. A.; MURTY, U. S. R. Graph Theory with Applications. London:
The Macmillan Press LTD, 1977.
BNISCH, S.; ASSAD, M. L.; CMARA, G.; MONTEIRO, A. M.
Representao e Propagao de Incertezas em Dados de Solos: I - Atributos
Numricos. Revista Brasileira de Cincia do Solo, v. 28, n.1, p. 33-47, 2004.
BURROUGH, P. Principles of Geographical Information Systems for Land
Resources Assessment. Oxford, England, Oxford University Press, 1986.
CALDEIRA, T. Cidade de Muros: Crime, Segregao e Cidadania em So
Paulo (City of Walls: Crime, Segregation e Citizenship in Sao Paulo). So
Paulo: Edusp, 2000.
CMARA, G. Modelos, Linguagens e Arquiteturas para Bancos de Dados
Geogrficos.So Jos dos Campos, SP: Instituto Nacional de Pesquisas
Espaciais (INPE), 1995.Ph.D., 1995.
CMARA, G.; SOUZA, R.; FREITAS, U.; GARRIDO, J. SPRING: Integrating
Remote Sensing e GIS with Object-Oriented Data Modelling. Computers e
Graphics, v. 15, n.6, p. 13-22, 1996.
CMARA, G. S., R.C.M.; MONTEIRO, A.M.V.; PAIVA, J.A.C; GARRIDO, J.
Handling Complexity in GIS Interface Design. In: I Brazilian Workshop on
Geoinformatics. SBC, Campinas, SP, 1999.
CASTELLS, M. A Sociedade em Rede. So Paulo: Paz e Terra, 1999.
CHEN, P. S. S. The Entity-Relationship Model: Towards a Unified View of
Data. ACM Transactions on Database Systems, v. 1, n.1, p. 9-36, 1976.
COUCLELIS, H. From Cellular Automata to Urban Models: New Principles
for Model Development e Implementation. Environment e Planning B:
Planning e Design, v. 24, p. 165-174, 1997.
DAVIS, C.; BORGES, K.; LAENDER, A. OMT-G: An Object-Oriented Data
Model for Geographic Applications. GeoInformatica, v. 3, n.1, 2002.
DRUCK, S.; CARVALHO, M. S.; CMARA, G.; MONTEIRO, A. M. V.
Anlise Espacial de Dados Geogrficos. Braslia: EMBRAPA (ISBN 85-
7383-260-6), 2004.

49
1. Representao computacional de dados geogrficos

EGENHOFER, M. Spatial SQL: A Query e Presentation Language. IEEE


Transactions on Knowledge e Data Engineering, v. 6, n.1, p. 86-95, 1994.
EGENHOFER, M.; FRANZOSA, R. Point-Set Topological Spatial Relations.
International Journal of Geographical Information Systems, v. 5, n.2, p.
161-174, 1991.
ESRI, 2000, Modelling Our World : The ESRI Guide to Geodatabase Design,
Redlands, CA.
FONSECA, F.; DAVIS, C.; CAMARA, G. Bridging Ontologies e Conceptual
Schemas in Geographic Applications Development. Geoinformatica, v. 7,
n.4, p. 355-378, 2003.
GINZBURG, C. Olhos de Madeira: Nove Reflexes sobre a Distncia. So
Paulo: Companhia das Letras, 2001.
GODIN, L. GIS in Telecommunications. Redlands, CA: ESRI Press, 2001.
GOMES, J.; VELHO, L. Abstraction Paradigms for Computer Graphics. The
Visual Computer, v. 11, n.5, p. 227-239, 1995.
GROSS, J.; YELLEN, J. Graph Theory e Its Applications. Boca Raton, FL:
CRC Press, 1998.
GRUBER, T. R. Toward Principles for the Design of Ontologies Used for
Knowledge Sharing. Int. Journal of Human-Computer Studies, v. 43, p.
907-928, 1995.
HOHL, P. GIS Data Conversion: Strategies, Techniques, e Management.
Clifton Park, NY: OnWorld Press, 1998.
KRAAK, M.-J.; BROWN, A., eds., 2001, Web Cartography. London, Taylor e
Francis.
KUHN, W.; FRANK, A., 1991. A Formalization of Metaphors e Image-
Schemas in User Interfaces. In: MARK, D.; FRANK, A., eds., Cognitive e
Linguistic Aspects of Geographic Space: Dordrecht, Kluwer Academic
Publishers, p. 419-434.
LI, Z.; ZHU, Q.; GOLD, C. Digital Terrain Modeling: Principles e
Methodology. London: Taylor e Francis, 2004.
MACEACHREN, A. M. How Maps Work : Representation, Visualization, e
Design. New York: Guilford Press, 2004.
MASSEY, D. S.; DENTON, N. A. American Apartheid: Segregation e the
Making of the Underclass. Cambridge: Harvard University Press, 1993.
MATHER, P. M. Computer Processing of Remotely-Sensed Images : An
Introduction (3rd ed). New York: John Wiley, 2004.

50
Leituras suplementares

MONMONIER, M. Mapping It Out: Expository Cartography for the


Humanities e Social Sciences. Chicago: University of Chicago Press, 1993.
NOY, N. F.; SINTEK, M.; DECKER, S.; CRUBEZY, M.; FERGERSON, R.
W.; MUSEN, M. A. Creating Semantic Web Contents with Protege-2000.
IEEE Intelligent Systems, v. 16, n.2, p. 60-71, 2001.
OGC, 1998, The OpenGIS Specification Model: The Coverage Type e Its
Subtypes, Wayland, MA, Open Geospatial Consortium.
PARDINI, R.; SOUZA, S.; BRAGANETO, R.; METZGER, J.-P. The role of
forest structure, fragment size e corridors in maintaining small mammal
abundance e diversity in an Atlantic forest landscape. Biological
Conservation, v. 124, p. 253-266, 2005.
RAVADA, S. Topology Management in Oracle Spatial 10g. Dagstuhl Seminar
on Computational Cartography e Spatial Modelling, 2003.
http://www.dagstuhl.de/03401/Materials/.
RICHARDS, J.; EGENHOFER, M. A Comparison of Two Direct-
Manipulation GIS User Interfaces for Map Overlay. Geographical Systems,
v. 2, n.4, p. 267-290, 1995.
RIGAUX, P.; SCHOLL, M.; VOISARD, A. Spatial Databases with
Application to GIS. San Francisco: Morgan Kaufman, 2002.
RUMBAUGH, J.; BLAHA, M.; PREMERLANI, W.; EDDY, F.;
LORENSEN, W. Object-Oriented Modeling e Design. Englewood Cliffs,
NJ: Prentice-Hall, 1991.
SANTOS, M. Espao e Mtodo. So Paulo: Nobel, 1985.
SEARLE, J. R. Rationality e Realism, What is at Stake? Ddalus, v. 122, n.4,
1993.
SEARLE, J. R. Mind, Language e Society. New York: Basic Books, 1998.
SELLIS, T.; FRANK, A. U.; GRUMBACH, S.; GUTING, R. H.;
KOUBARAKIS, M., eds., 2003, Spatio-Temporal Databases: The
Chorochronos Approach: Berlin, Springer.
SHEKHAR, S.; CHAWLA, S. Spatial Databases: A Tour. New York:
Prentice-Hall, 2002.
SMITH, B., 2003. Ontology e Information Systems. In: ZALTA, E. N., ed.,
The Stanford Encyclopedia of Philosophy. The Metaphysics Research Lab,
Center for the Study of Language e Information.: Stanford, Stanford
University.

51
1. Representao computacional de dados geogrficos

SMITH, B.; MARK, D. Ontology e Geographic Kinds. In: International


Symposium on Spatial Data Handling. Vancouver, Canada, 1998. p. 308-
320.
SPOSATI, A. Mapa de Excluso/Incluso Social de So Paulo. So Paulo:
EDUC, 1996.
STEVENS, S. S. On the theory of scales of measurement. Science, v. 103,
n.2684, p. 677-680, 1946.
TOMLIN, C. D. Geographic Information Systems e Cartographic Modeling.
Englewood Cliffs, NJ: Prentice-Hall, 1990.
TORRES, H. Segregao residencial e polticas pblicas: So Paulo na dcada
de 1990 (Spatial segregation e public policies: So Paulo in the 1990s).
Revista Brasileira de Cincias Sociais (Brazilian Social Sciences Journal),
v. 54, p. 41-56, 2004.
TUFTE, E. The Visual Display of Quantitative Information. Chesire, CT:
Graphics Press, 1983.
WHITE, M. J. The measurement of spatial segregation. American Journal of
Sociology, v. 88, p. 1008-1018, 1983.
WORBOYS, M. F.; DUCKHAM, M. GIS - A Computing Perspective (2nd
edition). Boca Raton: CRC Press, 2004.

52
2 Algoritmos geomtricos e relacionamentos topolgicos

Clodoveu A. Davis Jr.


Gilberto Ribeiro de Queiroz

2.1 Introduo
Este captulo apresenta uma introduo s principais tcnicas e
algoritmos utilizados na implementao das diversas funes de um
sistema de gerncia de bancos de dados espaciais (SGBDE), em especial
as operaes sobre representaes vetoriais (pontos, linhas e polgonos),
que esto subjacentes a situaes tpicas, tais como:
Seleo por apontamento, em que um usurio seleciona um
determinado objeto atravs da interface grfica;
Determinao do relacionamento espacial entre dois objetos, tanto
para consultas quanto para o estabelecimento de restries de
integridade espaciais no banco de dados;
Criao de mapas de distncia (buffer zones) e soluo de
problemas de proximidade;
Sobreposio e aritmtica de polgonos para operaes de anlise
espacial.
Essas operaes so alvo de estudo de uma rea da Cincia da
Computao conhecida como Geometria Computacional (Preparata e
Shamos, 1985), que procura desenvolver e analisar algoritmos e
estruturas de dados para resolver problemas geomtricos diversos. Neste
particular, tem um ponto importante de contato com a rea de projeto e
anlise de algoritmos, uma vez que tambm procura caracterizar a
dificuldade de problemas especficos, determinando a eficincia
computacional dos algoritmos e usando tcnicas de anlise de
2. Algoritmos geomtricos e relacionamentos topolgicos

complexidade assinttica (Knuth, 1973). Existe tambm uma


preocupao em desenvolver solues para problemas clssicos de
geometria, construindo estruturas mais apropriadas para a representao
geomtrica robusta no ambiente computacional, que tem limitaes
conhecidas quanto preciso numrica e a capacidade de
armazenamento de dados (Schneider, 1997).

2.2 Definies
Em um SGBDE, cada objeto vetorial codificado usando um ou mais
pares de coordenadas, o que permite determinar sua localizao. Para
entender melhor a maneira como os SGBDE tratam a informao
vetorial, so relacionadas a seguir algumas definies fundamentais
(Davis Jr., 1997). Como na maioria dos SGBDE, as definies
consideram apenas duas dimenses.
Ponto: um ponto um par ordenado (x, y) de coordenadas
espaciais.
Reta e segmento de reta: Sejam p1 e p2 dois pontos distintos no
plano. A combinao linear . p1 + ( 1 ) p2 , onde qualquer
nmero real, uma reta no plano. Quando 0 1 , se tem um
segmento de reta no plano, que tem p1 e p2 como pontos extremos.
A definio de reta e segmento estritamente geomtrica, e nos
interessa uma definio mais aplicada. Assim, partimos para o
conceito de linha poligonal, que composta por uma seqncia de
segmentos de reta. O mais comum, no entanto, definir a linha
poligonal atravs da seqncia dos pontos extremos de seus
segmentos, ou seja, seus vrtices.
Linha poligonal: Sejam v 0 , v1 ,K , v n 1 n pontos no plano. Sejam
s0 = v 0 v1 , s1 = v1v 2 ,K , sn 2 = v n 2 v n 1 uma seqncia de n - 1
segmentos, conectando estes pontos. Estes segmentos formam uma
poligonal L se, e somente se, (1) a interseo de segmentos
consecutivos apenas o ponto extremo compartilhado por eles (i.e.,
si si +1 = vi +1 ), (2) segmentos no consecutivos no se
interceptam (i.e., si s j = para todo i, j tais que j i + 1 ), e
(3) v 0 v n 1 , ou seja, a poligonal no fechada.

54
Definies

Observe, na definio da linha poligonal, a excluso da possibilidade


de auto-interseo. Os segmentos que compem a poligonal s se tocam
nos vrtices. Formalmente, poligonais que no obedecem a este critrio
so chamadas poligonais complexas. Estas poligonais podem criar
dificuldades na definio da topologia e em operaes como a criao de
buffers (vide Seo 2.8).
Polgono: Um polgono a regio do plano limitada por uma linha
poligonal fechada.
A definio acima implica que, apenas invertendo a condio (3) da
definio de linha poligonal, temos um polgono. Assim, tambm aqui
no permitida a interseo de segmentos fora dos vrtices, e os
polgonos onde isto ocorre so denominados polgonos complexos. Os
mesmos comentrios que foram feitos para poligonais valem para os
polgonos. Observe-se tambm que o polgono divide o plano em duas
regies: o interior, que convencionalmente inclui a fronteira (a poligonal
fechada) e o exterior.
Estas trs entidades geomtricas bsicas podem ser definidas em uma
linguagem de programao usando tipos abstratos de dados. Essa
definio inclui tipos abstratos para retngulos e para segmentos, que so
bastante teis nos testes preliminares de alguns algoritmos geomtricos.
No foi definido um tipo abstrato especfico para polgonos, uma vez que
correspondem a poligonais em que o primeiro e o ltimo vrtices
coincidem. Para as poligonais, foi includa no tipo uma varivel
1
Retngulo, para armazenar os limites do objeto segundo cada eixo .
estrutura Ponto
incio
inteiro x;
inteiro y;
fim;
estrutura Segmento
incio
Ponto p1;

1
Este retngulo usualmente denominado retngulo envolvente mnimo (REM), e o
menor retngulo com lados paralelos aos eixos que contm o objeto em questo.

55
2. Algoritmos geomtricos e relacionamentos topolgicos

Ponto p2;
fim;
estrutura Retngulo
incio
inteiro x1;
inteiro y1;
inteiro x2;
inteiro y2;
fim;
estrutura Poligonal
incio
inteiro numPontos;
Retngulo retnguloEnvolventeMnimo;
Ponto[] vertice;
fim;
Programa 2.1 - Tipos abstratos de dados para Ponto, Retngulo e Poligonal.

2.3 Algoritmos bsicos


Diversos problemas de geometria computacional utilizam resultados
bsicos de problemas mais simples em sua soluo. Alguns destes
resultados bsicos vm da anlise geomtrica do mais simples dos
polgonos, e o nico que sempre plano: o tringulo.
2.3.1 rea de um tringulo
A determinao da rea de um tringulo uma das operaes mais
bsicas empregadas por outros algoritmos. Ela calculada como a
metade da rea de um paralelogramo (Figura 2.1) (Figueiredo e
Carvalho, 1991). O produto vetorial dos vetores A e B determina a rea
(S) do paralelogramo com os lados A e B e, portanto, a rea do tringulo
ABC (que corresponde metade do paralelogramo) pode ser computada
a partir da seguinte equao:
xa ya 1
1 1
S = xb yb 1 = ( xa yb ya xb + ya xc xa yc + xb yc yb xc ) (2.1)
2 2
xc yc 1

56
Algoritmos bsicos

Figura 2.1 - rea do tringulo abc.


A Equao 2.1 fornece outra informao muito til para os algoritmos
de geometria computacional: a orientao dos trs pontos que formam o
tringulo. Caso a rea seja negativa, os pontos a, b e c encontram-se no
sentido horrio; se positiva, os pontos encontram-se no sentido anti-
horrio; e se for zero, indica que os trs pontos so colineares (esto
alinhados).
2.3.2 Coordenadas baricntricas
Para determinar se um determinado ponto pertence ou no a um
tringulo, utiliza-se um mtodo baseado em coordenadas baricntricas
(Figueiredo e Carvalho, 1991). De acordo com esse mtodo, cada ponto p
do plano pode ser escrito na forma p = 1 p1 + 2 p2 + 3 p3 , onde 1, 2 e
3 so nmeros reais e 1 + 2 + 3 = 1 . Os coeficientes 1, 2 e 3 so
denominados coordenadas baricntricas de p em relao a p1, p2 e p3.
Os valores de 1, 2 e 3 podem ser obtidos usando a regra de Cramer,
e expressos em termos de reas de tringulos cujos vrtices so p, p1, p2 e
p3. Temos, portanto:
S ( pp2 p3 ) S ( p1 pp3 ) S ( p1 p2 p)
1 = , 2 = e 3 =
S ( p1 p2 p3 ) S ( p1 p2 p3 ) S ( p1 p2 p3 )

A anlise do sinal das coordenadas baricntricas indica a regio do


plano em que se encontra p, em relao ao tringulo p1p2p3 (Figura 2.2).
Observe-se que, para isso, as reas devem ser orientadas, ou seja, com
sinal.

57
2. Algoritmos geomtricos e relacionamentos topolgicos

1>0

3 0
=
2<0
3<0 1>0
2<0
3>0
p1

1=0 1<0
1>0 2<0
1>0
2>0
2>0 2 =0 3>0
3>0 p3
3<0

p2 1<0
2>0
3>0
1<0
2>0
3<0

Figura 2.2 - Sinais das coordenadas baricntricas.

2.3.3 Interseo de retngulos


Diversos algoritmos de geometria computacional se beneficiam de
estratgias de implementao que procuram evitar, tanto quanto possvel,
o uso de procedimentos computacionalmente caros. Assim, os problemas
so geralmente resolvidos em duas etapas: uma em que a representao
geomtrica dos objetos envolvidos simplificada, e outra, executada
apenas se necessrio, em que a representao completa empregada.
O uso do retngulo envolvente mnimo (REM) uma dessas
estratgias. O REM o menor retngulo com lados paralelos aos eixos
coordenados que contm a geometria do objeto. Por exemplo, antes de
executar o algoritmo de determinao da interseo entre dois polgonos,
comparamos seus REM diretamente. Caso os REM tenham alguma
interseo, possvel que os polgonos se interceptem, e portanto o
algoritmo completo precisa ser executado (Figura 2.3a); caso contrrio,
certo que no existe interseo entre os objetos, e portanto a soluo o
conjunto vazio (Figura 2.3b).

58
Algoritmos bsicos

Figura 2.3 (a) Interseo dos REMs (b) REMs disjuntos.


O programa 2.2 ilustra este teste.
funo interseoRetngulos(Ponto A, Ponto B, Ponto C, Ponto
D): booleano
incio
Ponto P, Ponto Q, Ponto P1, Ponto Q1;
P.x = min(A.x, B.x);
P.y = min(A.y, B.y);
Q.x = max(A.x, B.x);
Q.y = max(A.y, B.y);
P1.x = min(C.x, D.x);
P1.y = min(C.y, D.y);
Q1.x = max(C.x, D.x);
Q1.y = max(C.y, D.y);
retorne ((Q.x >= P1.x) e (Q1.x >= P.x) e
(Q.y >= P1.y) e (Q1.y >= P.y));
fim.

Programa 2.2 Interseo de retngulos envolventes mnimos.

2.3.4 Interseo de dois segmentos de reta


Dados dois segmentos a e b, formados pelos pontos p1p2 e p3p4 (Figura
2.4), respectivamente, deseja-se verificar se eles se interceptam. A soluo
consiste em testar se os pontos p1 e p2 esto de lados opostos do segmento
formado por p3p4 e tambm se p3 e p4 esto de lados opostos do segmento
formado por p1p2. Este problema se conecta com o problema da rea de
tringulo, pois, determinar se p3 est do lado oposto de p4 em relao ao
segmento p1p2, consiste em avaliar o sinal da rea dos tringulos formados
por p1p2p3 e p1p2p4. Se os sinais forem contrrios, significa que os pontos

59
2. Algoritmos geomtricos e relacionamentos topolgicos

esto de lados opostos. Se o mesmo for verdadeiro para os tringulos


p3p4p1 e p3p4p2, ento, com certeza podemos afirmar que as retas que
passam pelos segmentos se interceptam em algum ponto, embora no se
possa afirmar ainda que os segmentos tm interseo.

Figura 2.4 Segmentos que se interceptam.


Em Saalfeld (1987) discutida uma forma de determinar o ponto de
interseo entre dois segmentos baseada na representao paramtrica
dos segmentos2. Dados dois segmentos formados pelos pontos p1p2 e p3p4,
respectivamente, e com p1 = (x1, y1), p2 = (x2, y2), p3 = (x3, y3) e p4 = (x4,
y4), o ponto de interseo entre eles dado por:
p1 + u ( p 2 p1 ) = p3 + v( p 4 p3 ) (2.2)
Esta igualdade d origem a um sistema com duas equaes e duas
incgnitas (u e v):
xint er sec ao = x1 + u(x2 x1 ) ou xint er sec ao = x3 + v(x 4 x 3 )
(2.3)
yint er sec ao = y1 + u( y2 y1 ) ou yint er sec ao = y3 + v( y4 y3 )
Desenvolvendo o sistema temos:
( x x3 )( y1 y 3 ) ( y 4 y 3 )( x1 x3 )
u= 4 (2.4)
( y 4 y 3 )( x 2 x1 ) ( x 4 x3 )( y 2 y1 )
( x x1 )( y1 y 3 ) ( y 2 y1 )( x1 x3 )
v= 2 (2.5)
( y 4 y 3 )( x 2 x1 ) ( x 4 x3 )( y 2 y1 )
Calculados os parmetros u e v, podemos determinar o ponto de
interseo:

2
A equao paramtrica para um segmento de coordenadas p1 e p2 dada por:
p = p1 + u( p2 p1 ) , onde se 0 < u < 1 define um ponto localizado entre p1 e p2.

60
Algoritmos bsicos

xint er sec ao = x1 + u ( x 2 x1 ) ou xint er sec ao = x3 + v( x 4 x3 )


(2.6)
y int er sec ao = y1 + u ( y 2 y1 ) ou y int er sec ao = y 3 + v( y 4 y 3 )
As expresses de u e v, respectivamente 2.4 e 2.5, possuem
interpretaes importantes. Os denominadores so os mesmos, e,
portanto, numa implementao computacional eles devero ser
calculados uma nica vez. Se o denominador for zero, as duas linhas so
paralelas. Se alm do denominador os numeradores de ambos os
parmetros tambm forem zero, ento as duas linhas so coincidentes.
Na verdade, as equaes paramtricas aplicam-se a linhas e, portanto, s
haver interseo entre os dois segmentos em um ponto localizado sobre
ambos, o que significa valores de u e v ambos no intervalo [0,1].
2.3.5 rea de polgonos
A rea de um polgono pode ser calculada em tempo linear com relao
ao nmero de vrtices, usando um somatrio simples, baseado na soma
de reas de tringulos formados entre cada par de vrtices consecutivos e
a origem do sistema de coordenadas (O'Rourke, 1998):
1 i = n1
A( P) = ( xi + xi +1 ) ( yi +1 yi ) (2.7)
2 i =0
Observe que na expresso acima (Equao 2.7), quando se tem i = n
- 1, necessrio ter xn = x0 e yn = y0. Como no caso dos tringulos, o sinal
da rea obtida de acordo com esta frmula indica a orientao dos
vrtices do polgono. Caso o resultado seja positivo, os vrtices esto
ordenados no sentido anti-horrio, e caso seja negativo os vrtices
encontram-se no sentido horrio.
2.3.6 Centride de um polgono
O centro de gravidade ou centro de massa, mais conhecido como centride
de um polgono pode ser obtido a partir da sua diviso em tringulos,
calculando em seguida a mdia ponderada dos centros de gravidade dos
tringulos usando suas reas como peso. O centro de gravidade de cada
tringulo simplesmente a mdia das coordenadas de seus vrtices, ou
seja, para um tringulo ABC:

61
2. Algoritmos geomtricos e relacionamentos topolgicos

x A + x B + xC y + y B + yC
xG = e yG = A
3 3

Embora este processo seja relativamente simples, pressupe-se a


implementao de um algoritmo de triangulao de polgonos. Os
centrides dos tringulos so combinados usando um processo de mdia
ponderada pela rea. Assim, o centride de um polgono formado por
dois tringulos T1 e T2, cujos centrides so, respectivamente, (xG1, yG1) e
(xG2, yG2) o ponto (xG, yG), onde
x S(T ) + xG 2 S(T2 ) y S(T ) + yG 2 S(T2 )
xG = G1 1 yG = G1 1
S(T1 ) + S(T2 ) S(T1 ) + S(T2 )

e o centride do polgono pode ser determinado de maneira incremental,


adicionando um tringulo e seu centride por vez e calculando as
coordenadas do centride do conjunto.
No entanto, existe uma soluo mais simples e independente da
triangulao, e que leva em conta tringulos com reas positivas e
negativas, como no clculo da rea do polgono. O mesmo processo de
mdia ponderada pela rea pode ser usado, considerando todos os
tringulos formados entre um ponto fixo, por exemplo (0, 0), e cada par
de vrtices sucessivos, (vi, vi+1).
Assim, temos que:
1 n1
A( P) = ( xi yi +1 yi xi +1 )
2 i =0
n1

( x i +1 + xi ) ( xi yi +1 yi xi +1 )
xC = i =0
(2.8)
3 A( P)
n1

( y i +1 + yi ) ( xi yi +1 yi xi +1 )
yC = i =0
3 A( P)
O resultado pode ser facilmente implementado em um algoritmo com
complexidade O(n), que naturalmente pode fornecer ao mesmo tempo a

62
Algoritmos bsicos

rea do polgono. Mas apesar da simplicidade do processo, no existe


garantia de que o centride ser um ponto pertencente ao polgono. Caso
seja necessrio encontrar um ponto interno a um polgono simples dado,
pode-se utilizar o seguinte processo, que busca precisamente identificar
rapidamente uma diagonal do polgono (O'Rourke, 1998):
identificar um vrtice convexo vi (por exemplo, o vrtice inferior
mais direita)
para cada outro vrtice vj do polgono verificar:
se vj estiver dentro do tringulo vi-1vivi+1, ento calcular a distncia
vivj
armazenar vj em q se esta distncia for um novo mnimo
ao final do processo, se algum ponto interior a vi-1vivi+1 for
encontrado, ento o ponto mdio do segmento qvi interior ao
polgono; seno, ento o ponto mdio do segmento vi-1vi+1 (ou
mesmo o centride do tringulo vi-1vivi+1) interior ao polgono.
Outras definies de centride consideram que o mesmo se situa
aproximadamente no centro do polgono (Laurini e Thompson, 1992).
O centride pode ser determinado por diversos processos, como o centro
do retngulo envolvente mnimo, o centro de um crculo inscrito ou
circunscrito ao polgono. Uma forma freqentemente usada para
determinar um centride consiste em simplesmente obter a mdia das
coordenadas x e y dos vrtices (Figura 2.5).

Figura 2.5 Centrides calculados pela mdia (M) e como centro de


gravidade (G).

63
2. Algoritmos geomtricos e relacionamentos topolgicos

2.4 Ponto em polgono


Uma das operaes mais comuns em um SIG determinar se um ponto
est no interior de um polgono. Um dos algoritmos mais populares para
soluo deste problema o teste do nmero de cruzamentos entre os
segmentos que formam a fronteira do polgono e uma semi-reta
(chamada de raio), que parte do ponto testado em qualquer direo
(Haines, 1994) (Taylor, 1994). Se o nmero de cruzamentos for par, o
ponto encontra-se fora do polgono; se for mpar, encontra-se dentro. A
Figura 2.6 ilustra a idia desse teste. Conforme pode ser observado, o raio
que parte do ponto Q, que est dentro do polgono, cruza os segmentos
da fronteira um nmero mpar de vezes (3 vezes).

Figura 2.6 Ponto em polgono.


Apesar da aparente simplicidade desse algoritmo, a sua
implementao deve considerar alguns casos particulares (casos
degenerados), como:
a semi-reta passa por uma aresta do polgono (Figura 2.7a);
a semi-reta passa por um vrtice do polgono (Figura 2.7b);
o ponto Q est sobre a fronteira do polgono (Figura 2.7c);
o ponto Q coincide com um vrtice do polgono (Figura 2.7d).

64
Ponto em polgono

P P

(a) (b)

P P

Q
(c) (d)

Figura 2.7 Ponto em polgono : casos degenerados.


Para estes casos, a soluo est em adotar um critrio para a contagem
de intersees de modo que:
se a reta passa por um vrtice, a interseo deve ser considerada
apenas se for o vrtice com maior ordenada do segmento, e
ignorada caso contrrio;
se a reta passa por um segmento do contorno do polgono,
nenhuma interseo deve ser considerada;
se o ponto Q pertence a um segmento do contorno (exceto pontos
extremos), considerar como uma interseo.
O caso em que Q coincide com um vrtice pode ser tratado pelo
primeiro critrio. O terceiro critrio faz com que todos os pontos da
fronteira sejam considerados como pertencentes ao polgono.
Esse algoritmo possui complexidade linear em relao ao nmero de
vrtices do polgono. Para uma anlise mais aprofundada do problema, o
leitor convidado a ler os trabalhos de Huang e Shih (1997) e Haines
(1994).

65
2. Algoritmos geomtricos e relacionamentos topolgicos

2.5 Simplificao de poligonais


Muitas entidades do mundo real podem ser modeladas como linhas ou,
mais genericamente, poligonais3. Essas entidades so freqentes em bases
de dados geogrficas, onde correspondem tipicamente a cerca de 80% do
volume de dados vetoriais (McMaster e Shea, 1992). Por isso, o problema
de simplificao de linhas particularmente importante, sendo estudado
intensivamente desde os anos 60, quando ocorreram as primeiras
experincias com o uso de instrumentos de transcrio de mapas para o
computador, como a mesa digitalizadora.
No processo de digitalizao de linhas, freqentemente so
introduzidos vrtices em excesso, vrtices que, se descartados, no
provocariam uma alterao visual perceptvel na poligonal. Assim, um
primeiro objetivo para algoritmos de simplificao de linhas limpar
(significativamente, o verbo utilizado em ingls weed, capinar) a
poligonal de pontos claramente desnecessrios, do ponto de vista de sua
visualizao (Weibel, 1995), mantendo a qualidade de sua aparncia
grfica (Peucker, 1975) (Beard, 1991).
Outro objetivo o de gerar uma nova verso da linha, mais adequada
para a representao do mesmo fenmeno geogrfico em outra escala,
menor que a original. Neste caso, est sendo obtida uma generalizao da
linha (McMaster, 1992). Em uma extenso deste enfoque, existe o
interesse em organizar os vrtices da poligonal de tal forma que seja
possvel produzir, dinamicamente, verses generalizadas adequadas para
uma escala definida no momento da visualizao (van Oosterom, 1993)
(van Oosterom e Schenkelaars, 1995), conseguindo portanto gerar
mltiplas representaes geomtricas para o mesmo fenmeno sem
introduzir dados redundantes. No entanto, a utilizao de mtodos e
algoritmos desenvolvidos originalmente apenas pensando na reduo do
nmero de vrtices da linha podem no ser adequados para alcanar o
objetivo de generalizao (Laurini e Thompson, 1992), em geral por no

3
Deste ponto em diante, ser utilizado o termo poligonal, em lugar de simplesmente
linha, para evitar confuso com a definio geomtrica da linha reta (infinita).

66
Simplificao de poligonais

conseguirem uma boa representao geomtrica4, e portanto devem ser


analisados cuidadosamente quanto a este aspecto.
Assim, o problema de simplificao de linhas consiste em obter uma
representao mais grosseira (formada por menos vrtices, e portanto mais
compacta) de uma poligonal a partir de uma representao mais refinada,
atendendo a alguma restrio de aproximao entre as duas
representaes. Essa restrio pode ser definida de vrias maneiras (Li e
Openshaw, 1992), mas em geral alguma medida da proximidade
geomtrica entre as poligonais, tais como o mximo deslocamento
perpendicular permitido (Figura 2.8a) ou o mnimo deslocamento
angular permitido (Figura 2.8b). Na Figura 2.8a, o vrtice 2 ser
mantido, uma vez que a distncia entre ele e a reta que passa pelos
vrtices 1 e 3 superior permitida. Na Figura 2.8b, o vrtice 3 ser
eliminado, uma vez que o ngulo 324 $ menor que o mnimo tolervel.
Uma alternativa mais rara a rea entre as poligonais (Figura 2.8c), onde
se estabelece um limite para ao deslocamento de rea.
3 3
2 2 4

4
distncia mxima ngulo mnimo
1 1
(a) (b)
3
2 4

deslocamento de
rea mximo
1
(c)

Figura 2.8 Medidas de proximidade para simplificao de linhas.


Dentre todas as medidas possveis, a mais utilizada a distncia
perpendicular. O conceito de banda de tolerncia, apoiado no clculo de
distncias perpendiculares, utilizado em grande parte dos algoritmos de
simplificao que sero apresentados a seguir. Um problema
eventualmente abordado na literatura a escolha do parmetro de
tolerncia (), e sua correlao com a escala da representao
simplificada.

4
Para auxiliar na manuteno do aspecto natural da poligonal, existem enfoques que
integram algoritmos de simplificao com algoritmos de suavizao.

67
2. Algoritmos geomtricos e relacionamentos topolgicos

Um critrio interessante para a determinao da tolerncia o que usa


o tamanho do menor objeto visvel em uma determinada escala (Li e
Openshaw, 1992). Este tamanho pode ser dado em termos de uma
distncia medida no espao de coordenadas do mapa plotado, ou seja, em
milmetros do papel, independente da escala utilizada. Assim, definida
uma correspondncia linear entre a escala e a tolerncia adotada.
Grande parte dos algoritmos de simplificao de poligonais necessita
realizar de maneira eficiente clculos de distncia entre um ponto dado e
uma reta definida por outros dois pontos. A maneira mais interessante de
calcular essa distncia utilizar o produto vetorial, conforme apresentado
na Seo 2.3.1, para determinar a rea S do tringulo formado por um
ponto A e uma reta definida por outros dois (B e C), de acordo com a
equao 2.1. Assim, a distncia do ponto A reta definida pelos pontos B
e C pode ser calculada como:
| S|
d=
dist ( B , C )
onde dist(B, C) a distncia euclidiana entre os pontos B e C.
Embora existam muitos algoritmos de simplificao de linhas,
envolvendo variados critrios de aproximao e estratgias de
processamento, um deles se destaca pela ampla aceitao. Foi proposto
em 1973 por Douglas e Peucker (1973), e reconhecidamente o melhor
em termos de preservao das caractersticas da poligonal original
(Marino, 1979) (McMaster, 1987).
Procedimento Douglas-Peucker(linha, numvert, tol)
Procedimento DP(a, f, tol)
incio
se ((f - a) == 1) ento retorne;
maxd = 0;
maxp = 0;
para i = a+1 at f-1 faa
incio
d = distncia(linha[i], linha[a], linha[f]);
se d > maxd ento
incio
maxd = d;
maxp = i;
fim se;
fim para;
se maxd > tol ento
incio
vrtice maxp selecionado;

68
Simplificao de poligonais

DP(a, maxp, tol);


DP(maxp, f, tol);
fim
seno retorne;
fim;
incio
vrtice 1 selecionado;
vrtice numvert selecionado;
DP(1, numvert, tol);
fim.
Programa 2.3 Algoritmo Douglas-Peucker
O algoritmo recursivo, e a cada passo processa o intervalo de pontos
contido entre um vrtice inicial (chamado de ncora) e um vrtice final
(denominado flutuante). estabelecido um corredor de largura igual ao
dobro da tolerncia, formando duas faixas paralelas ao segmento entre o
ncora e o flutuante (Figura 2.9b), como no algoritmo de Lang. A seguir,
so calculadas as distncias de todos os pontos intermedirios ao
segmento bsico, ou seja, contidos entre o ncora e o flutuante. Caso
nenhuma das distncias calculadas ultrapasse a tolerncia, ou seja,
nenhum vrtice fica fora do corredor, ento todos os vrtices
intermedirios so descartados. Caso alguma distncia seja maior que a
tolerncia, o vrtice mais distante preservado, e o algoritmo reiniciado
em duas partes: entre o ncora e o vrtice mais distante (novo flutuante),
e entre o vrtice mais distante (novo ncora) e o flutuante. De acordo
com este processo, os pontos tidos como crticos para a geometria da
linha, a cada passo, so mantidos, enquanto os demais so descartados.
15 15
16
14

13 17

12
18

11 19
3 29
29
4
10 20
2
9 21 28
22
1
1
5 23 27
6 8 24 26
7 tolerncia
25

(a) (b)
Figura 2.9 Linha original, 29 vrtices (a) e Douglas-Peucker, primeiro passo:
seleo do vrtice 15 (b).

69
2. Algoritmos geomtricos e relacionamentos topolgicos

Para a anlise deste algoritmo e dos prximos ser utilizada a


poligonal da Figura 2.9a, com 29 vrtices. As figuras seguintes ilustram
melhor o comportamento do algoritmo Douglas-Peucker. Inicialmente,
so calculadas as distncias dos vrtices 2 a 28 at a reta definida pelos
vrtices 1 e 29. O vrtice mais distante nesta primeira iterao o 15, a
uma distncia muito superior tolerncia (Figura 2.9b). Assim, o vrtice
15 selecionado e o procedimento chamado recursivamente duas vezes,
entre os vrtices 1 e 15 e entre os vrtices 15 e 29. Continuando pela
primeira chamada, o vrtice mais distante da reta entre 1 e 15 o 9,
tambm a uma distncia superior tolerncia, e portanto selecionado
(Figura 2.10a). Duas novas chamadas recursivas so feitas, e agora esto
empilhados os intervalos 1-9, 9-15 e 15-29. No intervalo 1-9, temos
tambm que preservar o vrtice 3, e portanto ficamos na pilha com os
intervalos 1-3, 3-9, 9-15 e 15-29 (Figura 2.10b). Analisando agora o
intervalo 1-3, verificamos que o vrtice 2 pode ser dispensado (Figura
2.11a). Ao final, so preservados os vrtices 1, 3, 4, 6, 9, 15, 16, 17, 22, 24,
27 e 29, ou seja, 41% do nmero original de vrtices (Figura 2.11b).
15 15

3
29
29

9
9
1
1

tolerncia
tolerncia

(a) (b)
Figura 2.10 Douglas-Peucker, segundo passo: seleo do vrtice 9 (a) e
Douglas-Peucker, terceiro passo: seleo do vrtice 3 (b).

70
Simplificao de poligonais

15 15
16

17

3 3 29
2 29 4

9
22
9 1
1
6 24
tolerncia tolerncia

(a) (b)
Figura 2.11 Douglas-Peucker, passo 4: eliminao do vrtice 2 (a) e Douglas-
Peucker, final (b).

O resultado deste algoritmo aclamado pela literatura como sendo o que


mais respeita as caractersticas (ou, como no ttulo do artigo de Douglas e
Peucker, a caricatura) da linha cartogrfica (Marino, 1979). Assim,
este algoritmo veio a ser a escolha dos desenvolvedores de software
comercial na implementao de funes de simplificao de linhas para
processamento ps-digitalizao (Li e Openshaw, 1992), ou seja, para
limpeza de vrtices desnecessrios. O uso do algoritmo Douglas-Peucker
em generalizao, no entanto, comprometido pelo seu comportamento
em situaes de generalizao mais radical, ou seja, com tolerncias
maiores. Conforme a situao, o algoritmo pode ser levado a escolher
vrtices que terminam por deixar a linha com uma aparncia pouco
natural, com tendncia a apresentar picos (como no exemplo da Figura
2.11, entre os vrtices 17, 24 e 29), com ngulos agudos e mudanas
bruscas de direo.

71
2. Algoritmos geomtricos e relacionamentos topolgicos

15

17

29

9
1

24

tolerncia

Figura 2.12 Douglas-Peucker, simplificao radical.


Se a mesma linha da Figura 2.9a for processada novamente com uma
tolerncia, por exemplo, quatro vezes maior que a apresentada, seriam
preservados apenas os vrtices 1, 9, 15, 17, 24 e 29, todos pertencentes soluo
anterior (Figura 2.12). Portanto, o algoritmo de Douglas-Peucker hierrquico,
pois os pontos so sempre selecionados na mesma ordem, e a tolerncia serve
para determinar at que ponto o processamento deve ser realizado.
Se a tolerncia for igual a zero, todos os vrtices sero eventualmente
selecionados. O armazenamento das subdivises nos permite representar a
hierarquia dos vrtices em uma rvore binria (van Oosterom, 1993). Em cada
n desta rvore representado um vrtice selecionado, e armazenado o valor
da distncia calculado por ocasio da seleo, que corresponde ao valor maxd
do algoritmo (Programa 2.3). Tendo sido estabelecido um valor de tolerncia,
basta caminhar na rvore em preordem para determinar quais vrtices sero
selecionados. Quando um n interno contiver um valor de distncia inferior
tolerncia, o vrtice correspondente e todos os descendentes podero ser
eliminados, no sendo necessrio continuar com o caminhamento. Observe-se,
no entanto, que a rvore binria pode ser bastante desbalanceada, e dificilmente
ser completa, o que vir a dificultar o seu armazenamento no banco de dados.

72
Interseo de conjuntos de segmentos

15
2.632

9 24
1.614 2.705

3 11 17 27
0.750 0.213 1.094 0.514

2 6 10 13 16 22 25 28
0.177 0.894 0.070 0.267 0.354 0.256 0.247 0.078

4 8 12 14 18 23 26
0.371 0.224 0.224 0.100 0.238 0.108 0.054

5 7 19
0.250 0.094 0.062

21
0.044

20
0.028

Figura 2.13 rvore binria formada a partir do exemplo da Figura 2.9 a.

2.6 Interseo de conjuntos de segmentos


O problema de se determinar os pontos de interseo entre um conjunto
de segmentos um dos mais importantes no caso de um SIG que
trabalha com representao vetorial. Isso porque operaes como unio,
interseo, diferena e as operaes que avaliam o relacionamento
topolgico necessitam determinar esses pontos como uma das primeiras
etapas de seus processamentos, sendo esta a de maior consumo de
processamento. No que segue, so apresentados algoritmos para
resoluo deste problema.
2.6.1 Plane sweep
Shamos e Hoey (1976) apresentam um dos primeiros trabalhos
discutindo o problema de interseo entre objetos com base na anlise de
complexidade. Eles fornecem um algoritmo para um problema similar
que determinar se, em um conjunto de n segmentos, h pelo menos um
par que se intercepte.

73
2. Algoritmos geomtricos e relacionamentos topolgicos

A idia para soluo desse problema vem da anlise de intervalos em


uma dimenso. Considere-se que, em vez de n segmentos, tenha-se n
intervalos entre nmeros reais, do tipo [xL, xR], onde x L x R . Uma
soluo exaustiva seria analisar todos os n2 pares de intervalos existentes,
comparando-os sempre dois a dois, e interrompendo o processamento
assim que a primeira interseo fosse detectada.
No entanto, uma maneira mais eficiente de resolver o problema
construir uma lista ordenada dos valores extremos dos intervalos,
tomando o cuidado de identific-los como sendo L ou R, de acordo com
sua situao no intervalo. Assim, no haver interseo alguma entre os
intervalos se e somente se a lista ordenada contiver uma seqncia
alternada de Ls e Rs: L R L R ... L R L R. Em qualquer outra situao,
pode-se afirmar que existe superposio entre algum par de intervalos.
Esta soluo tem complexidade computacional da ordem de O(n log n),
uma vez que dominada pela ordenao dos valores extremos.

L R L R L R L R
(a)

L L R L R L R R
(b)

Figura 2.14 Verificao de interseo em intervalos na reta


Em duas dimenses, o problema torna-se um pouco mais complicado,
j que no existe maneira de produzir uma ordenao adequada para
segmentos no plano. A tcnica empregada clssica na geometria
computacional, e denominada de varredura do plano (plane sweep). Esta
tcnica faz uso de duas estruturas de dados bsicas, uma para registrar a
situao da linha de varredura (sweep line status), e a outra que registra
eventos ocorridos durante a varredura (event-point schedule).
A idia consiste em deslocar uma reta vertical pelo conjunto de
segmentos, buscando identificar inverses na ordem em que esta reta
encontra dois segmentos quaisquer. Para implementar esta idia,

74
Interseo de conjuntos de segmentos

necessrio definir uma nova relao de comparao, da seguinte forma:


considere-se dois segmentos s1 e s2 no plano, sendo que s1 no intercepta
s2. Diz-se que s1 comparvel a s2 se, para alguma abscissa x, existe uma
linha vertical que intercepta tanto s1 quanto s2. Assim, diz-se que s1 est
acima de s2 em x se, naquela abscissa, a interseo da reta com s1 est
acima da interseo da reta com s2. Esta relao denotada como s1 >x s2.
Na , temos as seguintes relaes: s3 >v s2; s4 >v s3; s4 >v s2; s4 >w s2; s4 >w
s3; s2 >w s3.

s4

s
3

s1
s2

v w

Figura 2.15 Relao de ordenao entre segmentos.


Com esta relao construda uma ordenao total dos segmentos,
que muda medida em que a linha deslocada da esquerda para a
direita. Nesse processo de varredura do plano, trs coisas podem ocorrer:
o ponto extremo esquerda de um segmento encontrado; o
segmento , portanto, inserido na ordenao;
o ponto extremo direita de um segmento encontrado; o
segmento , portanto, retirado da ordenao;
um ponto de interseo entre dois segmentos s1 e s2 foi encontrado;
portanto, s1 e s2 trocam de posio na ordenao.
Observe-se que, para que s1 e s2 possam trocar de posio, necessrio
que exista algum x para o qual s1 e s2 so consecutivos na ordenao. O
algoritmo usa este fato, testando apenas elementos consecutivos,
medida em que novos eventos vo sendo detectados conforme descrito
acima.

75
2. Algoritmos geomtricos e relacionamentos topolgicos

Portanto, necessrio operar duas estruturas de dados no processo. A


primeira (sweep line status) a responsvel por manter a ordenao das
intersees dos segmentos com a linha de varredura, e usualmente
implementada como um dicionrio ou como uma rvore red-black
(Cormen et al, 1990). As operaes que o sweep line status deve suportar
so insero (insere, complexidade O(log n)), excluso (exclui, tambm
O(log n)), e duas funes para determinar qual segmento est
imediatamente acima e imediatamente abaixo de um segmento dado na
ordenao (acima e abaixo, O(1)). A segunda estrutura de dados (event-
point schedule) responsvel por manter a seqncia das abscissas que
sero analisadas pela linha de varredura, e implementada como uma
fila de prioridades. Deve suportar as clssicas operaes de incluso
(insere), retirada do elemento de mais alta prioridade (min) e uma
funo que testa a presena de um determinado elemento na estrutura
(membro), todas com complexidade O(log n).
Inicialmente, as abscissas dos pontos extremos dos segmentos so
ordenadas e inseridas no event-point schedule. Em seguida, as abscissas
so retiradas a partir da menor, e so realizadas as seguintes operaes:
Se a abscissa corresponder a um ponto extremo esquerda de
algum segmento, inserir o segmento no sweep line status. Verificar
se existem intersees entre este segmento e os segmentos que esto
imediatamente acima e abaixo dele na linha de varredura. Caso
exista interseo, a abscissa do ponto de interseo deve ser
calculada e inserida no event-point schedule, caso j no pertena a
ele.
Se for um ponto extremo direita, excluir o segmento do sweep line
status. Verificar se existem intersees entre os segmentos que esto
imediatamente acima e abaixo dele na linha de varredura. Caso
exista interseo (que estar necessariamente direita do ponto
extremo), a abscissa do ponto de interseo deve ser calculada e
inserida no event-point schedule, caso j no pertena a ele.
Se for um ponto de interseo entre dois segmentos, trocar a
posio destes segmentos no sweep line status. Informar a existncia
de um ponto de interseo e suas coordenadas.

76
Interseo de conjuntos de segmentos

O algoritmo possui complexidade sub-tima, O( n log n + k log n ),


onde k o nmero de intersees. Um dos motivos para que ele no
atinja o limite inferior de n log n + k que os pontos de interseo so
reportados na ordem x, que a ordem na qual eles so inseridos na fila
de eventos. A complexidade desse algoritmo depende no s do nmero
de segmentos de entrada, mas tambm do nmero de intersees
reportadas. Esse algoritmo pertence a uma classe conhecida como
algoritmos sensveis sada, sendo apresentado originalmente por
Bentley e Ottmann (1979).
2.6.2 Algoritmos de interseo por partio do espao
Andrews et al (1994) e Andrews e Snoeyink (1995) apresentam uma
comparao entre mtodos advindos da Geometria Computacional, e
mtodos desenvolvidos pela comunidade GIS (mtodos pragmticos)
para resolver esse problema. Os algoritmos testados por eles foram
agrupados em duas categorias: algoritmos por partio espacial e
algoritmos por ordenao espacial.
Nos algoritmos da primeira classe, o espao subdivido em regies, e
os segmentos so atribudos s regies interceptadas por cada um deles.
As intersees so computadas entre os segmentos de cada regio,
normalmente empregando um algoritmo de fora bruta. A idia a
aplicao de heursticas que realizem filtros, diminuindo o nmero de
segmentos a serem testados.
Os algoritmos agrupados na segunda classe so os baseados em
estratgias de Geometria Computacional, onde a preocupao com o
desenvolvimento de algoritmos onde a anlise de complexidade de pior
caso possua uma boa complexidade. O algoritmo do plane sweep pode ser
classificado nesta categoria.
Os testes realizados mostram que embora os algoritmos da primeira
classe no garantam uma eficincia no pior caso como os da Geometria
Computacional, eles acabam tirando proveito da caracterstica dos dados
de um SIG: segmentos curtos, espaados, com poucas intersees por
segmento e uniformemente distribudos no plano. Dessa forma, eles
acabam sendo mais eficientes (velozes) do que os da segunda classe.

77
2. Algoritmos geomtricos e relacionamentos topolgicos

Outro trabalho que realiza testes semelhantes apresentado por


Pullar (1990), onde mostrado que uma tcnica baseada no Fixed Grid,
tambm pertencente categoria dos algoritmos por partio, bastante
competitiva em relao aos algoritmos baseados no plane sweep, apesar da
complexidade de pior caso ser bem maior, O(n2).
Nos trabalhos de Akman et al (1989), Franklin et al (1988) e Franklin
et al (1989) apresentado um algoritmo baseado no fixed grid. Dados
dois conjuntos de segmentos, um vermelho e outro azul, os segmentos da
primeira linha so cobertos por uma grade retangular fixa (fixed grid).
Cada segmento vermelho associado s clulas da grade por onde ele
passa. Os pontos de interseo so determinados procurando para cada
segmento azul a lista de clulas por onde ele passa e ento utilizando um
algoritmo de fora bruta esses pontos so determinados.
Um dos pontos chaves desse algoritmo a determinao da resoluo
da grade. Ela pode ser determinada a partir da mdia do comprimento
dos segmentos. Franklin et al (1988) mostram que utilizando-se de
parmetros estatsticos, como a mdia do comprimento dos segmentos, a
grade se adapta bem aos dados de entrada.

2.7 Unio, interseo e diferena de polgonos


Operaes sobre polgonos so de fundamental importncia em SIG.
Atravs da deteco e processamento da unio, interseo e diferena de
polgonos, diversos tipos de operaes, conhecidas como em conjunto
como polygon overlay, so viabilizadas. So operaes fundamentais para
anlise espacial, usadas em situaes em que necessrio combinar ou
comparar dados colocados em camadas distintas. Por exemplo, considere-
se uma consulta como identificar fazendas em que mais de 30% da rea
de latossolo roxo. Para executar esta anlise, necessrio combinar
uma camada de objetos poligonais (os limites de propriedades rurais)
com outra (o mapa de tipos de solo), para obter uma nova camada, de
cujo contedo podem ser selecionados diretamente os objetos que
atendem ao critrio de anlise colocado.
Algumas vezes, o polygon overlay definido como uma operao
topolgica, ou seja, que executada sobre dados organizados em uma
estrutura de dados topolgica. As funes de processamento de polgonos

78
Unio, interseo e diferena de polgonos

que sero descritas a seguir so utilizadas em sistemas no topolgicos,


ou em situaes em que o processamento feito de maneira isolada,
como na criao e uso de buffers (vide Seo 2.8).
Para realizar operaes sobre polgonos, interessante aplicar um
passo preliminar de deteco rpida da possibilidade interseo entre os
polgonos. Assim, se no for possvel que dois polgonos P e Q tenham
interseo, ento podemos concluir diretamente que P Q = { P, Q} ,
P Q = , P Q = P e Q P = Q . Uma maneira simples de testar
se dois polgonos tm ou no interseo usar inicialmente o teste de
interseo dos retngulos envolventes mnimos (Seo 2.3.3).
No caso geral, operaes de unio, interseo ou diferena entre dois
polgonos simples podem gerar diversos polgonos como resultado. Mais
ainda, os polgonos resultantes podero conter buracos. A Figura 2.16
contm exemplos de produo de mltiplos polgonos e de polgonos
com buracos em operaes de interseo, unio e diferena.

Figura 2.16 Operaes sobre polgonos produzindo buracos e mltiplos


polgonos.
Apresentaremos aqui um mtodo proposto por Margalit e Knott
(1989). Esse algoritmo sensvel orientao dos polgonos, e exige que
os vrtices de ilhas sejam codificados em um sentido (por exemplo, anti-

79
2. Algoritmos geomtricos e relacionamentos topolgicos

horrio) e os vrtices de buracos sejam dispostos no sentido inverso


(horrio). Isto coincide com a conveno usada para calcular a rea de
polgonos, conforme apresentado na Seo 2.3.5.
Tabela 2.1 Orientao dos polgonos de acordo com a operao

Polgonos Operaes

P Q P Q P Q PQ Q P

ilha ilha manter manter inverter inverter

ilha buraco inverter inverter manter manter

buraco ilha inverter inverter manter manter

buraco buraco manter manter inverter inverter


O algoritmo tem seis passos, que sero descritos a seguir.
1. Normalizar a orientao dos polgonos de entrada P e Q, e inverter a
orientao de Q dependendo do tipo de operao e da natureza
(ilha ou buraco) dos dois polgonos de entrada, de acordo com a
Tabela 2.1.
2. Classificar os vrtices, verificando se cada um est dentro, fora ou na
fronteira do outro polgono, usando o teste de ponto em polgono
(Seo 2.4). Inserir os vrtices assim classificados em duas listas
circulares, PL e QL, onde aparecero em seqncia, de modo a
definir as arestas por adjacncia.
3. Encontrar as intersees entre arestas dos dois polgonos, usando o
teste de interseo de n segmentos (Seo 2.6). Inserir os pontos de
interseo na posio apropriada em PL e QL, classificando-os
como na fronteira. A partir deste ponto, teremos um conjunto de
fragmentos de arestas em lugar das arestas originais. necessrio
cuidar do caso especial de interseo ao longo de uma aresta
comum, ou parte dela. Neste caso, ambos os pontos extremos da
aresta devem ser classificados como na fronteira e inseridos nas
listas.

80
Unio, interseo e diferena de polgonos

4. Classificar os fragmentos de arestas (definidos pelos pares de


vrtices) formados em PL e QL com relao ao outro polgono,
entre interior, exterior ou na fronteira. No necessrio realizar
novamente o teste de ponto em polgono. Uma aresta pode ser
considerada interior ao outro polgono caso pelo menos um de seus
vrtices esteja classificado como dentro. Da mesma forma, uma
aresta pode ser classificada como exterior ao outro polgono caso
pelo menos um de seus vrtices esteja classificado como fora. Se
ambos os vrtices estiverem classificados como na fronteira, ento
necessrio verificar a situao de um ponto interno ao segmento
(por exemplo, seu ponto mdio). Se este ponto estiver fora do outro
polgono, ento a aresta classificada como exterior. Se o ponto
estiver dentro do outro polgono, ento a aresta classificada como
interior. Se o ponto estiver na fronteira, a aresta classificada como
fronteira.
5. Arestas na fronteira constituem um caso degenerado, que requer
tratamento especial. Se existe um fragmento de aresta na fronteira
de P, ento necessariamente existe tambm um na fronteira de Q.
Estes fragmentos podem estar orientados na mesma direo ou em
direes opostas. A implementao pode decidir o que fazer nestes
casos, ou seja, se intersees com dimenso de segmento ou de
ponto sero ou no retornadas. Se as intersees como segmento
forem retornadas, sero formadas por um ciclo de duas arestas
sobrepostas, cada uma em uma direo. Interseo em um ponto
ser retornada como um ciclo de duas arestas, cada uma em uma
direo, ligando dois vrtices sobrepostos. Desta forma preserva-se
a topologia do resultado (sempre cadeia fechada de segmentos),
mas em SIG mais interessante detectar estes casos e retornar
objetos da dimenso adequada (no caso, ponto)5.
6. Selecionar e organizar as arestas para formar os polgonos de
resultado. Este processo de seleo baseado na combinao das

5
Para uma anlise mais completa, inclusive com as combinaes de hipteses nos casos
de ilhas e buracos, vide (Margalit e Knott, 1989).

81
2. Algoritmos geomtricos e relacionamentos topolgicos

duas listas em uma, denominada RL, usando apenas as arestas que


interessam para a operao, conforme definido na Tabela 2.2.
7. Construir os polgonos de resultado, selecionando uma aresta e, com
base em seu ponto final, procurar em RL sua continuao, at
fechar o polgono. Repetir o processo, eliminando de RL a cada
passo as arestas utilizadas, at que RL fique vazia.
Os polgonos resultantes mantero a orientao adotada para ilhas e
buracos.
Tabela 2.2 Tipos de arestas para seleo de acordo com o tipo de
operao e os tipos de polgonos de entrada

Polgonos Operaes

P Q P Q PQ Q P

P Q P Q P Q P Q P Q

ilha buraco interior interior exterior exterior exterior interior interior exterior

ilha buraco exterior interior interior exterior interior interior exterior exterior

buraco ilha interior exterior exterior interior exterior exterior interior interior

buraco buraco exterior exterior interior interior interior exterior exterior interior

2.8 Mapas de distncia (buffer zones)


Outra operao importante para um GIS a construo de mapas de
distncia ou buffer zones, que so reas construdas ao redor de objetos
mantendo uma certa distncia. A Figura 2.17 ilustra a idia dessas
operaes para pontos, linhas e polgonos respectivamente.

(a) (b)

Figura 2.17 Buffers elementares ao redor de ponto (a) e segmento (b).

82
Relacionamentos topolgicos

A determinao do buffer ao redor de um ponto feita de forma


direta, como uma circunferncia de raio d (Figura 2.17a). O buffer ao
redor de uma linha formada pela unio de buffers elementares (Figura
2.17b) definidos para cada segmento da linha. Esses buffers elementares
so formados a partir de semicircunferncias traadas nas extremidades
dos segmentos (uma em cada extremidade). Utilizando o algoritmo de
unio (Seo 2.7) podemos combinar esses buffers at formar o resultado
final da linha (Figura 2.18a).
O buffer de polgonos (Figura 2.18b) semelhante ao de linha, com a
diferena de que possvel gerar buffers negativos (voltados para o
interior do polgono).

Figura 2.18 Buffer ao redor de linha (a) e polgono (b).

2.9 Relacionamentos topolgicos


A grande importncia da caracterizao dos relacionamentos topolgicos
entre estruturas vetoriais poder atribuir um contexto semntico aos
algoritmos geomtricos. Para especific-los, inicialmente definiremos as
geometrias vetoriais como elementos do 2, considerado como espao
topolgico. Assim, um ponto simplesmente um elemento de 2. Uma
linha L um conjunto de pontos conectados. Uma ilha ou linha circular
uma linha em que o ponto inicial igual ao ponto final. A fronteira de L,
denotada por L, o conjunto dos pontos inicial e final, caso L no seja
uma ilha, ou o conjunto vazio, em caso contrrio. O interior de L,
denotado por L, composto pelos demais pontos. Uma regio A um
conjunto de pontos com um interior conectado, denotado por A, uma
fronteira conectada, denotada por A, e um nico exterior conectado,
denotado por A-. Assim, as regies consideradas no tem buracos.

83
2. Algoritmos geomtricos e relacionamentos topolgicos

Os relacionamentos topolgicos podem ser definidos com base em um


modelo, chamado matriz de 4-intersees (ver a Figura 2.19), que
considera oito relaes topolgicas binrias, representando a interseo
entre a fronteira e o interior de duas geometrias (Egenhofer e Franzosa,
1995).
Para definir relacionamentos topolgicos entre geometrias com
estruturas mais complexas, como regies com ilhas e separaes,
necessrio estender a matriz de 4-Intersees para tambm considerar o
exterior de uma geometria (Egenhofer e Herring, 1991). O novo modelo,
chamado de matriz de 9-Intersees (ver Figura 2.20), considera ento o
resultado da interseo entre as fronteiras, interiores e exteriores de duas
geometrias. Maiores detalhes sobre relaes topolgicas entre regies com
ilhas podem ser encontrado em (Egenhofer et al., 1994).

A A A A
B B B B

B B B B B B B B
A A A A
A A A A
disjoint meet contains Covers

A B B A B A
ABB

B B B B B B B B
A A A A
A A A A
equal overlap inside Covered By

Figura 2.19 Matriz de 4-Intersees para relaes entre duas regies.


Fonte: (Egenhofer et al., 1994).

84
Relacionamentos topolgicos

A A B A B A B
B

B B B- B B B- B B B- B B B-
A A A A
A A A A
A- A- A- A-
disjoint meet contains covers

ABB A B B A B A
B B B- B B B-
B B B- B B B-
A A
A A
A A
A A
A- A-
A- A-
equal overlap inside covered by

Figura 2.20 Matriz de 9-Intersees para relaes entre duas regies. Fonte:
(Egenhofer e Herring, 1991).
Nos modelos citados acima, os resultados das interseces so
avaliados considerando os valores vazio ou no-vazio. H vrias situaes
em que necessrio considerar as dimenses das intersees no vazias.
Por exemplo, certo estado X s considera um outro estado Y como
vizinho se eles tm pelo menos uma aresta em comum. Neste caso, para
encontrar os vizinhos do estado X, no basta saber quais estados tocam
ou so adjacentes a ele, mas sim se o resultado da interseo entre eles
uma aresta.
Para acomodar estas situaes, novos modelos foram definidos,
levando em considerao as dimenses dos resultados das intersees no
vazias, como o modelo para relaes topolgicas binrias detalhadas
(Egenhofer, 1993), baseado na matriz de 4-intersees, e a matriz de 9-
Intersees estendida dimensionalmente (DE-9IM), baseada na matriz
de 9-intersees (Paiva, 1998).
Clementini et al (1993) estenderam a abordagem da matriz de 4-
intersees de forma a incluir a informao da dimenso da interseo.
No espao bidimensional, a dimenso da interseo pode ser vazia, um
ponto, uma linha ou uma regio. Este modelo contempla assim um
conjunto de 52 relacionamentos topolgicos, o que no conveniente do
ponto de vista do usurio. Para equacionar este problema, os
relacionamentos topolgicos foram agrupados em cinco mais gerais -

85
2. Algoritmos geomtricos e relacionamentos topolgicos

touch, in, cross, overlap, disjoint - que so sobrecarregados, ou seja, que


podem ser usados indistintamente para ponto, linha e regio. Estes
relacionamentos so definidos da seguinte forma:
touch: aplica-se a pares de geometrias dos tipos regio/regio,
linha/linha, linha/regio, ponto/regio e ponto/linha:
1 , touch, 2 (1o 2o = 0/ )
((1 2o 0/ ) (1o 2 0/ ) (1 2 0/ ))
in: aplica-se a pares de geometrias com qualquer combinao de
tipos:
1 , in, 2 (1o 2o 0/ ) (1o 2 = 0/ ) (1 2 = 0/ )
cross: aplica-se a pares de geometrias dos tipos linha/linha e
linha/regio. No caso de linha/regio, temos:
L, cross , R ( Lo R o 0/ ) ( Lo R 0/ )
No caso de linha/linha, temos:
L1 , cross , L2 dim( L1o Lo2 ) = 0
overlap: aplica-se a pares de geometrias dos tipos regio/regio e
linha/linha. No caso de regio/regio, temos:
A1 , overlap, A2 ( A1o A2o 0/ ) ( A1o A2 0/ )
( A1 A2o 0/ )
No caso de linha/linha, temos:
L1 , overlap, L2 (dim( L1o Lo2 ) = 1) ( L1o L2 0/ )
( L1 Lo2 0/ )
disjoint: aplica-se a pares de geometrias com qualquer combinao de
tipos:
1 , disjoint, 2 (1o 2o = 0/ ) (1 2o = 0/ )
(1o 2 = 0/ ) (1 2 = 0/ )

86
Determinao do relacionamento topolgico

2.10 Determinao do relacionamento topolgico


Nesta seo apresentaremos um algoritmo simples para a determinao
dos relacionamentos topolgicos entre dois polgonos (A e B), segundo a
matriz de 9-Intersees (descrita na seo anterior). Ele utiliza uma
combinao dos algoritmos geomtricos apresentados anteriormente para
determinar as intersees entre interior, fronteira e exterior dos dois
polgonos. O algoritmo possui seis etapas, que esto descritas a seguir e
so ilustradas na Figura 2.21.
1. Avaliar o relacionamento entre os REM dos polgonos A e B. Nessa
avaliao podemos empregar as estratgias apresentadas por
Clementini et al (1994) que consiste basicamente no estabelecimento
de um mapeamento entre os relacionamentos topolgicos dos REMs
e das geometrias exatas. No caso, por exemplo, de dois polgonos A e
B que estejam sendo testados para ver se A contm B, podemos
rapidamente descartar essa possibilidade caso o REM de A no
contenha o REM de B. Caso contrrio vamos prxima etapa;
2. Determinar os pontos de interseo entre os dois polgonos. Isso pode
ser feito utilizando algum dos algoritmos apresentados na Seo 2.6.
Esta etapa nos informa se h ou no interseo entre as fronteiras dos
objetos.
3. Se no houve interseo na etapa anterior (etapa 2), ento devemos
testar qualquer ponto do polgono A, num teste de ponto em
polgono (Seo 2.4), com o polgono B, para determinar a
localizao de A em relao a B. Este teste precisa ser feito tambm
com um ponto de B em relao a A:
a. Se o ponto do polgono A estiver dentro de B ento A
encontra-se dentro de B (relacionamento inside).
b. Caso contrrio, se o ponto de B estiver dentro de A ento A
contm B (relacionamento contains).
c. Caso contrrio, os polgonos so disjuntos (relacionamento
disjoint).
4. Se houve interseo na etapa 2, devemos realizar a fragmentao da
fronteira de A, em relao aos pontos de interseo.

87
2. Algoritmos geomtricos e relacionamentos topolgicos

5. Depois, verificamos a localizao de cada um dos fragmentos em


relao ao polgono B. Podemos utilizar o teste de ponto em
polgono, tomando um ponto do fragmento que no esteja na
extremidade.
6. Com base na localizao dos fragmentos, as intersees entre
fronteiras, interiores e exteriores podem ser inferidas:
a. Se houve fragmentos dentro e fora do polgono B ento os
dois polgonos se sobrepe (relacionamento overlaps);
b. Se houve fragmentos somente dentro e na fronteira do
polgono B, ento o polgono A coberto pelo polgono B
(covered by).
c. Se houve fragmentos somente fora e na fronteira do polgono
B, temos que decidir se os polgonos se tocam ou se A cobre
B. Isso pode ser feito fragmentando a fronteira do polgono B,
como na etapa 4 e testando a localizao dos fragmentos de B
em relao a A (etapa 5). Se houver fragmentos dentro de A,
ento A cobre B (relacionamento covers) seno A toca B
(relacionamento touches).
d. Se todos os fragmentos encontram-se na fronteira de B, ento
os polgonos so iguais (relacionamento equals).

88
Figura 2.21 Determinao do relacionamento topolgico.

89
2. Algoritmos geomtricos e relacionamentos topolgicos

Referncias
AKMAN, V.; FRANKLIN, W. R.; KANKANHALLI, M.;
NARAYANASWAMI, C. Geometric computing and uniform grid
technique. Computer-Aided Design, v. 21, n. 7, p. 410-420, set. 1989.
ANDREWS, D. S.; SNOEYINK, J. Geometry in GIS is not combinatorial:
segment intersection for polygon overlay. In: Annual Symposium on
Computational Geometry, 11., 1995, Vancouver. Proceedings. Canada:
British Columbia, 1995, p. 424-425.
ANDREWS, D. S.; SNOEYINK, J.; BORITZ, J. CHAN, T.; DENHAM, G.;
HARRISON, J.; ZHU, C. Further comparison of algorithms for geometric
intersection problems. In: International Symposium on Spatial Data
Handling, 6., 1994, Edinburgh. Proceedings. Edinburgh: Taylor e Francis,
1994, p. 709-724.
BEARD, K.; Theory of the cartographic line revisited: implications for
automated generalization. In: Cartographica. 1991. v. 28, cap. 4, p. 32-58.
BENTLEY, J. L.; OTTMANN, T. A. Algorithms for reporting and counting
geometric intersections. IEEE Transactions on Computers, v. C-28, n. 9, p.
643-647, set. 1979.
CLEMENTINI, E.; DI FELICE, P.; VAN OOSTEROM, P., 1993. A Small
Set of Formal Topological Relationships Suitable for End-User Interaction.
In: ABEL, D.; OOI, B. C., eds., SSD '93: Lecture Notes in Computer
Science, v. 692: New York, NY, Springer-Verlag, p. 277-295.
CLEMENTINI, E.; SHARMA, J.; EGENHOFER, M. Modelling topological
spatial relations: strategies for query processing. Computers & Graphics, v.
18, n. 6, p. 815-822, 1994.
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. Introduction to
algorithms. E.U.A.: McGraw-Hill, 1990.
DAVIS Jr., C.; Uso de vetores em GIS. Fator GIS, v. 21, n. 4, p. 22-23, 1997.
DOUGLAS, D. H.; PEUCKER, T. K. Algorithms for the reduction of the
number of points required to represent a line or its caricature. The
Canadian Cartographer, v. 10, n. 2, p. 112-122, 1973.
EGENHOFER, M. A Model for Detailed Binary Topological Relationships.
Geomatica, v. 47, p. 261-273, 1993.
EGENHOFER, M.; P. DI FELICE; CLEMENTINI, E. Topological
Relations between Regions with Holes. International Journal of
Geographical Information Systems, v. 8, n.2, p. 129-144, 1994.

90
Referncias

EGENHOFER, M.; FRANZOSA, R. On the Equivalence of Topological


Relations. International Journal of Geographical Information Systems, v.
9, n.2, p. 133-152, 1995.
EGENHOFER, M.; HERRING, J. Categorizing Binary Topological
Relationships Between Regions, Lines, and Points in Geographic Databases.
Orono, ME: Department of Surveying Engineering, University of Maine,
1991.
FIGUEIREDO, L. H.; CARVALHO, P. C. P. Introduo geometria
computacional. Rio de Janeiro: IMPA, 1991.
FRANKLIN, W. R.; CHANDRASEKHAR, N.; Kankanhalli, M.; Seshan, M.;
Akman, V. Efficiency of uniform grids for intersection detection on serial
and parallel machines. In: Computer Graphics International, maio, 1988,
Geneva, Switzerland. Proceedings. Berlin Heidelberg: Springer-Verlag,
1988, p. 51-62.
FRANKLIN, W. R.; CHANDRASEKHAR, N.; KANKANHALLI, M.; SUN,
D.; ZHOU, M.; WU, P. YF Uniform grids: a technique for intersection
detection on serial and parallel machines. In: Auto Carto 9, Baltimore,
Mariland. Proceedings. Baltimore, Maryland: American Congress on
Surveying and Mapping, 1989, p. 100-109.
HAINES, E. Point in polygon strategies. In: HECKBERT, P. S. (Org.).
Graphics gems IV. Boston, E.U.A.: Academic Press, 1994. p. 24-46.
HUANG, C.; SHIH, T. On the complexity of point-in-polygon algorithms.
Computers & Geosciences. v. 23, n. 1, p. 109-118, 1997.
KNUTH, D. E. The art of computer programming, vol. 1: fundamental
algorithms. Boston, Massachusetts: Addison-Wesley, 1973.
LAURINI, R.; THOMPSON, D. Fundamentals of spatial information
systems. : Academic Press, 1992.
LI, Z.; OPENSHAW, S. Algorithms for automated line generalization based on
a natural principle of objective generalization. International Journal of
Geographic Information Systems, v. 6, n. 5, p. 373-389, 1992.
MARGALIT, A.; KNOTT, G. D. An algorithm for computing the union,
intersection or difference of two polygons. Computers & Graphics, v. 13, n.
2, p. 167-183, 1989.
MARINO, J. S.; Identification of characteristic points along naturally occurring
lines: an empirical study. The Canadian Cartographer, v. 16, n. , p. 70-80,
1979.

91
2. Algoritmos geomtricos e relacionamentos topolgicos

MCMASTER, R. B.; SHEA, K. S. Generalization in digital cartography.


Association of American Geographers, 1992.
O'ROURKE, J.. Computacional geometry in C. Cambridge: Cambridge
University Press, 1998.
PAIVA, J. A. C. Topological Equivalence and Similarity in Multi-
Representation Geographic Database. University of Maine,1998.
PEUCKER, T. K.; A theory of the cartographic line. In: International
yearbook of cartography. 1975. cap. 16, p. 134-143.
PREPARATA , F. P.; SHAMOS , M. I. Computational geometry an
introduction. New York: Springer-Verlag, 1985.
PULLAR, D. Comparative study of algorithms for reporting geometrical
intersections. In: International Symposium on Spatial Data Handling, 4.,
1990, Zurich. Proceedings Edinburgh: Taylor and Francis, 1990, p. 66-76.
SAALFELD, A. It doesn't make me nearly as CROSS - some advantages of the
point-vector representation of line segments in automated cartography.
International Journal of Geographical Information Systems, v. 1, n. 4, p.
379-386, 1987.
SCHNEIDER, M. Spatial data types for database systems. Berlin Hidelberg:
Springer-Verlag, 1997.
SHAMOS, M. I.; HOEY, D. Geometric intersection problems. In: Annual
IEEE Symposium on Foundations of Computer Science, 17., oct. 1976,
Houston, Texas. Proceedings. New York: IEEE, 1976, p. 208-215.
TAYLOR, G. E.; Point in Polygon Test. Survey Review, v. 32, n. 254, p. 479-
484, 1994.
VAN OOSTEROM, P.; Reactive data structures for geographic information
systems. : Oxford University Press, 1993.
VAN OOSTEROM, P.; SCHENKELAARS, V. The development of an
interactive multi-scale GIS. International Journal of Geographical
Information Systems, v. 9, n. 5, p. 489-507, 1995.
WEIBEL, R.; Map generalization in the context of digital systems. Cartography
and Geographic Information Systems, v. 22, n. 4, p. 3-10, 1995.

92
3 Modelagem conceitual de dados geogrficos

Karla A. V. Borges
Clodoveu A. Davis Jr.
Alberto H. F. Laender

3.1 Introduo
Este captulo apresenta recursos para a modelagem de dados geogrficos,
apoiados principalmente no modelo OMT-G. Inicialmente, resume um
pouco do histrico dos modelos de dados geogrficos e discute os nveis
de abstrao usuais para aplicaes geogrficas. Em seguida, descreve o
modelo OMT-G, apresenta classes de restries de integridade espaciais,
e introduz um algoritmo de mapeamento de esquemas OMT-G para
esquemas fsicos, considerando o padro OpenGIS para representao de
objetos. Por fim, apresenta um exemplo de modelagem e tece algumas
consideraes finais.
Um modelo de dados um conjunto de conceitos que podem ser
usados para descrever a estrutura e as operaes em um banco de dados
(Elmasri e Navathe, 2004). O modelo busca sistematizar o entendimento
que desenvolvido a respeito de objetos e fenmenos que sero
representados em um sistema informatizado. Os objetos e fenmenos
reais, no entanto, so complexos demais para permitir uma representao
completa, considerando os recursos disposio dos sistemas
gerenciadores de bancos de dados (SGBD) atuais. Desta forma,
necessrio construir uma abstrao dos objetos e fenmenos do mundo
real, de modo a obter uma forma de representao conveniente, embora
simplificada, que seja adequada s finalidades das aplicaes do banco de
dados.
A abstrao de conceitos e entidades existentes no mundo real uma
parte importante da criao de sistemas de informao. O sucesso de
3. Modelagem conceitual de dados geogrficos

qualquer implementao em computador de um sistema de informao


dependente da qualidade da transposio de entidades do mundo real e
suas interaes para um banco de dados informatizado. A abstrao
funciona como uma ferramenta que nos ajuda a compreender o sistema,
dividindo-o em componentes separados. Cada um desses componentes
pode ser visualizado em diferentes nveis de complexidade e detalhe, de
acordo com a necessidade de compreenso e representao das diversas
entidades de interesse do sistema de informao e suas interaes.
Os primeiros modelos de dados para as aplicaes geogrficas eram
voltados para as estruturas internas dos SIG. O usurio era forado a
adequar os fenmenos espaciais s estruturas disponveis no SIG a ser
utilizado. Conseqentemente, o processo de modelagem no oferecia
mecanismos para a representao da realidade de forma mais prxima ao
modelo mental do usurio. Ficava evidente que a modelagem de
aplicaes geogrficas necessitava de modelos mais adequados, capazes
de capturar a semntica dos dados geogrficos, oferecendo mecanismos
de abstrao mais elevados e independncia de implementao. Apesar
de toda a expressividade oferecida pelas tcnicas tradicionais de
modelagem, dificuldades surgem devido ao fato de que os dados
geogrficos possuem aspectos peculiares, particularmente com respeito
codificao da localizao espacial e do tempo de observao, bem como
em relao ao registro de fatores externos, como sua preciso de obteno.
A modelagem do mundo real uma atividade complexa porque envolve
a discretizao do espao como parte do processo de abstrao, visando
obter representaes adequadas aos fenmenos geogrficos.
Os fatores envolvidos nesse processo de discretizao do espao so
inmeros. Entre eles citamos:
Transcrio da informao geogrfica em unidades lgicas de dados
Para Frank e Goodchild (1990), o esquema de uma aplicao
geogrfica uma representao limitada da realidade, tendo em vista
a natureza finita e discreta da representao nos computadores. Por
maior que seja o nvel de abstrao utilizado, a realidade modelada
atravs de conceitos geomtricos (Frank, 1992) e, para que esses
conceitos sejam implementados em computadores, eles precisam ser
formalizados, sendo necessrio um maior nmero de conceitos

94
Introduo

abstratos para descrever os dados, e um maior nmero de operaes


apropriadas, que podem ser definidas de modo independente da
implementao (Mark e Frank, 1990).
Forma como as pessoas percebem o espao O aspecto cognitivo na
percepo espacial um dos aspectos que faz com que a modelagem
de dados geogrficos seja diferente da modelagem tradicional.
Dependendo do observador, de sua experincia e de sua necessidade
especfica, uma mesma entidade geogrfica pode ser percebida de
diversas formas. Uma escola, por exemplo, poder ser representada
usando um ponto (posicionado de forma aproximada), como uma
rea (do terreno que ocupa), ou como um conjunto de edificaes,
dependendo do observador e do que ele pretende obter com essa
representao. A escala de representao exige que a mesma entidade
geogrfica possa ser representada por diferentes formas geomtricas,
com detalhamento varivel. O uso de mltiplas representaes para a
mesma entidade pode ocorrer simultaneamente, usando-se vrias
formas geomtricas para uma mesma entidade geogrfica, ou poder
ser exclusiva, fazendo com que uma representao seja vlida para
visualizao em determinadas circunstncias, como, por exemplo,
uma determinada faixa de escalas.
Natureza diversificada dos dados geogrficos Alm de geometria,
localizao no espao, informaes associadas e caractersticas
temporais, os dados geogrficos ainda podem prover de origens
distintas. Dados ambientais, por exemplo, so derivados de dados
como topografia, clima e tempo, propriedades do solo, propriedades
geolgicas, cobertura da terra, uso da terra, e hidrografia. Alguns
desses fenmenos, como elevao e propriedades do solo, variam
continuamente sobre o espao (viso de campos). Outros, como
montanhas e bacias hidrogrficas, podem ser individualizados (viso
de objetos). Alguns podem estar em ambas as categorias, dependendo
do nvel de detalhe considerado.
Existncia de relaes espaciais (topolgicas, mtricas, de ordem e
fuzzy) Essas relaes so abstraes que nos ajudam a
compreender como no mundo real os objetos se relacionam uns com
os outros (Mark e Frank, 1990).

95
3. Modelagem conceitual de dados geogrficos

3.2 Modelos de dados geogrficos


Modelos de dados semnticos e orientados a objetos, tais como ER
(Chen, 1976), OMT (Rumbaugh et al., 1991), IFO (Abiteboul e Hull,
1987), UML (Rational Software Corporation, 1997) e outros, tm sido
largamente utilizados para a modelagem de aplicaes geogrficas.
Apesar da grande expressividade desses modelos, eles apresentam
limitaes para a adequada modelagem de aplicaes geogrficas, j que
no possuem primitivas apropriadas para a representao de dados
espaciais.
Modelos de dados para aplicaes geogrficas tm necessidades
adicionais, tanto com relao abstrao de conceitos e entidades,
quanto ao tipo de entidades representveis e seu inter-relacionamento.
Diversas propostas existem atualmente, principalmente focalizadas em
estender os modelos criados para aplicaes convencionais, como
GeoOOA (Ksters et al., 1997), MODUL-R (Bdard et al., 1996),
GMOD (Oliveira et al., 1997), IFO para aplicaes geogrficas (Worboys
et al., 1990), GISER (Shekhar et al., 1997), OMT-G (Borges et al., 2001),
GeoFrame (Lisboa Filho, 1997), MADS (Parent et al., 1999). Todos esses
modelos procuram refletir melhor as necessidades de aplicaes
geogrficas. A escolha de um deles pode ser feita observando as
necessidades de modelagem quanto abstrao de conceitos geogrficos,
ao atendimento de requisitos usuais para modelos de dados (como
clareza e facilidade de uso) (Borges et al., 2001), e possibilidade de
mapeamento dos esquemas produzidos para a implementao em SGBD
espaciais, o que inclui a necessria identificao de restries de
integridade espaciais (Borges et al., 2002) (Davis Jr. et al., 2005).

3.3 Nveis de abstrao de dados geogrficos


Modelos de dados so classificados de acordo com o nvel de abstrao
empregado. Para aplicaes geogrficas, so considerados quatro nveis
distintos de abstrao:
Nvel do mundo real Contm os fenmenos geogrficos reais a
representar, como rios, ruas e cobertura vegetal.

96
Nveis de abstrao de dados geogrficos

Nvel de representao conceitual Oferece um conjunto de conceitos


formais com os quais as entidades geogrficas podem ser modeladas da
forma como so percebidas pelo usurio, em um alto nvel de abstrao.
Neste nvel so definidas as classes bsicas, contnuas ou discretas, que
sero criadas no banco de dados. Essas classes esto associadas a classes
de representao espacial, que variam de acordo com o grau de percepo
que o usurio tem sobre o assunto. Essa preocupao no aparece com
freqncia nas metodologias tradicionais de modelagem de dados, uma
vez que as aplicaes convencionais raramente precisam lidar com
aspectos relativos representao espacial (nica ou mltipla) de objetos.
Nvel de apresentao Oferece ferramentas com as quais se pode
especificar os diferentes aspectos visuais que as entidades geogrficas tm
de assumir ao longo de seu uso em aplicaes.
Nvel de implementao Define padres, formas de armazenamento e
estruturas de dados para implementar cada tipo de representao, os
relacionamentos entre elas e as necessrias funes e mtodos.
O modelo OMT-G, descrito a seguir, atua nos nveis de representao
conceitual e apresentao. No nvel de implementao, situam-se as
linguagens de definio de dados associadas a SGBD espaciais.
Apresentaremos mais adiante um algoritmo de mapeamento entre
esquemas OMT-G e estruturas fsicas, definidas pelo padro OpenGIS,
conforme implementadas no SGBD Oracle Spatial.

Nvel do mundo Nvel de Nvel de Nvel de


real representao apresentao implementao

Figura 3.1 Nveis de abstrao de aplicaes geogrficas. Fonte: adaptado de


(Borges et al., 2001).

97
3. Modelagem conceitual de dados geogrficos

3.4 Modelo de dados OMT-G


3.4.1 Viso geral do modelo
O modelo OMT-G parte das primitivas definidas para o diagrama de
classes da Unified Modeling Language (UML) (Rational Software
Corporation, 1997), introduzindo primitivas geogrficas com o objetivo
de aumentar a capacidade de representao semntica daquele modelo e,
portanto reduzindo a distncia entre o modelo mental do espao a ser
modelado e o modelo de representao usual. Portanto, o modelo OMT-
G prov primitivas para modelar a geometria e a topologia dos dados
geogrficos, oferecendo suporte a estruturas topolgicas todo-parte,
estruturas de rede, mltiplas representaes de objetos e relacionamentos
espaciais. Alm disso, o modelo permite a especificao de atributos
alfanumricos e mtodos associados para cada classe. Os principais
pontos do modelo so sua expressividade grfica e sua capacidade de
codificao, uma vez que anotaes textuais so substitudas pelo
desenho de relacionamentos explcitos, que denotam a dinmica da
interao entre os diversos objetos espaciais e no espaciais.
O modelo OMT-G baseado em trs conceitos principais: classes,
relacionamentos e restries de integridade espaciais. Classes e
relacionamentos definem as primitivas bsicas usadas para criar
esquemas estticos de aplicao. OMT-G prope o uso de trs diferentes
diagramas no processo de desenvolvimento de uma aplicao geogrfica.
O primeiro e mais usual o diagrama de classes, no qual todas as classes
so especificadas junto com suas representaes e relacionamentos. A
partir do diagrama de classes possvel derivar um conjunto de restries
de integridade espaciais, que deve ser observado na implementao.
Quando o diagrama de classes especifica mltiplas representaes ou a
derivao de uma classe a partir de outra, necessrio desenvolver um
diagrama de transformao. Nele todo o processo de transformao pode
ser especificado, permitindo a identificao dos mtodos necessrios para
a implementao. Finalmente, para especificar as alternativas de
visualizao que cada representao pode assumir, necessrio
desenvolver um diagrama de apresentao. As primitivas para cada um
desses diagramas so detalhadas nas prximas sees.

98
Modelo de dados OMT-G

A identificao de restries de integridade espacial uma atividade


importante no projeto de uma aplicao, e consiste na identificao de
condies que precisam ser garantidas para que o banco de dados esteja
sempre ntegro. Os principais tipos de restries de integridade, que
ocorrem freqentemente na modelagem de banco de dados
convencionais, so restries de domnio, de chave, de integridade
referencial e de integridade semntica (Elmasri e Navathe, 2004).
Cockcroft (1997) estende essa classificao com o objetivo de abranger as
peculiaridades dos dados espaciais, incluindo restries topolgicas,
semnticas e definidas pelo usurio. Restries de integridade topolgicas
consideram as propriedades geomtricas e as relaes espaciais dos
objetos. Existem vrios estudos tericos dos princpios que formalmente
definem os relacionamentos espaciais (Egenhofer e Franzosa, 1991).
Esses princpios podem ser aplicados entre entidades para prover a base
do controle de integridade. As restries de integridade semnticas dizem
respeito ao significado implcito s feies geogrficas; um exemplo desta
restrio uma regra que impede que edifcios sejam interceptados por
trechos de logradouro. As restries de integridade definidas pelo usurio
permitem manter a consistncia do banco de dados atuando como
regras de negcio. Um exemplo do uso desta restrio na localizao
de postos de gasolina, os quais, por razo legal, precisam estar a pelo
menos 200 metros de distncia de qualquer escola. Restries definidas
pelo usurio podem ser armazenadas e garantidas por um repositrio
ativo.
As primitivas dos diagramas de classe, transformao e apresentao
so apresentadas a seguir.
3.4.2 Diagrama de classes
No OMT-G o diagrama de classes usado para descrever a estrutura e o
contedo de um banco de dados geogrfico. Ele contem elementos
especficos da estrutura de um banco de dados, em especial classes de
objetos e seus relacionamentos. O diagrama de classes contem apenas
regras e descries que definem conceitualmente como os dados sero
estruturados, incluindo a informao do tipo de representao que ser
adotada para cada classe. Por esta razo, o diagrama de classe o produto
fundamental do nvel de representao conceitual (Figura 3.1). A seguir

99
3. Modelagem conceitual de dados geogrficos

esto descritas as primitivas do modelo OMT-G que so usadas para


criar o diagrama de classes para as aplicaes geogrficas.
Classes
As classes definidas pelo modelo OMT-G representam os trs grandes
grupos de dados (contnuos, discretos e no-espaciais) que podem ser
encontrados nas aplicaes geogrficas, proporcionando assim, uma viso
integrada do espao modelado. Suas classes podem ser georreferenciadas
ou convencionais.
A distino entre classes convencionais e georreferenciadas permite
que aplicaes diferentes compartilhem dados no espaciais, desta forma
facilitando o desenvolvimento de aplicaes integradas e a reutilizao de
dados. A classe georreferenciada descreve um conjunto de objetos que
possuem representao espacial e esto associados a regies da superfcie
da terra (Cmara, 1995), representando a viso de campos e de objetos. A
classe Convencional descreve um conjunto de objetos com propriedades,
comportamento, relacionamentos, e semntica semelhantes, e que
possuem alguma relao com os objetos espaciais, mas que no possuem
propriedades geomtricas.
As classes georreferenciadas so especializadas em classes do tipo geo-
campo e geo-objeto. Classes geo-campo representam objetos e fenmenos
distribudos continuamente no espao, correspondendo a variveis como
tipo de solo, relevo e geologia (Cmara, 1995). Classes geo-objeto
representam objetos geogrficos particulares, individualizveis,
associados a elementos do mundo real, como edifcios, rios e rvores. As
classes covencionais so simbolizadas exatamente como na UML. As
classes georreferenciadas so simbolizadas no modelo OMT-G de forma
semelhante (Figura 3.2a), incluindo no canto superior esquerdo um
retngulo que usado para indicar a forma geomtrica da representao.
Em ambos os casos, smbolos simplificados podem ser usados. Os objetos
podem ou no ter atributos no espaciais associados, listados na seo
central da representao completa. Mtodos ou operaes so
especificados na seo inferior do retngulo.
O modelo OMT-G apresenta um conjunto fixo de alternativas de
representao geomtrica, usando uma simbologia que distingue geo-
objetos e geo-campos (Figura 3.3 e Figura 3.4).

100
Modelo de dados OMT-G

Nome da
classe Nome da
Classe classe
Atributos
georreferenciada
Operaes

Nome da classe

Classe convencional Atributos Nome da classe

Operaes

(a) (b)
representao representao
completa simplificada

Figura 3.2 Notao grfica para as classes do modelo OMT-G.

O modelo OMT-G define cinco classes descendentes de geo-campo:


isolinhas, subdiviso planar, tesselao, amostragem e malha triangular
(triangulated irregular network, TIN) (Figura 3.3), e duas classes
descendentes de geo-objeto: geo-objeto com geometria e geo-objeto com
geometria e topologia (Figura 3.4).

Rede triangular
irregular Isolinhas Tesselao Amostras
Subdiviso planar
Curvas de Imagem Pontos
Temperatura Pedologia
nvel LANDSAT cotados
Atributos Grficos Atributos Grficos

Atributos Atributos

Figura 3.3 Geo-campos.

A classe geo-objeto com geometria representa objetos que possuem


apenas propriedades geomtricas, e especializada em classes: Ponto,
Linha e Polgono. Como exemplo citamos, respectivamente, rvore, meio-
fio e edificao (Figura 3.4). A classe geo-objeto com geometria e
topologia representa objetos que possuem, alm das propriedades
geomtricas, propriedades de conectividade topolgica, sendo
especificamente voltadas para a representao de estruturas em rede, tais
como sistemas de abastecimento de gua ou fornecimento de energia

101
3. Modelagem conceitual de dados geogrficos

eltrica. Essas propriedades esto presentes em classes descendentes que


representam ns e arcos, da forma usualmente adotada na teoria dos
grafos. Os arcos podem ser unidirecionais, como em redes de esgoto, ou
bidirecionais, como em redes de telecomunicaes. Assim, as
especializaes previstas so denominadas n de rede, arco unidirecional e
arco bidirecional. Os segmentos orientados traduzem o sentido do fluxo
da rede, se unidirecional ou bidirecional, dando mais semntica
representao. O foco do modelo OMT-G com respeito a redes no est
concentrado na implementao do relacionamento entre seus elementos,
mas sim na semntica da conexo entre elementos de rede, que um
fator relevante para o estabelecimento de regras que garantam a
integridade do banco de dados. Nas aplicaes de rede os
relacionamentos do tipo conectividade e adjacncia so fundamentais.
Alguns SIG oferecem suporte ao armazenamento desses tipos de
relacionamentos.

Geo-objetos com geometria


Ponto Linha Polgono

rvore Meio-fio Edificao

Geo-objetos com geometria e topologia


Linha unidirecional Linha bidirecional N de rede
Trecho de Tubulao de
Cruzamento
esgoto gua

Figura 3.4 Geo-objetos.

102
Modelo de dados OMT-G

Relacionamentos
Um problema existente na maioria dos modelos de dados o fato deles
ignorarem a possibilidade de modelagem dos relacionamentos entre
fenmenos do mundo real (Oliveira et al., 1997). Considerando a
importncia das relaes espaciais e no espaciais na compreenso do
espao modelado, o modelo OMT-G representa trs tipos de
relacionamentos entre suas classes: associaes simples, relacionamentos
topolgicos em rede e relacionamentos espaciais. A discriminao de tais
relacionamentos tem o objetivo de definir explicitamente o tipo de
interao que ocorre entre as classes.
Associaes simples representam relacionamentos estruturais entre
objetos de classes diferentes, convencionais ou georreferenciadas.
Relacionamentos espaciais representam relaes topolgicas, mtricas, de
ordem e fuzzy. Algumas relaes podem ser derivadas automaticamente,
a partir da forma geomtrica do objeto, no momento da entrada de dados
ou da execuo de alguma anlise espacial. Relacionamentos topolgicos
so um exemplo dessa possibilidade. Outras relaes no entanto,
precisam ser especificadas explicitamente pelo usurio, para permitir que
o sistema armazene e mantenha atualizada aquela informao. Estas
relaes so chamadas de explcitas (Peuquet, 1984).
No modelo OMT-G, associaes simples so indicadas por linhas
contnuas, enquanto relacionamentos espaciais so indicados por linhas
pontilhadas (Figura 3.5a/b). Isso torna fcil a distino visual entre
relacionamentos baseados em atributos alfanumricos e baseados na
localizao e forma geomtrica dos objetos. O nome do relacionamento
anotado sobre a linha, e uma seta usada para deixar clara a direo de
leitura (por exemplo, na Figura 3.5b, l-se lote contm edificao).
Os relacionamentos de rede so relacionamentos entre objetos que
esto conectados uns com os outros. Relacionamentos de rede so
indicados por duas linhas pontilhadas paralelas, entre as quais o nome do
relacionamento anotado (Figura 3.5c). Os relacionamentos so em
geral especificados entre uma classe de ns e uma classe de arcos, mas
estruturas de redes sem ns podem ser definidas, especificando um
relacionamento recursivo sobre uma classe de arcos (Figura 3.5d).

103
3. Modelagem conceitual de dados geogrficos

Edificao Edificao Lote


Pertence a Contm
Proprietrio

(a) Associao simples (b) Relacionamento espacial

Rodovia
Segmento de
Cruzamento
logradouro
Rede viria

Malha rodoviria

(c) Relacionamento de rede arco-n (d) Relacionamento de rede arco-arco

Figura 3.5 Relacionamentos.


Com base em trabalhos anteriores (Cmara, 1995) (Egenhofer e
Franzosa, 1991) (Egenhofer e Herring, 1990), o modelo OMT-G
considera um conjunto de relacionamentos espaciais entre classes
georreferenciadas. Em (Clementini et al., 1993), um conjunto mnimo de
relacionamentos espaciais identificado, compreendendo somente cinco
relacionamentos espaciais, a partir dos quais todos os outros podem ser
especificados: toca, em, cruza, sobrepe e disjunto. Relacionamentos
definidos com base nas matrizes de 4 intersees (Egenhofer e Franzosa,
1991) e de 9 intersees (Egenhofer, 1993) tm sido adotados de forma
crescente pelos SIG e SGBD espaciais comerciais. Entretanto,
consideramos que, eventualmente, um conjunto maior de
relacionamentos necessrio devido a fatores culturais ou semnticos
que so familiares para os usurios, incluindo relacionamentos de
significado difuso, tais como perto de, ou ao norte de (Goyal, 2000).
Alguns relacionamentos s so possveis entre determinadas classes,
pois so dependentes da representao geomtrica. Por exemplo, o
relacionamento contm pressupe que uma das classes envolvidas seja
um polgono. Neste aspecto, as aplicaes tradicionais diferem das
geogrficas, onde as associaes entre classes convencionais podem ser
feitas livremente, sendo independente de fatores como comportamento
geomtrico. O conjunto de conceitos que o usurio tem sobre cada objeto
do mundo real sugere uma determinada representao porque existe
uma interdependncia entre a representao, o tipo de interpretao e a
finalidade que ser dada a cada entidade geogrfica. No modelo OMT-G

104
Modelo de dados OMT-G

isto considerado para que sejam estabelecidas as relaes que envolvem


classes georreferenciadas.
Cardinalidade
Os relacionamentos so caracterizados por sua cardinalidade. A
cardinalidade representa o nmero de instncias de uma classe que
podem estar associadas a instncias da outra classe. A notao de
cardinalidade adotada pelo modelo OMT-G (Figura 3.6) a mesma
usada na UML (Rational Software Corporation, 1997).

0..* 1
Nome da classe Nome da classe

Zero ou mais Exatamente um

1..* 0..1
Nome da classe Nome da classe

Um ou mais Zero ou um
Figura 3.6 Cardinalidade.

Generalizao e especializao
Generalizao o processo de definio de classes mais genricas
(superclasses) a partir de classes com caractersticas semelhantes
(subclasses) (Elmasri e Navathe, 2004) (Laender e Flynn, 1994). A
especializao o processo inverso, no qual classes mais especficas so
detalhadas a partir de classes genricas, adicionando novas propriedades
na forma de atributos. Cada subclasse herda atributos, operaes e
associaes da superclasse.
No modelo OMT-G, as abstraes de generalizao e especializao
se aplicam tanto a classes georreferenciadas quanto a classes
convencionais, seguindo as definies e a notao propostas na UML, em
que um tringulo conecta a superclasse a suas subclasses. (Figura 3.7).
Cada generalizao pode ter um discriminador associado, que indica qual

105
3. Modelagem conceitual de dados geogrficos

propriedade ou caracterstica est sendo abstrada pelo relacionamento de


generalizao.

Lote
Propriedade

Tipo de
propriedade Ocupao

Lote
Propriedade Propriedade Lote vago
edificado
territorial predial

(a) Notao UML (b) Generalizao espacial

Figura 3.7 - Generalizao/especializao.

Uma generalizao (espacial ou no) pode ser especificada como total


ou parcial (Laender e Flynn, 1994; Rational Software Corporation, 1997).
Uma generalizao total quando a unio de todas as instncias das
subclasses equivale ao conjunto completo de instncias da superclasse. A
UML representa a totalidade atravs do uso dos elementos de restrio
predefinidos como completo e incompleto, mas no modelo OMT-G foi
adotada a notao introduzida em (Laender e Flynn, 1994), na qual um
ponto colocado no pice do tringulo para denotar a totalidade (Figura
3.8). Alm disso, o modelo OMT-G tambm adota a notao OMT
(Rumbaugh et al., 1991) para os elementos de restrio predefinidos
como disjunto e sobreposto da UML, ou seja, em uma generalizao
disjunta o tringulo deixado em branco e em uma generalizao
sobreposta o tringulo preenchido. Portanto, a combinao de
disjuno e totalidade gera quatro tipos de restries aplicveis a
generalizao/especializao. A Figura 3.8 apresenta exemplos de cada
combinao.
Agregao
A agregao uma forma especial de associao entre objetos, onde se
considera que um deles formado a partir de outros. A notao grfica
usada no modelo OMT-G segue a empregada na UML (Figura 3.9).
Uma agregao pode ocorrer entre classes convencionais, entre classes

106
Modelo de dados OMT-G

georreferenciadas ou entre uma classe convencional e uma classe


georreferenciada (Figura 3.10). Quando a agregao ocorre entre classes
georreferenciadas, necessrio usar a agregao espacial.

Placa de Atividade
trnsito econmica

Sinal Ramo de atividade

Ponto de Parada
Comrcio Indstria
nibus proibida

(a) Disjunto/parcial (b) Sobreposto/parcial

Escola Terminal

Tipo de escola Tipo de transporte

Escola Escola
Metr nibus
pblica particular

(c) Disjunto/total (d) Sobreposto/total

Figura 3.8 Exemplos de generalizao espacial.

Todo Partes

Figura 3.9 Agregao na notao UML.

Trecho
Logradouro

Figura 3.10 Agregao entre uma classe convencional e uma georreferenciada.

107
3. Modelagem conceitual de dados geogrficos

A agregao espacial um caso especial de agregao na qual so


explicitados relacionamentos topolgicos todo-parte (Abrantes e
Carapua, 1994) (Ksters et al., 1997). A utilizao desse tipo de
agregao impe restries de integridade espacial no que diz respeito
existncia do objeto agregado e dos sub-objetos. Alm de o modelo
ganhar mais clareza e expressividade, a observao dessas regras
contribui para a manuteno da integridade semntica do banco de
dados geogrfico. Muitos erros no processo de entrada de dados podem
ser evitados, se procedimentos baseados nessas restries forem
implementados.
A agregao espacial indica que a geometria de cada parte deve estar
contida na geometria do todo. No permitida a superposio entre
geometria das partes, a geometria do todo deve ser totalmente coberta
pela geometria das partes, configurando assim, uma partio do plano ou
subdiviso planar (Davis Jr., 2000) (Preparata e Shamos, 1985). A notao
para essa primitiva apresentada na Figura 3.11, onde mostra uma
situao em que quadras so compostas de lotes, ou seja, as quadras so
geometricamente equivalentes unio dos lotes contidos nelas.

Quadra Lote

Figura 3.11 Agregao espacial (todo-parte).

Generalizao conceitual
A generalizao1, no sentido cartogrfico, pode ser definida como uma
srie de transformaes que so realizadas sobre a representao da
informao espacial, cujo objetivo melhorar a legibilidade e aumentar a
facilidade de compreenso dos dados por parte do usurio do mapa. Por
exemplo, um objeto do mundo real pode ser diversas representaes
espaciais, de acordo com a escala de visualizao. Uma cidade pode ser

1
No se deve confundir a generalizao cartogrfica com a generalizao utilizada como um tipo
de abstrao usado nos modelos de dados semnticos e orientados a objetos ELMASRI, R.;
NAVATHE, S. Fundamentals of Database Systems. Pearson Education, 2004..

108
Modelo de dados OMT-G

representada em um mapa de escala pequena por um ponto, e como um


polgono em um mapa de escala maior (Davis Jr. e Laender, 1999). Neste
sentido, o termo representao usado no sentido de representao da
forma geomtrica do objeto geogrfico.
Definir se a representao deve ser simples ou mais elaborada
depende da percepo que o usurio tem do objeto correspondente no
mundo real, e como essa representao afeta os relacionamentos espaciais
que podem ser estabelecidos com outros objetos modelados.
Considerando a necessidade de tais relacionamentos, pode haver a
demanda para mais de uma representao para um dado objeto. Isso
acontece, por exemplo, quando a informao geogrfica precisa ser
compartilhada entre diversas aplicaes em um ambiente corporativo (ou
cooperativo).
Portanto, no desenvolvimento de aplicaes geogrficas, existem
situaes em que duas ou mais representaes para um objeto do mundo
real precisam coexistir. Isso significa que, dependendo da viso do
usurio, necessrio ter formas geomtricas distintas para representar o
mesmo objeto geogrfico, com a mesma resoluo e ao mesmo tempo.
Alm disso, freqente a necessidade de se representar o mesmo objeto
com graus variveis de resoluo e detalhamento, configurando
representaes adequadas para diferentes faixas de escalas.
A primitiva de generalizao conceitual foi includa no modelo OMT-
G para registrar a necessidade de representaes diferentes para um
mesmo objeto. Nesse tipo de relacionamento, a superclasse no tem uma
representao especfica, j que poder ser percebida de maneiras
diferentes, conforme especificado nas subclasses. Essas so representadas
por formas geomtricas distintas, podendo herdar os atributos
alfanumricos da superclasse e ainda possuir atributos prprios. O
objetivo permitir a especificao de relacionamentos independentes
envolvendo cada alternativa de representao considerada.
A generalizao conceitual pode ocorrer em duas variaes: de acordo
com a forma geomtrica (Figura 3.12a) ou de acordo com a escala (Figura
3.12b). A variao de acordo com a forma utilizada para registrar a
existncia de mltiplas representaes para uma classe, independente de
escala. A descrio geomtrica da superclasse deduzida a partir do uso

109
3. Modelagem conceitual de dados geogrficos

das subclasses. Por exemplo, um rio pode ser percebido como um espao
entre suas margens, como um polgono de gua ou como um fluxo (linha
direcionada), formando a rede hidrogrfica (Figura 3.12a). A variao de
acordo com a escala usada na representao de diferentes aspectos
geomtricos de uma classe, cada aspecto corresponde a uma faixa de
escalas. Uma cidade pode ser representada por suas fronteiras polticas
(um polgono) em uma escala maior, e por um smbolo (um ponto) em
uma escala menor (Figura 3.12b).

Rio

Forma

rea Segmento de
Eixo de rio Margens
inundada rio

(a) Variao de acordo com a forma (sobreposto)

Cidade

Escala

Sede Fronteiras
municipal municipais

(b) Variao de acordo com a escala (disjunto)

Figura 3.12 - Generalizao conceitual.

Uma estrutura como a apresentada na Figura 3.12 rara em


esquemas de aplicaes geogrficas, porque as decises quanto
modelagem de so freqentemente (e erroneamente) tomadas j
pensando na apresentao final, conforme exigido pela aplicao que est
sendo modelada. Ou seja, o esquema muitas vezes concebido visando

110
Modelo de dados OMT-G

um tipo especfico de visualizao, antecipando uma exigncia da


aplicao. Esta tendncia acaba por inibir usos que exijam representaes
alternativas, ou aplicaes que compartilhem dados geogrficos (Davis
Jr., 2000).
3.4.3 Diagrama de transformao
O diagrama de transformao, proposto para o modelo OMT-G em
(Davis Jr. e Laender, 1999), adota uma notao semelhante proposta na
UML para os diagramas de estados e de atividades (Rational Software
Corporation, 1997), e usado para especificar transformaes entre
classes. Como tanto a origem quanto o resultado das transformaes so
sempre as representaes de cada classe, o diagrama de transformao
tambm est no nvel conceitual de representao. Observe que o
diagrama de transformao no pretende descrever aspectos dinmicos
da aplicao, como a interface com o usurio e a execuo de consultas,
restringindo-se manipulao de representaes.
Os diagramas de transformao so baseados nas primitivas de classe,
conforme definidas para os diagramas de classes. As classes que esto
envolvidas em algum tipo de transformao so conectadas por meio de
linhas contnuas, com setas que indicam a direo da transformao. Os
operadores de transformao (TR) envolvidos e seus parmetros, quando
houver, so indicados por meio de texto sobre a linha que indica a
transformao.
No diagrama de transformao, pode-se indicar se o resultado da
transformao precisa ou no ser materializado. Classes resultantes
muito simples, ou que so passos intermedirios em uma transformao
mais complexa, freqentemente no precisam ser materializadas, e
podem ser armazenadas apenas temporariamente. Tais classes
temporrias so indicadas usando linhas tracejadas em seu contorno. As
classes que so resultantes de alguma transformao e que precisam ser
materializadas (devido complexidade do processo ou s necessidades
especficas da aplicao) so denotadas com linhas contnuas, exatamente
como no diagrama de classes.
As transformaes indicadas no diagrama de classes podem relacionar
qualquer nmero de classes originais, bem como qualquer nmero de
classes resultantes, dependendo da natureza da operao de

111
3. Modelagem conceitual de dados geogrficos

transformao. Cadeias de transformaes tambm podem ser definidas,


permitindo, dessa forma, a especificao de processos complexos de
anlise espacial.
Um operador de transformao adequado para o diagrama de
transformao pode ser basicamente qualquer algoritmo que manipula e
modifica a representao de um objeto. Algumas operaes podem ser
melhor caracterizadas como operaes TR quando existe apenas uma
classe de origem e uma classe resultante, e a classe resultante ou (1) de
natureza diferente da classe original (ou seja, pertence a uma classe
georreferenciada diferente), ou (2) menos detalhada que a classe original,
mantendo a natureza da representao (Davis Jr. e Laender, 1999).
A especificao de transformaes no diagrama de transformao em
geral exigida quando as primitivas de generalizao conceitual e de
agregao espacial so usadas no diagrama de classes. Essas duas
primitivas so indicativas da possibilidade de produzir uma
representao a partir de outras.
Um estudo das possveis transformaes entre representaes de geo-
objetos e geo-campos pode ser visto em (Davis Jr., 2000) (Davis Jr. e
Laender, 1999). Os operadores aplicados para cada transformao so
baseados em algoritmos definidos nas reas de geometria computacional,
generalizao cartogrfica e anlise espacial. A Seo 3.7 traz um
exemplo do uso de diagramas de transformao.
3.4.4 Diagrama de apresentao
O diagrama de apresentao para o modelo OMT-G pertence ao nvel de
apresentao. Em contraste com o conceito de representao, o termo
apresentao usado no sentido de determinar o aspecto visual ou
grfico (envolvendo parmetros como cor, tipo de linha, espessura da
linha e padro de hachura), de geo-objetos e geo-campos, no papel ou na
tela do computador.
No diagrama de apresentao esto reunidos os requisitos definidos
pelo usurio quanto s alternativas de apresentao e sada para cada
objeto geogrfico. Essas alternativas podem incluir apresentaes criadas
especificamente para visualizao em tela, para impresso na forma de

112
Modelo de dados OMT-G

mapas ou cartas, para interpretao visual em um processo de anlise, e


outras.
Cada apresentao definida a partir de uma representao contida
no diagrama de classes ou no diagrama de transformao do nvel de
representao. Operaes de transformao para apresentao (TA) so
especificadas, permitindo obter o aspecto visual desejado a partir da
simples forma geomtrica, definida para a representao. Observe-se que
a operao TA no modifica a alternativa de representao definida
previamente, nem muda o detalhamento definido no nvel de
representao. Se isso for necessrio, uma nova representao tem de ser
criada a partir de uma representao existente, usando as ferramentas de
especificao de mltiplas representaes (como a primitiva de
generalizao conceitual) e registrando essa demanda nos diagramas de
classes e de transformao.
O diagrama de apresentao necessita de apenas trs primitivas. A
primeira a prpria primitiva de classes, definida para os diagramas de
classes e de transformao. A segunda usada para indicar a operao
TA, de maneira semelhante usada para denotar as transformaes no
diagrama de transformao. composta de uma linha tracejada simples,
com uma seta que indica o sentido da operao, sobre a qual
especificado o operador a ser usado. No processo de especificao dessa
expresso de transformao, quaisquer caractersticas geomtricas ou
atributos alfanumricos que foram definidos no nvel de representao
para a classe podem ser usadas como parmetros. As linhas indicando
operaes TA so tracejadas para distingui-las visualmente das operaes
TR, especificadas no diagrama de transformao com linhas contnuas. A
terceira primitiva serve para especificar uma apresentao, e contm duas
sees. A seo superior indica o nome da classe, o nome da
apresentao, e a aplicao na qual usada. Nessa seo pode-se
especificar uma faixa de escalas onde a apresentao ser usada. A
segunda dividida em duas partes: esquerda, um pictograma indica o
aspecto visual dos objetos aps a transformao e direita so lanadas
especificaes mais precisas quanto aos atributos grficos, incluindo cor
da linha, tipo e espessura de linha, padro de preenchimento, cor de
preenchimento, e nome do smbolo (Figura 3.13). A especificao dos
atributos grficos pode ser feita j considerando a codificao de smbolos

113
3. Modelagem conceitual de dados geogrficos

usada pelo sistema de informao geogrfica subjacente. Pode existir


qualquer nmero de pictogramas na seo esquerda da primitiva de
especificao de apresentaes, cada qual associada a um valor ou faixa
de valores obtidos a partir das caractersticas de cada objeto. Nesse caso, a
seo da direita deve detalhar os atributos grficos de cada apresentao
gerada. Atributos comuns podem ser especificados apenas uma vez,
enquanto atributos variveis so especificados como listas de valores
individuais. Como no caso do diagrama de transformao, os resultados
das transformaes (ou seja, as apresentaes) so indicados com linhas
tracejadas quando no precisam ser materializados no banco de dados e
com linhas contnuas no caso contrrio.

Cidade ponto
default
Apresentao em tela

ApresentarSimbolo()
Cor = preto
Nome do smbolo = S03

Cidade ponto

Nome
Estado
Populao
Cidade ponto
Faixas de populao
Mapa rodovirio

< 10
Simbolizar(Populao / 1000)
10-20
Cor = preto
20-50 Nome do smbolo = {S02,
S03, S04, S05, S06}
50-100

> 100

Figura 3.13 Diagrama de apresentao para a classe cidade ponto.

Cada classe georreferenciada especificada no diagrama de classes


precisa ter pelo menos uma apresentao correspondente especificada no
diagrama de apresentao. Caso exista mais de uma apresentao para
uma dada representao, uma delas deve ser identificada como a default.
Alternativamente, cada usurio ou aplicao pode eleger sua
apresentao default.

114
Restries de integridade espaciais

As operaes TA mais comuns envolvem a simples definio de


atributos grficos. No entanto, outros operadores mais sofisticados,
muitos dos quais derivados de operaes da cartografia temtica
(classificao, simbolizao, exagero, deslocamento, destaque) tambm
podem ser empregados. Uma descrio detalhada dos operadores TA
pode ser encontrada em (Davis Jr., 2000) (Davis Jr. e Laender, 1999). A
Seo 3.7 exemplifica o uso deste diagrama.

3.5 Restries de integridade espaciais


No modelo OMT-G, existem diversas restries de integridade que so
implcitas s primitivas do modelo ou que podem ser deduzidas a partir
da anlise dos diagramas. Assim, restries de integridade topolgica so
definidas atravs de regras para geo-campos (Seo 3.5.1),
relacionamentos espaciais (Seo 3.5.2), relacionamentos em rede (Seo
3.5.3) e para agregao espacial (Seo 3.5.4). Da mesma forma,
restries de integridade semntica so definidas atravs de regras
associadas a relacionamentos espaciais. J as restries de integridade
definidas pelo usurio podem ser modeladas como mtodos associados a
cada classe. No esto includas aqui restries de integridade referentes
s formas geomtricas vetoriais bsicas (pontos, linhas e polgonos),
fundamentais em SIG e SGBD espaciais, pois consideramos que so
inerentes sua implementao em qualquer produto.
Listamos a seguir as restries de integridade inerentes s demais
primitivas e conceitos do modelo OMT-G, baseadas em trabalhos
anteriores (Borges et al., 1999) (Davis Jr. et al., 2001, 2005).
3.5.1 Restries de integridade para geo-campos
As restries de integridade R1 a R5 so decorrentes do conceito de geo-
campo e de da semntica inerente a cada uma das representaes
suportada pelo modelo OMT-G.
R1 Restrio de Preenchimento do Plano. Seja C um geo-campo e seja P
um ponto tal que P F . Ento o valor V(P) = f(P, C), i.e., o valor de C em P,
pode ser univocamente determinado.
R2 Isolinhas. Seja C um geo-campo. Sejam v 0 , v1 , K , v n n+1 pontos no
plano. Sejam a 0 = v 0 v1 , a1 = v1v 2 , K , a n 1 = v n 1 v n n segmentos,

115
3. Modelagem conceitual de dados geogrficos

conectando os pontos. Esses segmentos formam uma isolinha L se, e


somente se, (1) a interseo dos segmentos adjacentes em L ocorre
apenas no ponto extremo compartilhado pelos segmentos (i. e.,
ai ai +1 = vi +1 ), (2) segmentos no adjacentes no se interceptam (ou
seja, ai a j = para todo i, j tais que j i + 1 ), e (3) o valor de C em
cada ponto P tal que P a i , 0 i n 1 , constante.
R3 Tesselao. Seja C um geo-campo. Seja T = {t0, t1, t2, ..., tn} um
conjunto de clulas de forma regular que cobrem C. T uma tesselao de
C se, e somente se, para qualquer ponto P F , existe exatamente uma
clula correspondente t i T e, para cada clula ti, o valor de C
determinado.
R4 Subdiviso Planar. Seja C um geo-campo. Seja A = {A0, A1, A2, ...,
An} um conjunto de polgonos tais que Ai F para todo i, sendo
0 i n 1 . A forma uma subdiviso planar que representa C se, e
somente se, para qualquer ponto P F existir exatamente um polgono
Ai correspondente, Ai A , para o qual o valor de C determinado (ou
seja, os polgonos no se sobrepem e cobrem C completamente).
R5 Malha Triangular. Seja C um geo-campo. Seja T = {T0, T1, T2, ...,
Tn} um conjunto de tringulos tais que Ti F para todo i, sendo
0 i n 1 . T forma uma malha triangular que representa C se, e
somente se, para qualquer ponto P F , existir exatamente um tringulo
Ti correspondente, Ti T , e o valor de C determinado em todos os
vrtices de Ti.
3.5.2 Restries de integridade referentes a relacionamentos
topolgicos
Restries referentes a relacionamentos espaciais foram originalmente
propostas para o modelo OMT-G baseadas em (Clementini et al., 1993),
conforme apresentado em (Borges et al., 2002). Uma descrio detalhada
destes relacionamentos est apresentada na Seo 2.9 deste livro.
3.5.3 Restries de integridade para estruturas em rede
Estruturas em rede, ou seja, formadas por arcos e ns (unidirecionados
ou bidirecionados) esto sujeitas s restries usuais impostas a grafos,
enquanto estruturas de dados. Como o modelo OMT-G considera

116
Mapeamento para esquemas de implementao

tambm o caso de redes formadas apenas por arcos, so apresentados a


seguir duas restries de integridade correspondentes a esses casos.
R6 Redes arco-n. Seja G = {N, A} uma estrutura de rede, composta de
um conjunto de ns N = {n0, n1, ..., np} e um conjunto de arcos A = {a0,
a1, ..., aq}. Membros de N e membros de A so relacionados de acordo
com as seguintes restries: (1) para cada n ni N deve existir pelo
menos um arco a k A ; (2) para cada arco a k A devem existir
n ,n N
exatamente dois ns i j .
R7 Redes arco-arco. Seja G = {A} uma estrutura de rede, composta de
um conjunto de arcos A = {a0, a1, ..., aq}. A seguinte restrio se aplica:
Cada arco a k A deve estar relacionado a pelo menos um outro arco
a i A , sendo k i .

3.5.4 Restries de integridade referentes agregao espacial


A restrio a seguir necessria para garantir a correta semntica de
relacionamentos todo-parte no banco de dados.
R8 Agregao espacial. Seja P = {P0 , P1 , K , Pn } um conjunto de geo-
objetos. P forma outro objeto, W , por agregao espacial se, e somente se
n

(1) Pi W = Pi para todo i tal que 0 i n , e (2) W U Pi = W , e ainda
i =0
(3) ((Pi toca Pj) (Pi disjunto Pj)) = VERDADEIRO para todo i, j tais
que i j .

3.6 Mapeamento para esquemas de implementao


Apresentamos a seguir uma proposta de mapeamento de esquemas
OMT-G no nvel de representao conceitual para esquemas de
implementao. Em seguida, faremos algumas consideraes sobre
alternativas de estruturao fsica para corresponder a classes
georreferenciadas.

117
3. Modelagem conceitual de dados geogrficos

3.6.1 Mapeamento de esquemas conceituais OMT-G para esquemas


de implementao
Na fase de mapeamento, necessrio o conhecimento de qual SGBD
ser usado na aplicao. No caso deste captulo, a fim de simplificar a
explicao, consideramos por enquanto um SGBD espacial objeto-
relacional genrico, em que os dados alfanumricos e geogrficos esto
codificados num mesmo registro, e os dados geogrficos so codificados
de acordo com as especificaes do OpenGIS Consortium (1999). Como
veremos na prxima seo, possvel optar entre algumas organizaes
fsicas diferentes; esta opo pode ser feita aps a concluso do
mapeamento, ou em uma etapa posterior de tuning do banco de dados.
Inicialmente, faremos um mapeamento das classes de objetos
presentes no diagrama de classes do OMT-G para estruturas objeto-
relacionais adequadas. Em seguida, cuidaremos da escolha de estruturas
de dados para a implementao das alternativas de representao
previstas no modelo OMT-G. Por fim, faremos o mapeamento dos
relacionamentos necessrios. Observe que relacionamentos espaciais em
geral no precisam ser materializados no esquema de implementao,
uma vez que a associao entre os objetos envolvidos pode ser feita por
meio de algoritmos geomtricos (vide Captulo 2 deste livro).
A Tabela 3.1 uma adaptao da tabela de correspondncia entre os
modelos ER e relacional apresentada em (Elmasri e Navathe, 2004), e
resume uma correspondncia bsica entre os construtores dos modelos
OMT-G e objeto-relacional.

Tabela 3.1 - Mapeamento entre primitivas OMT-G e objeto-relacionais


Modelo OMT-G Modelo Objeto-relacional
Classe Georreferenciada Relao entidade com representao
geomtrica associada (vide Seo 3.6.2); se
do tipo geo-campo, restries de
integridade referentes representao
adotada (R1 a R5)
Classe Convencional Relao entidade

118
Mapeamento para esquemas de implementao

Associao simples com Par chave estrangeira-chave primria


cardinalidade 1:1 ou 1: N
Associao simples com Relao relacionamento e dois pares
cardinalidade N : M chave estrangeira-chave primria
Relacionamento espacial Restrio de integridade relativa ao tipo de
topolgico relacionamento espacial (R6 a R12)
Relacionamento em rede arco- Dois pares chave estrangeira-chave
n primria entre a relao arco e a relao n
(n anterior e n posterior); restrio de
integridade espacial adequada (R13)
Relacionamento em rede arco- Dois pares chave estrangeira-chave
arco primria em auto-relacionamento sobre a
relao arco; restrio de integridade
espacial adequada (R14)
Agregao Par chave estrangeira-chave primria entre
a classe parte e a classe todo
Agregao espacial Restrio de integridade relativa a
agregao espacial (R15)
Generalizao / Restries de integridade entre subclasses e
especializao superclasse (Elmasri e Navathe, 2004 Cap.
7)
Atributo simples Atributo simples (coluna)
Atributo composto Conjunto de atributos simples
componentes
Atributo multivalorado Relao e chave estrangeira
Atributo-chave Chave primria (ou candidata)
Mtodos ou operaes Triggers ou programas associados

119
3. Modelagem conceitual de dados geogrficos

Detalhamos a seguir os quatro principais passos do mapeamento de


esquemas conceituais OMT-G para esquemas de implementao, nos
quais a correspondncia expressa na Tabela 3.1 empregada.
Passo 1: Mapeamento de classes georreferenciadas e convencionais.
Para cada classe convencional presente no diagrama, criar uma tabela,
sendo que cada atributo alfanumrico da classe transformado em uma
coluna da tabela. Escolher um dos atributos-chave para ser a chave
primria da tabela; caso nenhum atributo atenda aos requisitos de no-
duplicidade e inexistncia de valores nulos, um novo atributo precisa ser
criado para essa finalidade.
O mesmo procedimento se aplica a classes georreferenciadas,
decidindo-se adicionalmente a alternativa de representao segundo os
tipos geomtricos disponveis no banco de dados escolhido. A Tabela 3.2
apresenta uma correspondncia entre os tipos geomtricos bsicos do
modelo OMT-G e os propostos pelo Consrcio OpenGIS (1999).
Naturalmente, as representaes de geo-campos exigem mais do que
apenas a codificao geomtrica: atributos devem ser includos de modo a
armazenar o valor do geo-campo associado a cada elemento da
representao.

120
Mapeamento para esquemas de implementao

Tabela 3.2 Tipos Geomtricos

Representao OMT-G Representao OpenGIS


(Simple Features Specification)
Geo-objeto Ponto Point
Geo-objeto Linha LineString
Geo-objeto Polgono Polygon
Geo-objeto N de rede Point
Geo-objeto Arco LineString
unidirecionado
Geo-objeto Arco bidirecionado LineString
Geo-campo Amostras Point
Geo-campo Isolinhas LineString e/ou Polygon
Geo-campo Subdiviso planar Polygon
Geo-campo Triangulao Point (vrtices) e Polygon
(tringulos)
Geo-campo Tesselao GeoRaster, campo binrio longo

Observe-se que tesselaes no OMT-G podem corresponder a dois


tipos de representao fsica sutilmente diferentes: imagens digitais e
grades regulares. Assim, caso a representao conceitual seja uma
tesselao, pode-se optar entre uma representao matricial prpria do
SGBD (como a GeoRaster do OracleTM Spatial) ou um campo binrio
longo, contendo dados binrios em um determinado formato de imagem
ou grade. Em ambos os casos, necessrio ter recursos para recuperar o
valor de uma determinada clula individualmente.
Passo 2: Mapeamento das associaes simples. Para cada
relacionamento por associao simples entre classes, de cardinalidade 1:1,
escolher uma das classes e incluir nela a chave primria da outra, no
papel de chave estrangeira. Para associaes de cardinalidade 1:N, incluir
na tabela correspondente classe do lado N, como chave estrangeira, a

121
3. Modelagem conceitual de dados geogrficos

chave primria da tabela correspondente classe do lado 1. No caso de


associaes de cardinalidade N:M, criar uma tabela intermediria,
contendo as chaves primrias de ambas as tabelas envolvidas, no papel de
chaves estrangeiras de suas respectivas tabelas, e formando, juntas, a
chave primria da nova tabela. O tratamento de associaes simples
independe da existncia ou no de representao geomtrica na tabela.
Tratar desta forma tambm os relacionamentos de agregao
convencionais.
Passo 3: Mapeamento de relacionamentos espaciais. Na maioria dos
casos, relacionamentos espaciais explicitados em diagramas de classe
OMT-G (incluindo agregaes espaciais) no so materializados no
esquema fsico. Por outro lado, constituem declaraes do
relacionamento esperado entre instncias das classes envolvidas, e
freqentemente denotam restries de integridade espaciais.
Assim, o mapeamento ideal de relacionamentos espaciais no causa
alteraes diretamente nas tabelas construdas at este passo, mas requer
a implementao de controles dinmicos (triggers) ou estticos
(verificaes offline de consistncia).
Passo 4: Mapeamento de generalizaes e especializaes. Em
esquemas OMT-G, tanto a superclasse quanto as subclasses recebem, se
forem georreferenciadas, o mesmo tipo de representao geomtrica.
Assim, o mapeamento de generalizaes e especializaes o mesmo
para classes convencionais e georreferenciadas, e pode ainda ser
estendido para generalizaes conceituais. Subclasses especializadas
constituem subconjuntos das instncias das superclasses, contendo
eventualmente atributos prprios. Nesses casos conveniente que as
subclasses sejam tabelas distintas por motivos de gerenciamento da
informao geogrfica e de visualizao. Apesar de estarmos
considerando o uso de um banco de dados objeto-relacional deve-se ter
em mente que a visualizao e a facilidade de manipulao das tabelas
deve sempre nortear o modelo lgico e fsico de um banco de dados
geogrfico. O mapeamento pode ser feito de acordo com uma das
seguintes opes:
Opo 1. Criar uma tabela para a superclasse, contendo todos os seus
atributos e sua chave primria. Criar uma tabela para cada subclasse,

122
Mapeamento para esquemas de implementao

usando a mesma chave primria da superclasse, e tambm


estabelecendo-a como chave estrangeira em relao tabela
correspondente superclasse. Neste caso, a representao geogrfica
dever ficar nas subclasses. Esta abordagem conveniente para
subclasses que necessitam sempre serem visualizadas de forma
distinta como por exemplo, com simbologia diferente ou tipo de trao
diferente. Tambm conveniente para que visualizao seja
automtica no precisando depender de nenhum comando especfico
para que isto acontea. Quando as subclasses herdam todos os
atributos da superclasse e no possuem atributos especficos, ou
quando recebem alguma numerao seqencial essa opo deve ser
usada. Um exemplo do uso de numerao seqencial o caso dos ns
da rede de esgoto, onde cada n recebe uma numerao de cadastro
independente do seu tipo.
Opo 2. Criar uma tabela para cada subclasse, contendo todos os seus
atributos e tambm todos os atributos herdados da superclasse,
inclusive a chave primria. No criar tabela para a superclasse. Essa
abordagem conveniente para subclasses que contenham atributos
prprios e visualizao distinta.
Opo 3. Criar uma nica tabela contendo todos os atributos da
superclasse, inclusive a chave primria, e todos os atributos de cada
subclasse. Acrescentar dois atributos (discriminador), um para indicar
o tipo da subclasse e outro para indicar a qual subclasse pertence cada
linha da tabela. Apesar desta opo ser usada em projetos fsicos de
banco de dados relacionais, ela no adequada a aplicaes
geogrficas por requerer outros tipos de controle para acesso e
visualizao correta dos dados.
A alternativa 1 mais conveniente para especializao/generalizao
total e disjunta, quando as subclasses possurem alguma identificao
nica gerenciada pela superclasse. J a alternativa 2 mais conveniente
para especializao/generalizao total e disjunta, onde as subclasses
possuem atributos prprios. No caso de sobreposio, a alternativa 1
mais conveniente, uma vez que os atributos em comum ficam na tabela
da superclasse. Normalmente, em casos de sobreposio, existe um
conjunto de atributos que so comuns.

123
3. Modelagem conceitual de dados geogrficos

3.6.2 Alternativas de estruturao de tabelas


Para efetivar adequadamente um mapeamento entre um esquema lgico
e um esquema fsico dentro das definies do OpenGIS Consortium,
necessrio discutir algumas alternativas de implementao. O Simple
Features Specifications (SFS) do OGC (1999) se restringe codificao da
forma geomtrica dos objetos, incluindo as coordenadas geogrficas de
seus vrtices e a definio do sistema de coordenadas. No faz parte das
especificaes do OGC a organizao fsica das tabelas, sendo deixada
para o projetista a tarefa de decidir qual a melhor alternativa para
receber os componentes espaciais e alfanumricos de cada classe de
objetos constante do esquema conceitual.
Dependendo do volume relativo de dados e da intensidade do uso, o
projetista pode optar por deixar a representao geomtrica integrada ou
separada dos atributos convencionais. Vamos aqui assumir que a
representao geomtrica possa ser armazenada em uma coluna de uma
tabela, atravs de um mecanismo objeto-relacional, uma extenso
especial, ou mesmo um campo binrio longo. Com isso, configuram-se
trs alternativas:
1. Armazenamento de todas as representaes geomtricas de todos
os objetos de todas as classes em uma nica tabela, relacionando
esta tabela por meio de uma chave estrangeira com diversas
outras tabelas, cada qual contendo os atributos alfanumricos de
uma classe especfica (Figura 3.14).
2. Armazenamento da representao geomtrica em uma coluna de
uma tabela, relacionada com outra tabela contendo os atributos
alfanumricos da classe de objetos atravs de uma chave
estrangeira (Figura 3.15);
3. Armazenamento da representao geomtrica e dos atributos
alfanumricos de uma classe de objetos como colunas da mesma
tabela (Figura 3.16);

124
Mapeamento para esquemas de implementao

GEOMETRIA_TOTAL
Nome da
Geometria id
Tabela
1

TABELA1_ATRIBUTOS

Atrib11 Atrib12 ... id


1

TABELA2_ATRIBUTOS

Atrib21 Atrib22 ... id


1

TABELA3_ATRIBUTOS

Atrib31 Atrib32 ... id


1

Figura 3.14 Alternativa 1: geometrias concentradas em uma nica tabela


(Fonte: (Davis Jr. e Oliveira, 2002)).

TABELA1_GEOMETRIA TABELA1_ATRIBUTOS

Geometria id Atrib1 Atrib2 ... id

1 1

Figura 3.15 Alternativa 2: um par de tabelas para cada classe georreferenciada


(Fonte: (Davis Jr. e Oliveira, 2002)).
TABELA1_GEORREF

Geometria Atrib1 Atrib2 ... id

Figura 3.16 Alternativa 3: geometria e atributos na mesma tabela (Fonte:


(Davis Jr. e Oliveira, 2002)).

A alternativa 1 tende a introduzir um desequilbrio no SGBD,


fazendo com que todas as consultas e operaes envolvendo dados
geomtricos passem pela nica tabela que os armazena. Em um banco de
dados dotado de um volume razoavelmente grande de dados geogrficos,
essa tabela pode rapidamente se tornar um gargalo para todo o sistema.

125
3. Modelagem conceitual de dados geogrficos

Por outro lado, pode-se imaginar que a indexao espacial e as operaes


topolgicas entre classes de objetos sejam eventualmente beneficiadas
pela integrao das representaes geomtricas em uma nica tabela.
tambm possvel imaginar vantagens quanto ao acesso s tabelas de
atributos alfanumricos, que se tornam menos volumosas pela separao
das representaes geomtricas. Esse esquema foi adotado por alguns
SIG no passado, com relativo sucesso.
A alternativa 2 destaca-se por sua flexibilidade, apesar de exigir a
navegao entre tabelas ou a realizao de operaes de juno para que
se possa resgatar a estrutura completa de cada objeto geogrfico. A
separao dos atributos alfanumricos em uma tabela independente
facilita a integrao com aplicaes convencionais. A implementao da
restrio de integridade referencial entre as duas tabelas , no entanto,
indispensvel o que pode se constituir em um problema para a
implementao de aplicaes exclusivamente alfanumricas e que
pretendam operar sobre esses dados.
A terceira alternativa a que mais se assemelha concepo de
objetos geogrficos adotada pelo modelo OMT-G. Cada tupla de cada
tabela passa a corresponder, aproximadamente, a uma instncia de um
objeto, sendo que a tabela contm todas as instncias de uma
determinada classe. Com isso, no so necessrias junes para acessar
dados geomtricos e atributos, o que pode beneficiar aplicaes de anlise
espacial ou mapeamento temtico, em particular aquelas que no exigem
muitos dados alfanumricos. Esta alternativa corresponde ao
mapeamento mais simples de se executar e opo mais conservadora
quanto ao desempenho, considerando uma igual incidncia de operaes
alfanumricas e espaciais.
Observe-se que esquemas baseados na primeira alternativa podem ser
facilmente mapeados para a segunda, dividindo a grande tabela de dados
geomtricos em vrias (o que pode ser feito usando o mecanismo de
vises). Tambm podem ser mapeados para a terceira, pela realizao de
uma juno aps a separao da tabela geomtrica em vrias, o que
tambm pode ser feito usando vises. O mesmo raciocnio pode ser
empregado para implementar um mapeamento entre a alternativa 2 e a
alternativa 3, ou vice-versa.

126
Mapeamento para esquemas de implementao

Uma alternativa adicional consiste na implementao de uma terceira


tabela para viabilizar um relacionamento n:m entre representaes
geomtricas e atributos alfanumricos, dando ao usurio a possibilidade
de combinar esses aspectos de acordo com a sua necessidade (Figura
3.17). Essa terceira tabela deve manter duas chaves estrangeiras, uma
chave da tabela de representaes geomtricas com outra da tabela que
contm os atributos, que juntas compem sua chave primria. Com isso
possvel, por exemplo, manter simultaneamente uma representao
cartogrfica e uma representao esquemtica de uma rede de
distribuio de energia. A situao oposta (vrias tuplas de atributos
relacionadas a uma nica representao geomtrica) tambm til.
Existem diversas aplicaes que armazenam sries temporais de dados,
por exemplo na rea de meteorologia: cada tupla alfanumrica conteria
dados meteorolgicos obtidos em uma localidade em um determinado
dia e horrio, a tupla geomtrica traria a localizao da estao
meteorolgica, e a chave composta seria formada pelo identificador da
estao meteorolgica e pela data e hora da medio.

TABELA1_ENTIDADE

idG + idA
1 1

TABELA1_GEOMETRIA n m TABELA1_ATRIBUTOS

Geometria idG idA Atrib1 Atrib2 ...

Figura 3.17 Alternativa 4: mltiplas representaes e/ou mltiplos conjuntos


de atributos.

No entanto, a opo de manter mais de uma geometria em uma


mesma tabela pode ser implementada usando os bancos de dados
espaciais atuais. Nesse caso, seria utilizada em tabelas que contenham
sempre um ou mais tipos de representao, como por exemplo a frente
principal de um lote e o contorno do lote. importante que, em tabelas
desse tipo, as instncias disponham sempre das representaes

127
3. Modelagem conceitual de dados geogrficos

consideradas no esquema conceitual, viabilizando a implementao das


restries de de integridade espaciais.

3.7 Discusso de um exemplo


Para exemplificar o uso das principais primitivas do modelo OMT-G,
apresentamos nesta Seo um exemplo de modelagem, apresentado
originalmente em (Davis Jr., 2000). A aplicao proposta combina
aspectos de interesse em trs diferentes contextos:
cadastro tcnico municipal (CTM), em que os usurios esto
interessados na estruturao da ocupao do solo urbano em quadras,
lotes e vias pblicas;
gerenciamento de transportes e trnsito, em que o interesse est na
estruturao do sistema virio;
mapeamento em escala regional, em que os usurios se interessam
apenas pelos principais aspectos de ocupao do territrio e acessos,
em especial a malha rodoviria.
Alguns objetos do ambiente urbano so necessrios nos trs contextos,
como por exemplo o sistema virio. No entanto, cada um deles percebe
esses objetos de uma maneira diferente, gerando a necessidade de mais de
uma representao.
Para os usurios da rea de cadastro tcnico municipal, os principais
objetos so as quadras e lotes da cidade. Particularmente no caso dos
lotes, adotamos trs diferentes alternativas para representao. A primeira
e mais simples delas utilizando pontos. No caso de Belo Horizonte,
esta forma de representao foi adotada no incio da construo do banco
de dados geogrfico para o cadastro, a partir de uma metodologia que
envolvia uma rpida referncia visual planta cadastral convencional,
transformada em imagem e colocada no background (Davis Jr., 1993).
Essa representao suficiente para que se possa localizar cada lote,
porm no permite que se verifique topologicamente as relaes de
vizinhana e de incluso em uma quadra. A segunda alternativa de
representao consiste em traar apenas a testada do lote, usando uma
poligonal. Esta alternativa quase to simples quanto a primeira quanto
ao esforo de converso de dados, porm permite que se realize alguns

128
Discusso de um exemplo

tipos adicionais de anlise, como a de vizinhana, e fornece um dado


geomtrico, que a largura do lote no segmento frontal. Por fim, a
terceira alternativa de representao usa polgonos que definem todas as
fronteiras entre o lote e seus vizinhos. a representao ideal, pois
permite verificar todas as confrontaes e ainda fornecer parmetros
geomtricos bsicos, como a rea do lote. No entanto, a mais custosa
em termos de converso de dados. A convivncia das trs formas de
representao de lotes em um mesmo banco de dados se justifica do
ponto de vista da formao incremental dos componentes do cadastro
urbano. O relacionamento dos lotes e quadras com o sistema de
endereamento da cidade, atravs da malha viria, tambm desejvel,
para que seja possvel simplificar a tarefa de localiz-los em campo e
tambm para facilitar a comunicao com os proprietrios e outros
cidados.
Para que se possa trabalhar com transportes e trnsito, fundamental
poder contar com todas as informaes relevantes quanto malha viria,
incluindo a localizao de cada logradouro e cada cruzamento entre
logradouros. Na presente aplicao, a malha viria bsica est
representada por uma rede, em que arcos bidirecionais representam os
segmentos de logradouro entre cruzamentos, que por sua vez constituem
os ns. Observe-se que, por simplicidade, optou-se por no modelar a
malha de circulao viria, composta por arcos unidirecionais e que
atendem a todas as restries da legislao de trnsito quanto ao sentido
de fluxo. Cada trecho de logradouro recebe uma classificao de acordo
com o Plano de Classificao Viria, um componente do Plano Diretor do
municpio que define vias de ligao regional, arteriais, coletoras e locais.
Essa classificao depende basicamente do volume de trfego e da funo
primria de cada trecho de logradouro. Observe-se que a classificao
um atributo do trecho e no do logradouro inteiro, pois existem situaes
em que parte do logradouro recebe trfego intenso e parte tem
caractersticas de via local. Considerando apenas as vias mais importantes
para a circulao, concebe-se uma nova rede, esta adequada para o
planejamento da circulao de veculos entre regies da cidade.
Por fim, os responsveis pelo mapeamento regional esto interessados
em obter os limites da rea urbanizada da cidade, usualmente
denominados mancha urbana, alm das ligaes da cidade a outras por

129
3. Modelagem conceitual de dados geogrficos

meio de rodovias e outros meios de transporte de cargas. As ferrovias


foram deixadas de fora do problema por simplicidade, mas as rodovias
que atravessam a cidade fazem parte da malha viria concebida para a
aplicao de transportes e trnsito. Alm disso, considerando as escalas
em que se pretende construir o mapeamento regional, interessante
poder contar com (1) uma representao simplificada do polgono que
compe os limites entre a cidade e suas vizinhas, e (2) uma representao
da cidade como ponto, para a gerao de mapas temticos sobre
transportes rodovirios.
Considerando as necessidades descritas, foi construdo o diagrama de
classes para a aplicao (Figura 3.18). No diagrama, a primitiva de
generalizao conceitual do modelo OMT-G foi usada duas vezes, uma
para a classe Municpio, que pode ter representaes pontuais ou
poligonais, em subdiviso planar (esta em dois diferentes nveis de
detalhamento), e outra para a classe Lote CTM, que podem ser
representados usando pontos, linhas ou polgonos. Existe tambm uma
primitiva de agregao, que indica que as instncias da classe Quadra
CTM sero criadas pela agregao de instncias de Lote CTM.
A classe Rodovia est relacionada classe de vias principais,
assumindo a regra de que todos os trechos de rodovia so classificados
como vias de ligao regional. A classe Via principal, por sua vez, um
subconjunto da classe Trecho, pois nem todo trecho de logradouro
pertence malha viria principal. Com isso, nem todos os ns de
cruzamento constituem intersees na malha viria principal. O
diagrama de classes indica, assim, que existe uma superposio parcial
entre a malha de logradouros e a malha viria principal, mas no
determina a forma de estruturao do banco de dados geogrfico quanto
a esse aspecto.

130
Discusso de um exemplo

Municpio

codMunicpioIBGE
populaoMunicpio

Escala

Fronteiras Fronteiras Cidade ponto


municipais municipais Rodovia
simplificadas codMunicpioIBGE
codMunicpioIBGE populaoMunicpio
codMunicpioIBGE numLogradouro
populaoMunicpio
populaoMunicpio
Area
Simplificao
Colapso 1..*
1..* 1
1
serve a
contm

sobreposto
1..*
1..*
Mancha
urbana Cruzamento
Via principal
Malha vias principais
pertence a numLogradouro viria
tipoVia principal
1..*
1
1..*
Logradouro
1..* 1
numLogradouro

sobreposto
composto
contm

tipoLogradouro
nomeLogradouro
por

1 0..1 0..1

Quadra CTM Trecho Cruzamento


1 Malha de
1..* numLogradouro logra-
numQuadraCTM numSeqTrecho douros
tipoVia
pertence a ElimNsDesnecessrio
JunoArcosDivididos s
1

1..* 0..*
em frente a

Lote CTM
composto por

polgono
Lote CTM Lote CTM
numQuadraCTM frente ponto
numLoteCTM numQuadraCTM numQuadraCTM
numLoteCTM numLoteCTM
Colapso
Fuso
Extrao Seg.Frontal

Forma

Lote CTM
1..* numQuadraCTM
numLoteCTM

Figura 3.18 Diagrama de classes.

131
3. Modelagem conceitual de dados geogrficos

O diagrama de transformao correspondente ao diagrama de classes


da Figura 3.18 pode ser criado em blocos, cada qual correspondendo a
um grupo de transformaes demandado pela aplicao.
O primeiro desses blocos diz respeito agregao de Lote CTM para
formar Quadra CTM, e relao contm entre Quadra CTM e Mancha
Urbana (Figura 3.19). No caso da agregao, optou-se por usar o
operador de generalizao cartogrfica denominado Fuso, com
tolerncia de espaamento igual a zero. Isso faz com que o seu
comportamento seja idntico ao de um operador de unio de polgonos,
conforme definido na rea de geometria computacional. A opo pela
implementao do operador Fuso pode ser feita considerando que seu
uso j necessrio na aplicao, para a transformao que leva criao
da mancha urbana, desta vez considerando uma tolerncia de 15 metros.
Esse valor de tolerncia faz com que desapaream da mancha urbana
todas as ruas cuja largura seja inferior a 30 metros, caso da maioria das
vias locais e mesmo algumas avenidas de menor porte. Apenas
logradouros mais largos permanecero visveis aps a aplicao do
operador. A Figura 3.20 apresenta um exemplo de aplicao desse
operador a um grupo de quadras.

Lote CTM
polgono
Quadra CTM
numQuadraCTM
Fuso(0 m) numQuadraCTM
numLoteCTM

Colapso
Fuso
Extrao Seg.Frontal

Mancha
Quadra CTM
urbana
numQuadraCTM Fuso(15 m)

Figura 3.19 Diagrama de transformao 1. bloco.

O segundo bloco de transformaes dinmicas refere-se criao da


malha viria principal a partir da malha de logradouros (Figura 3.21).
Como a malha de logradouros mais detalhada e precisa ser mantida

132
Discusso de um exemplo

atualizada para benefcio das aplicaes de transportes e cadastro, seus


arcos e ns so considerados representaes primrias, a partir das quais
as representaes secundrias correspondentes malha viria principal
so criadas. O processo consiste em, inicialmente, selecionar as instncias
de Trecho classificadas como vias de ligao regional ou arteriais, ou seja,
componentes do sistema virio principal, e em duplicar toda a classe
Cruzamento. Em seguida, os ns que so desnecessrios para a malha
viria principal so eliminados, gerando a classe Cruzamento vias
principais, e juntando os segmentos de arcos onde os ns foram
eliminados, produzindo a classe Via principal. A eliminao feita sempre
que um n for encontrado com exatamente zero ou dois arcos
conectados: no primeiro caso, o n no cumpre funo alguma na rede, e
no segundo ele no configura mais um cruzamento entre vias.
O terceiro bloco de transformaes corresponde generalizao
conceitual sobre as classes Municpio e Lote CTM (Figura 3.22). No
primeiro caso, admite-se que a classe Fronteiras municipais seja a mais
genrica e a mais detalhada, e portanto a partir dela pode-se produzir a
classe Fronteiras municipais simplificadas, usando um operador de
simplificao de polgonos com tolerncia de 10 metros, e a classe
Municpio ponto, usando o operador colapso. A tolerncia foi escolhida a
partir da definio da escala de trabalho para o mapeamento regional
pretendido, no caso equivalente a 1:50.000. A tolerncia corresponde a
metade da largura de uma linha traada com pena 0,4mm. Esse valor foi
escolhido considerando a deduo do tamanho do menor objeto visvel
(smallest visible object, ou SVO) (Li e Openshaw, 1992). Naturalmente, o
tamanho do SVO expresso nas unidades de medida da tela ou do mapa,
e portanto pode ser traduzido em medidas reais atravs da aplicao do
fator de escala.
Como no caso da classe Fronteiras municipais, a classe Lote CTM
polgono foi escolhida como representao primria. A partir dela pode-
se gerar a classe Lote CTM ponto, usando o operador Colapso, e a classe
Lote CTM frente, usando um operador especial que determina qual o
segmento frontal de cada lote poligonal no caso, segmentos frontais so
aqueles que no so compartilhados pelos lotes adjacentes. Observe-se
que as representaes produzidas pelo operador colapso no precisam ser
materializadas, uma vez que seu processamento bastante rpido.

133
3. Modelagem conceitual de dados geogrficos

(a) (b)

(c) (d)
Figura 3.20 Fuso.

134
Discusso de um exemplo

Seleo(Logradouro(numLogradouro).tipoLograd = "ROD")
JunoArcosDivididos Rodovia
Simplificao(40m)
numLogradouro

Trecho Via temporria Via principal


Seleo(tipoVia="LR"
numLogradouro ou tipoVia="A") numLogradouro JunoArcosDivididos numLogradouro
numSeqTrecho tipoVia tipoVia
tipoVia
Malha de logradouros

Malha viria principal


Malha temporria

Cruzamento Cruzamento
Cruzamento
temporrio vias principais
Superposio ElimNsDesnecessrios

ElimNsDesnecessrios ElimNsDesnecessrios

Figura 3.21 Diagrama de transformao 2. bloco.

Cidade

Colapso codMunicpioIBGE
Fronteiras populaoMunicpio
municipais
codMunicpioIBGE
populaoMunicpio
rea Fronteiras
Simplificao municipais
Colapso Simplificao(10m) simplificadas
codMunicpioIBGE
populaoMunicpio

Lote CTM
ponto
Colapso numQuadraCTM
numLoteCTM
Lote CTM
polgono

numQuadraCTM
numLoteCTM

Colapso Lote CTM


Fuso frente
Extrao Seg.Frontal Extrao do segmento frontal numQuadraCTM
numLoteCTM

Figura 3.22 Diagrama de transformao 3. bloco.

135
3. Modelagem conceitual de dados geogrficos

Cada uma das classes que compem os diagramas de classes e de


transformao precisam ter pelo menos uma apresentao definida no
diagrama de apresentao. Alm dessa apresentao default, cada classe
pode ter um nmero indeterminado de apresentaes alternativas, de
acordo com as necessidades da aplicao. possvel ter, por exemplo,
uma apresentao voltada para visualizao em tela e outra voltada para
a sada plotada em um mapa.
As classes Fronteiras municipais e Cidade ponto so associadas a duas
apresentaes cada, uma para visualizao em tela e outra para usos
especficos (Figura 3.23). As apresentaes em tela estabelecem um
limiar de escala, de modo que em escalas at 1:25.000 as fronteiras entre
municpios sero visualizadas, entre 1:25.000 e 1:50.000 sero
apresentadas as fronteiras simplificadas, e em escalas menores, a partir de
1:50.000, sero apresentados os smbolos.

136
Discusso de um exemplo

Fronteiras Municipais
Default
Tela (esc > 1:25.000)

ApresentaoArea()
Cor da linha = preto
Espessura da linha = 1
Fronteiras Preenchimento = nenhum
municipais
codMunicpioIBGE
populaoMunicpio
Fronteiras Municipais
rea
Densidade demogrfica
Simplificao
Anlise de demanda por transportes
Colapso
0-10
Cor da linha = preto
Classificao(populaoMunicpio/Area) 10-20
Espessura da linha = 1
Preenchimento = slido
20-50
Cor de preenchimento =
50-100 {branco, cinza 25%, cinza
50%, cinza 75%, preto}
> 100

Fronteiras municipais simplificadas


Default
Fronteiras
municipais Tela (esc <= 1:25.000 e esc > 1:50.000)
simplificadas
codMunicpioIBGE ApresentaoArea()
Cor da linha = preto
populaoMunicpio Espessura da linha = 1
Preenchimento = nenhum

Cidade ponto
Default
Tela (esc <= 1:50.000)

ApresentaoSimbolo()

Cor = preto
Nome do smbolo = S03

Cidade ponto
codMunicpioIBGE
populaoMunicpio Cidade ponto
Faixas de populao
Mapa rodovirio

< 10
Simbolizao(Populao / 1000) 10-20
Cor = preto
20-50 Nome do smbolo = {S02, S03,
S04, S05, S06}
50-100

> 100

Figura 3.23 Diagrama de apresentao- 1. bloco.

137
3. Modelagem conceitual de dados geogrficos

Para a classe Rodovia, foi definida apenas uma apresentao, em que


estradas de terra so distinguidas visualmente de estradas asfaltadas.
Tambm a classe Mancha urbana conta com apenas uma apresentao,
que procura distinguir levemente a rea urbanizada da rea rural (Figura
3.24).

Rodovia
Default / Tipo de pavimento
Rodovia Tela / Mapa rodovirio / Mapa regional
numLogradouro Classificao(tipoPavimento)
tipoPavimento Asfalto Cor = {preto, vermelho}
Tipo de linha = contnua
Espessura = 0.4mm
Terra

Mancha urbana
Mancha Default
urbana Tela / Mapa regional
ApresentaoArea()
Cor da linha = amarelo
Espessura da linha = 1
Preenchimento = slido
Cor de preenchimento = amarelo

Figura 3.24 Diagrama de apresentao 2. bloco.

Em seguida, as classes que compem a malha de vias principais tm


sua apresentao definida. A classe Via principal conta com duas
apresentaes, sendo que na primeira as vias de ligao regional e
arteriais, mais importantes na hierarquia de classificao viria, so
diferenciadas usando a espessura da linha, e na segunda apenas as vias de
ligao regional so destacadas. A apresentao correspondente classe
Cruzamento vias principais usa um smbolo muito pequeno, o que faz
com que suas instncias efetivamente desapaream na tela. O usurio
poder perceber os cruzamentos de vias visualmente, sem a necessidade
de um smbolo mais evidente, o que traria apenas poluio visual (Figura
3.25).

138
Discusso de um exemplo

Via principal
Default
Tela

Classificao(tipoVia) Lig. Cor da linha = preto


regional Tipo de linha = contnua
Espessura da linha =
Arterial {0,4mm, 0,8mm}

Via principal
numLogradouro
tipoVia

Via principal
Vias de ligao regional
Mapa de principais acessos

Classificao(tipoVia) Cor da linha = {preto,


Lig. transparente}
regional Tipo de linha = contnua
Espessura da linha = {0mm,
Arterial 0,4mm}

Cruzamento Cruzamento vias principais


vias principais Default
ApresentaoSmbolo() Tela

Cor = preto
Nome do smbolo = S10

Figura 3.25 Diagrama de apresentao -3. bloco.

Para a classe Trecho so definidas duas variaes de apresentao. A


primeira define uma classificao com base na hierarquizao do sistema
virio. A classe Cruzamento, que com Trecho compe a malha de
logradouros, apresentada usando um smbolo circular simples, porm
visvel. Em ambos os casos, a visualizao s permitida em escalas
superiores a 1:5000, pois fora dessa faixa a densidade de elementos na tela
seria excessivamente alta (Figura 3.26).
Por fim, todas as demais classes anteriormente definidas recebem uma
apresentao correspondente. Pelo menos uma apresentao tem que
estar definida para cada classe, e na Figura 3.27 isso foi feito para as
classes Quadra CTM, Lote CTM polgono, Lote CTM frente e Lote CTM
ponto. Observe-se a definio da simbologia para a classe Lote CTM
frente, em que utilizado um recurso comum em SIG e cartografia: o
lanamento de smbolos ao longo de linhas. No caso, foi inserido um
smbolo no incio da linha, para estabelecer um marco visual que a
separe da frente do lote vizinho. O intervalo entre smbolos foi

139
3. Modelagem conceitual de dados geogrficos

especificado usando um valor intencionalmente muito alto, para garantir


que o smbolo no venha a ser usado mais de uma vez na frente do
mesmo lote. importante destacar que a especificao dos parmetros de
cada apresentao pode ser baseada nos recursos conhecidos do SIG onde
a aplicao ser implementada.

Trecho
Default / Tipo de via
Tela (esc >= 1:10000)

Lig.
Classificao(tipoVia) Regional
Cor = vermelho
Arterial Tipo de linha = contnua
Espessura = {1.2mm,
Coletora 0.8mm, 0.4mm, 0.2mm}
Trecho
Local
numLogradouro
numSeqTrecho
tipoVia
tipoPavimento
Trecho
Tipo de pavimento
Tela (esc >= 1:10000)

Classificao(tipoPavimento) Cor = {preto, vermelho}


Asfalto
Tipo de linha = contnua
Espessura = 0.4mm
Terra

Cruzamento Cruzamento
Default
ApresentaoSmbolo() Tela (esc >= 1:10000)

Cor = preto
Nome do smbolo = S12

Figura 3.26 Diagrama de apresentao 4. bloco.

140
Leituras suplementares

Quadra CTM
Default
Quadra CTM Tela

numQuadraCTM Apresentaorea()
Cor da linha = preto
Espessura da linha = 1
Preenchimento = nenhum

Lote CTM polgono


Default
Lote CTM Tela
polgono
numQuadraCTM Apresentaorea()
numLoteCTM Cor da linha = preto
Espessura da linha = 1
Preenchimento = nenhum

Lote CTM frente


Default
Lote CTM Tela
frente
numQuadraCTM ApresentaoLinha() Cor da linha = preto
numLoteCTM
Espessura da linha = 1
Intercalar smbolo(S02, incio 0,
intervalo 10000m)

Lote CTM Lote CTM ponto


ponto Default
numQuadraCTM ApresentaoSmbolo() Tela
numLoteCTM
Cor = azul
Nome do smbolo = S15

Figura 3.27 Diagrama de apresentao 5. bloco.

3.8 Leituras suplementares


Neste capitulo, apresentamos o OMT-G, um modelo de dados orientado
a objetos para modelagem de aplicaes geogrficas, e tcnicas para
transformar esquemas OMT-G em esquemas de implementao,
supondo um SGBD objeto-relacional compatvel com o padro OGC. O
modelo OMT-G oferece primitivas para modelar a geometria e topologia
dos dados geogrficos. Devido ao uso de pictogramas representando a
geometria dos objetos, o esquema resultante mais compacto, intuitivo e
de fcil compreenso. Alm do mais a combinao de diagramas de
classes, transformao, apresentao faz com que a distncia entre a
modelagem conceitual e a implementao de aplicaes geogrficas seja

141
3. Modelagem conceitual de dados geogrficos

reduzida, permitindo uma definio mais precisa dos objetos


requisitados, suas operaes, seus parmetros de visualizao.
Aos leitores interessados em um maior aprofundamento neste tema,
recomendamos uma reviso das referncias mais citadas ao longo do
captulo. Para obter uma viso mais detalhada de operaes de
transformao, veja (Davis Jr., 2000) (Davis Jr. e Laender, 1999).
Exemplos adicionais de modelagem usando OMT-G podem ser
encontrados em numerosos trabalhos, dentre os quais (Bertini e Czar
Neto, 2004) (Davis Jr. et al., 2003) (Martins Netto, 2003) (Preto, 1999)
Souza et al., 2004) (Voll, 2002). Comparaes entre modelos de dados
para aplicaes geogrficas podem ser encontrados em (Borges, 1997)
(Borges et al., 2001) (Lisboa Filho, 1997). Lembramos ainda aos leitores
que o modelo OMT-G foi inicialmente chamado de GeoOMT (Borges,
1997), e que existem algumas publicaes que se referem a ele por este
nome.
O uso de ontologias no projeto e construo de sistemas de
informao geogrficos, algo que no foi abordado neste captulo, mas
que parece estar um passo adiante das atuais tcnicas de modelagem
conceitual, apresentado e discutido em (Fonseca, 2001) (Fonseca et al.,
2000) (Fonseca et al., 2002). Uma discusso a respeito da conexo que
existe entre modelagem conceitual e ontologias pode ser encontrada em
(Fonseca et al., 2002).

142
Referncias

Referncias

ABITEBOUL, S.; HULL, R. IFO: a formal semantic database model. ACM


Transactions on Database Systems, v. 12, n.4, p. 525-565, 1987.
ABRANTES, G.; CARAPUA, R. Explicit representation of data that depend
on topological relationships and control over data consistency. In: Fifth
European Conference and Exhibition on Geographical Information Systems
- EGIS/MARI'94. 1994. p.
BDARD, Y.; CARON, C.; MAAMAR, Z.; MOULIN, B.; VALLIRE, D.
Adapting data models for the design of spatio-temporal databases.
Computers, Environment and Urban Systems, v. 20, n.1, p. 19-41, 1996.
BERTINI, G. C.; CZAR NETO, J. Uma modelagem orientada a objeto para
o Mapa Urbano Bsico de Belo Horizonte. Informtica Pblica, v. 6, n.1, p.
33-51, 2004.
BORGES, K. A. V. Modelagem de dados geogrficos - uma extenso do
modelo OMT para aplicaes geogrficas.Belo Horizonte: Fundao Joo
Pinheiro, 1997.Dissertao de mestrado, Escola de Governo, 1997.
BORGES, K. A. V.; DAVIS JR., C. A.; LAENDER, A. H. F. OMT-G: an
object-oriented data model for geographic applications. GeoInformatica, v.
5, n.3, p. 221-260, 2001.
BORGES, K. A. V.; DAVIS JR., C. A.; LAENDER, A. H. F., 2002. Integrity
constraints in spatial databases. In: DOORN, J. H.; RIVERO, L. C., eds.,
Database Integrity: Challenges and Solutions: Hershey (PA), Idea Group
Publishing, p. 144-171.
BORGES, K. A. V.; LAENDER, A. H. F.; DAVIS JR., C. A. Spatial data
integrity constraints in object oriented geographic data modeling. In: 7th
International Symposium on Advances in Geographic Information Systems
(ACM GIS'99). Kansas City, 1999. p. 1-6.
CMARA, G. Modelos, linguagens e arquiteturas para bancos de dados
geogrficos.So Jos dos Campos: INPE, 1995.Tese de doutorado, 1995.
CHEN, P. The entity-relationship model - toward a unified view of data. ACM
Transactions on Database Systems, v. 1, n.1, p. 9-36, 1976.
CLEMENTINI, E.; DIFELICE, P.; VAN OOSTEROM, P. A small set of
formal topological relationships suitable for end-user interaction. In: 3rd
Symposium on Spatial Database Systems. 1993. p. 277-295.

143
3. Modelagem conceitual de dados geogrficos

COCKROFT, S. A taxonomy of spatial data integrity constraints.


GeoInformatica, v. 1, n.4, p. 327-343, 1997.
DAVIS JR., C. A. Address base creation using raster-vector integration. In:
URISA Annual Conference. Atlanta (GA), 1993. p. 45-54.
DAVIS JR., C. A. Mltiplas representaes em sistemas de informao
geogrficos.Belo Horizonte (MG): UFMG, 2000.Departamento de Cincia
da Computao, 2000.
DAVIS JR., C. A.; BORGES, K. A. V.; LAENDER, A. H. F. Restries de
integridade em bancos de dados geogrficos. In: III Workshop Brasileiro de
GeoInformtica (GeoInfo 2001). Rio de Janeiro (RJ), 2001. p. 63-70.
DAVIS JR., C. A.; BORGES, K. A. V.; LAENDER, A. H. F., 2005. Deriving
spatial integrity constraints from geographic application schemas. In:
RIVERO, L. C.; DOORN, J. H.; FERRAGINE, V. E., eds., Encyclopedia of
Database Technologies and Applications: Hershey (PA), Idea Group
Publishing.
DAVIS JR., C. A.; FONSECA, F.; BORGES, K. A. V. A flexible addressing
system for approximate urban geocoding. In: V Simpsio Brasileiro de
GeoInformtica (GeoInfo 2003). Campos do Jordo (SP), 2003. p. em CD-
ROM.
DAVIS JR., C. A.; LAENDER, A. H. F. Multiple representations in GIS:
materialization through geometric, map generalization, and spatial analysis
operations. In: 7th International Symposium on Advances in Geographic
Information Systems (ACM GIS'99). Kansas City, 1999. p. 60-65.
DAVIS JR., C. A.; OLIVEIRA, P. A. SIG interopervel e distribudo para
administraes municipais de grande porte. Informtica Pblica, v. 4, n.1, p.
121-141, 2002.
EGENHOFER, M. A Model for Detailed Binary Topological Relationships.
Geomatica, v. 47, n.3 & 4, p. 261-273, 1993.
EGENHOFER, M. J.; FRANZOSA, R. D. Point-set topological spatial
relations. International Journal of Geographic Information Systems, v. 5,
n.2, p. 161-174, 1991.
EGENHOFER, M. J.; HERRING, J. A mathematical framework for the
definition of topological relationships. In: 4th International Symposium on
Spatial Data Handling. 1990. p. 803-813.
ELMASRI, R.; NAVATHE, S. Fundamentals of Database Systems. Pearson
Education, 2004.

144
Referncias

FONSECA, F. Ontology-Driven Geographic Information Systems.Orono:


University of Maine, 2001.Ph.D. Thesis, Dept of Spatial Information
Science and Engineering, 2001.
FONSECA, F.; EGENHOFER, M.; DAVIS, C.; BORGES, K. Ontologies and
Knowledge Sharing in Urban GIS. Computer, Environment and Urban
Systems, v. 24, n.3, p. 232-251, 2000.
FONSECA, F.; EGENHOFER, M.; DAVIS, C.; CMARA, G. Semantic
Granularity in Ontology-Driven Geographic Information Systems. AMAI
Annals of Mathematics and Artificial Intelligence - Special Issue on
Spatial and Temporal Granularity, v. 36, n.1-2, p. 121-151, 2002.
FRANK, A. U. Spatial concepts, geometric data models, and geometric data
structures. Computers & Geosciences, v. 18, n.4, p. 409-417, 1992.
FRANK, A. U.; GOODCHILD, M. F., 1990, Two perspectives on geographical
data modeling, Santa Barbara (CA), National Center for Geographic
Information and Analysis (NCGIA).
GOYAL, R. K. Similarity assessment for caardinal directions between
extended spatial objects. Orono, Maine: University of Maine, 2000.PhD
Thesis, 2000.
KSTERS, G.; PAGEL, B.; SIX, H. GIS application development with
GeoOOA. International Journal of Geographic Information Science, v. 11,
n.4, p. 307-335, 1997.
LAENDER, A. H. F.; FLYNN, D. J., 1994. A semantic comparison of
modelling capabilities of the ER and NIAM models. In: ELMASRI, R.;
KOURAMAJIAN, V.; THALHEIM, B., eds., Entity-Relationship
Approach - ER'93, Springer-Verlag, p. 242-256.
LI, Z.; OPENSHAW, S. Algorithms for automated line generalization based on
a natural principle of objective generalization. International Journal of
Geographic Information Systems, v. 6, n.5, p. 373-389, 1992.
LISBOA FILHO, J., 1997, Modelos de dados conceituais para sistemas de
informao geogrfica, Porto Alegre, UFRGS.
MARK, D. M.; FRANK, A. U., 1990, Language issues for geographical
information systems, National Center for Geographic Information and
Analysis (NCGIA).
MARTINS NETTO, V. Proposta de esquema conceitual para um banco de
dados de limpeza urbana no municpio de Belo Horizonte.Belo Horizonte:
PRODABEL, 2003.Monografia de especializao, Curso de Especializao
em Informtica Pblica, 2003.

145
3. Modelagem conceitual de dados geogrficos

OLIVEIRA, J. L.; PIRES, F.; MEDEIROS, C. M. B. An environment for


modeling and design of geographic applications. GeoInformatica, v. 1, n.1,
p. 29-58, 1997.
OPEN GIS CONSORTIUM, 1999, OpenGIS Simple Features Specification
for SQL - Revision 1.1.
PARENT, C.; SPACCAPIETRA, S.; ZIMANYI, E. Spatio-temporal
conceptual models: data structures + space + time. In: 7th International
Symposium on Advances in Geographic Information Systems (ACM
GIS'99). Kansas City, 1999. p. 26-33.
PEUQUET, D. J. A conceptual framework and comparison of spatial data
models. Cartographica, v. 21, p. 66-113, 1984.
PREPARATA, F. P.; SHAMOS, M. I. Computational geometry: an
introduction. New York: Springer-Verlag, 1985.
PRETO, A. G. MetaSIG: ambiente de metadados para aplicaes de sistemas
de informaes geogrficos.Rio de Janeiro (RJ): Instituto Militar de
Engenharia, 1999.Dissertao de mestrado, 1999.
RATIONAL SOFTWARE CORPORATION, 1997, The Unified Modeling
Language: notation guide, version 1.1.
RUMBAUGH, J.; BLAHA, M.; PREMERLANI, W.; EDDY, F.;
LORENSEN, W. Object-oriented Modeling and Design. Prentice-Hall,
1991.
SHEKHAR, S.; COYLE, M.; GOYAL, B.; LIU, D.; SARKAR, S. Data models
in geographic information systems. Communications of the ACM, v. 40,
n.4, p. 103-111, 1997.
SOUZA, L. A.; DELBONI, T.; BORGES, K. A. V.; DAVIS JR., C. A.;
LAENDER, A. H. F. Locus: um localizador espacial urbano. In: VI
Simpsio Brasileiro de GeoInformtica (GeoInfo 2004). Sociedade Brasileira
de Computao (SBC), Campos do Jordo (SP), 2004. p. 467-478.
VOLL, V. L. Utilizao de SIG na anlise de aspectos sociais do garimpo de
diamantes em Coromandel, MG.Belo Horizonte: UFMG, 2002.Monografia
de especializao, Curso de Especializao em Geoprocessamento, 2002.
WORBOYS, M. F.; HEARNSHAW, H. M.; MAGUIRE, D. J. Object-oriented
data modelling for spatial databases. International Journal of Geographic
Information Systems, v. 4, n.4, p. 369-383, 1990.

146
4 Modelos espao-temporais

Taciana de Lemos Dias


Gilberto Cmara
Clodoveu A. Davis Jr.

4.1 Introduo
Este captulo apresenta recentes estudos de modelos espao-temporais,
correspondentes as iniciativas para modelar o comportamento de objetos
em sua trajetria espao-temporal, visando sua representao em um
sistema de informao.
A maioria das aplicaes de tecnologia de geoinformao utiliza
representaes estticas de fenmenos espaciais. Isto se deve ao fato de
que a principal abstrao utilizada em Sistemas de Informao
Geogrficas (SIG) o mapa. No entanto, um significativo conjunto de
fenmenos espaciais, como o cadastro urbano, uso e ocupao da terra,
fluxos hidrolgico e poluio so inerentemente dinmicos e as
representaes estticas comumente utilizadas no os capturam de forma
adequada. Deste modo, um dos grandes desafios da geoinformao o
desenvolvimento de modelos espao-temporais, que sejam capazes de
representar adequadamente fenmenos que variam tanto no espao
como no tempo.
Modelos espao-temporais renem dois aspectos distintos: a escolha
de conceitos adequados do espao e do tempo e a construo de
representaes computacionais apropriadas correspondentes a esses
conceitos. No caso das representaes espaciais estticas, os Captulos 1 e
3 apresentam as diversas alternativas existentes, juntamente com detalhes
de implementao e de modelagem de aplicaes. Neste captulo, damos
4. Modelos espao-temporais

nfase representao temporal e construo de modelos semnticos


apropriados ao tratamento de mudanas espao-temporais.
A viso do espao (do grego choros) e do tempo (chronos) uma
experincia subjetiva do ser humano. O espao e o tempo se misturam ao
se descrever uma realidade (Kavouras, 2001). Podemos modelar a
superfcie da terra usando geo-objetos, correspondentes a parcelas do
solo, ou usando geo-campos, indicando a variao espacial da vegetao
da mesma rea. Geo-objetos podem ser estticos, como uma montanha;
mudar de lugar, como o traado de uma linha frrea, ou se movimentar,
como um carro (Frank, 1997). Conforme a semntica associada ao geo-
objeto, suas caractersticas espaciais (incluindo forma geomtrica e
localizao) e no espaciais (atributos alfanumricos) podem sofrer
alteraes ao longo do tempo.
Para produzir uma representao do mundo real com o objetivo de
elaborar um sistema de informao espao-temporal muitas questes
precisam ser investigadas e respondidas (Cheylan, 2001). Essas questes
envolvem a viso de mundo inerente ao sistema, as regras aplicveis, o
comportamento dos objetos ao longo do tempo, a interpretao da
variao do tempo, a natureza das mudanas e a influncia dos processos
de medida. Por este motivo, o uso de ontologias para modelagem espao-
temporal um dos principais temas de pesquisa nessa rea atualmente
(Worboys e Duckhan, 2004) (Grenon e Smith, 2003). Os conceitos
envolvidos no so bvios e tm se mostrado de difcil formalizao
(Smith e Mark, 1998) (Frank, 2003) (Fonseca et al., 2002) (Fonseca, et al.
2003). Em particular quando lidam com aspectos espaciais e temporais
simultaneamente, ontologias buscam capturar as propriedades dos
objetos e os conceitos que determinam sob que condies eles so criados
ou deixam de existir, e quais mudanas podem ocorrer em suas
caractersticas (Grenon e Smith, 2003). Uma ontologia deve incluir
categorias de espao e tempo, alm dos conceitos ligados ao histrico dos
objetos e s intenes de mudana. Ontologias espao-temporais
representam um conjunto de conceitos que lidam com a natureza do
espao, do tempo e das interaes espao-temporais (Peuquet, 2001).

148
Representao do tempo

Ainda no existe um consenso sobre as tcnicas de modelagem de


dados espao-temporais, ou mesmo sobre extenses das tcnicas de
modelagem de dados geogrficos atualmente existentes para refletir as
necessidades de aplicaes que envolvam simultaneamente tempo e
espao. Optamos por apresentar alternativas de representao especficas,
deixando a cargo do leitor a escolha do(s) modelo(s) que melhor se
ajusta(m) s suas necessidades.

4.2 Representao do tempo


Uma representao temporal considera os aspectos de ordem, variao e
granularidade (Edelweiss e Oliveira, 1994) que sero analisados a seguir.
4.2.1 Ordem
Quanto ordem, o tempo pode ser consecutivo e linearmente ordenado,
ramificado ou circular (Worboys e Duckhan, 2004). O tempo
linearmente ordenado possui uma ordenao entre quaisquer dois
pontos: se t e t so dois pontos diferentes no tempo, e < o operador
de ordem de precedncia temporal, apenas uma das expresses
verdadeira: (1) t < t ou (2) t < t (Figura 4.1).

t t

t < t

Figura 4.1 Tempo consecutivo e linearmente ordenado .


O tempo ramificado implica na possibilidade de existncia de
diferentes histrias futuras ou passadas. Podem existir vrias verses do
passado correspondentes a uma situao do presente, ou existir vrios
cenrios para uma situao futura (Figura 4.2).

149
4. Modelos espao-temporais

CENRIO1
VERSO 1
PASSADO FUTURO

VERSO 2
CENRIO 2 PASSADO FUTURO
VERSO 3

VERSO 4

(a) (b)
Figura 4.2 Tempo ramificado (Fonte: adaptado de Worboys e Duckhan ,
2004).
O tempo ramificado no futuro possui diferentes sucessores (Figura 4.2
a), e ramificado no passado possui diferentes antecessores (Figura 4.2 b).
A maioria das representaes da realidade utiliza um passado linear e um
futuro ramificado (Edelweiss e Oliveira, 1994).
Eventos recorrentes so representados pelo tempo circular. Neste caso,
a periodicidade de sua ocorrncia faz com que sempre se volte mesma
referncia de tempo. Um exemplo o ciclo anual de produo de mudas
de plantas como mostra a Figura 4.3.

PRIMAVERA VERO

INVERNO OUTONO

PODA COLOCA
SEMENTEIRA
ADUBA TIRA MUDA

Figura 4.3 Tempo circular.

4.2.2 Variao
Quanto variao, o tempo pode ser contnuo ou discreto. Entendemos,
em geral, que o tempo contnuo por natureza. Para sua representao
computacional, necessrio utilizar uma representao discreta do
tempo, na qual a variao temporal corresponde a uma linha de tempo,

150
Representao do tempo

composta por uma seqncia de chronons consecutivos e com idntica


durao. Um chronon um intervalo temporal que no pode ser
decomposto. Ele considerado a menor unidade de durao do tempo de
um sistema. A durao de tempo pode ser fixa, como uma hora, ou
varivel, como um ms (Figura 4.4).

Chronon = 1 ano Chronon = 1 ms


Figura 4.4 Diferentes granularidades temporais.
Um eixo temporal uma seqncia de pontos consecutivos com tempo
de variao discreto, linear e finito. A variao do tempo discreto
classificada como ponto-a-ponto, escada e funo (Renolen, 1997). A
variao ponto-a-ponto considera valores vlidos do tempo somente nos
pontos temporais definidos. Na variao escada, o valor vlido do tempo
ocorre desde o momento de sua definio at o momento em que outro
valor definido. A variao do tempo discreto pode ser determinada por
uma funo de interpolao para determinar valores em pontos onde no
se tem valor, configurando a variao por funo. Esses tipos de variaes
so mostradas na Figura 4.5.

Contnuo Ponto-a-ponto Escada Funo


e e e e

t
t t t
Figura 4.5 Variao do tempo contnuo e discreto.

4.2.3 Granularidade
A granularidade temporal um parmetro que corresponde durao de
um chronon. Pode-se considerar, simultaneamente, diferentes
granularidades (ano, ms, dia e minuto), para possibilitar uma melhor

151
4. Modelos espao-temporais

representao da realidade. Pesquisas de opinio, por exemplo, podem


ser realizadas anualmente ou mensalmente (Edelweiss e Oliveira, 1994),
porm esperamos obter uma representao mais fiel ao fenmeno real
com a granularidade mensal.
Os elementos primitivos de representao da granularidade do tempo
so instante, intervalo e elemento temporal. A granularidade depende da
variao do tempo considerada. Para o tempo continuamente varivel,
um instante um ponto no tempo cuja durao infinitesimal, sendo que
entre dois pontos no tempo sempre existir outro ponto. Se a variao de
tempo for discreta, um instante representado por um chronon no eixo
temporal. Um intervalo um subconjunto de pontos do eixo temporal
equivalente ao tempo decorrido entre dois pontos. Considerando o tempo
discreto, o intervalo representado por um conjunto finito de chronons
consecutivos; no caso de tempo contnuo, existem infinitos instantes de
tempo em um intervalo. Um elemento temporal a unio finita de
intervalos de tempo, produzindo um novo elemento temporal para as
operaes de conjunto de unio, interseo e complemento (Langran,
1993).
O tempo pode ainda ser absoluto ou relativo. O tempo absoluto est
associado a um fato com granularidade definida. O tempo considerado
relativo quando se refere validade de outro fato. A definio do tempo
pode tambm ser explcita ou implcita. Ela explicitada atravs de um
rtulo temporal (timestamp) associado a cada valor de atributo de um
objeto. A definio de tempo necessria para utilizao de uma
linguagem de lgica temporal implcita, como no caso do tempo relativo
(Edelweiss e Oliveira, 1994).

4.3 Dimenso temporal


A dimenso temporal determina as representaes de tempo num banco
de dados. Essas dimenses auxiliam na definio da composio histrica
do geo-objeto. Uma anlise de dados espao-temporais requer uma
distino entre o momento em que o evento ocorreu, conforme a
representao adotada (tempo de validade), e o momento em que essa
ocorrncia foi registrada no banco de dados (tempo de transao), que

152
Dimenso temporal

indica a partir de quando a informao correspondente ao evento se


tornou disponvel para o usurio. Por motivos diferentes, importante,
por exemplo, saber quando dados que indicam a possibilidade de um
desastre foram inseridos no banco de dados e quando eles foram
coletados ou identificados em campo. As informaes temporais, nesse
caso, permitem analisar se dados que indicam um possvel desastre foram
identificadas e/ou registrados no banco de dados em tempo de apoiar o
processo de tomada de deciso.
4.3.1 Tempo em bancos de dados
Os SGBD podem ser classificados, (Tabela 4.1), de acordo com seu
suporte dimenso temporal (Worboys e Duckhan, 2004) (Snodgrass,
1992). Eles podem ser estticos (instantneos), de tempo de validade
(histricos), de tempo de transao (rollback) e bitemporais (Snodgrass,
1990) (Al-Taha e Barrera, 1994) (Edelweiss e Oliveira, 1994).
Um SGBD esttico tambm denominado banco de dados de
instantneos, por no suportar nenhuma dimenso temporal. Neste caso,
o SGBD suporta um nico estado, o mais recente, e no possvel
realizar comparaes entre estados. Um SGBD de tempo de validade
registra fatos de acordo com o tempo de ocorrncia do evento, e
possibilita uma recuperao de histrico. No possvel recuperar o
instante em que os dados foram inseridos no banco de dados. Um SGBD
de tempo de transao registra o instante da insero de dados no banco,
possibilitando uma recuperao de dados para desfazer uma transao
(rollback). No entanto, no realiza o registro de quando o fato ocorreu.
Um SGBD bitemporal registra tanto o tempo de validade quanto o de
transao, sem qualquer interao entre eles, no sendo possvel uma
atualizao do passado. possvel acessar o histrico das transaes
realizadas e da ocorrncia dos eventos.
O tempo pode ser associado a cada valor no banco de dados. O tempo
de validade pode ser representado em um banco de dados temporal por
um ponto no tempo e com variao por escada ou intervalo de tempo. O
tempo de transao representado por um chronon nico.

153
4. Modelos espao-temporais

Tabela 4.1 Classificao de SGBD de acordo com a dimenso temporal


(Fonte: adaptado de Snodgrass, 1992).
Sem tempo de Com tempo de
Transao Transao
Sem tempo de Banco de dados Banco de dados por
Validade esttico tempo de transao
Com tempo de Banco de dados por Banco de dados
Validade tempo de validade bitemporal
Worboys (1998) props um modelo conceitual para objetos espao-
temporais denominado complexo espao-bitemporal. Este complexo
resultante da composio de classes primitivas de geo-objetos com os
componentes temporais dos geo-objetos. O componente temporal dado
por uma estrutura, denominada elemento bitemporal (BTE), cuja
semntica representa simultaneamente o geo-objeto de acordo com o
tempo de validade do evento e com o tempo de transao do banco de
dados (Figura 4.6). Um BTE a unio de um conjunto finito de
produtos cartesianos (ID x IE) de intervalos de tempo de banco de dados
(ID) e de chronons de evento (IE), assumindo que o domnio temporal
contm elementos de - a +, representando desde o passado
indefinido a um futuro incerto (Worboys, 1994).

1997

Tempo de Validade1996
do Evento
1995

1994

1994 1995 1996 1997


Tempo de
Transao do
Banco de Dados

Figura 4.6 Elemento Bitemporal (Fonte: adaptado de Worboys e Duckham,


2004).
Por esse modelo, geo-objetos so decompostos em representaes
geomtricas espaciais primitivas, como pontos e linhas, associadas a um

154
Dimenso temporal

elemento bitemporal. Assim, um complexo espao-bitemporal pode ser


representado atravs de duas dimenses espaciais e duas dimenses
temporais, como mostra a Figura 4.7. Na Figura 4.7, em 1995 todos os
elementos primitivos espaciais pertenciam ao banco de dados e eram
eventos vlidos. O ponto P2 era valido em 1994 e foi registrado em 1995.
Em 1994 teve o registro do ponto P3 e das linhas L2 e L3 no banco de
dados, e estes eram um evento vlido em 1994 e 1995. Foi registrado no
banco de dados em 1995 o ponto P2, vlido em 1994 e 1995.

1995 1995

1994 1994
1994 1995 1994 1995
L1

P1 P2

L2

L4
1995
P4 P3
1994
L3 1994 1995

Figura 4.7 Complexo espao-bitemporal (Fonte: adaptado de Worboys e


Duckham, 2004).
Um complexo espao-bitemporal possibilita as operaes Lifetime,
Max-S-Project e Min-S-Project. A operao Lifetime projeta um objeto
espao-temporal em um perodo temporal ou bitemporal no qual ele
possua existncia. A operao Max-S-Project projeta o objeto espao-
temporal sobre toda a sua extenso espacial ou sobre todas as partes do
objeto que j possuram existncia em algum intervalo de tempo. A Min-
S-Project projeta o objeto espao-temporal em sua maior extenso
comum, que corresponde s partes que possuram existncia em todo o
tempo de vida do objeto (Worboys, 1998).
As consultas temporais utilizam lgica temporal para recuperar os
valores (tempo de transao e/ou de validade). Nas consultas sobre um
elemento temporal, o espao visto como um conjunto de
identificadores, correspondendo a pesquisas em banco de dados

155
4. Modelos espao-temporais

temporais. Muitas consultas demandam recuperaes histricas


complexas. A seleo pode ser feita sobre dados, espao, valores temporais
ou ambos. O grande desafio dos pesquisadores na rea de recuperao de
informao espao-temporal explorar a consistncia e completeza das
propostas existentes e buscar solues em relao integridade espao-
temporal, consultas de multi-verses ou de verses histricas longas e
complexas (Cheylan, 2001).
4.3.2 Relacionamentos espao-temporais
A representao do tempo e do espao implica na combinao de
relacionamentos temporais e espaciais em uma estrutura integrada
(Claramunt e Juang, 2000). Os relacionamentos entre intervalos
temporais utilizam operadores booleanos de igualdade e desigualdade de
instantes, de maneira semelhante definio das matrizes de 4 e 9
intersees usadas em relacionamentos espaciais (Egenhofer e Franzoza,
1991). As relaes entre intervalos de tempo implicam na definio de
um operador de precedncia, associado a um conjunto de operadores
tpicos da teoria de conjuntos, tais como unio, interseo, incluso e
igualdade. Allen (1983) definiu sete relaes (Figura 4.8): before (antes
de), meets (toca), during (durante), finishes (finaliza junto com), equal
(igual a), overlaps (sobrepe) e starts (inicializa junto com). Claramunt e
Juang (2000) apresentaram 56 possveis relacionamentos espao-
temporais atravs da combinao desses sete relacionamentos temporais e
dos 8 relacionamentos espaciais derivados da matriz de 4 intersees.

Figura 4.8 Predicados temporais (Fonte: adaptado de Allen, 1993).

156
Identidade, vida e evoluo de geo-objetos

4.4 Identidade, vida e evoluo de geo-objetos


4.4.1 Identidade de geo-objetos
A identidade uma caracterstica imutvel de um geo-objeto. Ela
fundamental para a representao espao-temporal, pois possibilita a
distino entre geo-objetos independentemente de sua estrutura, valores
e atributos, incluindo a atributos chave. Por exemplo, a identidade de
uma pessoa no muda se o nmero de sua carteira de motorista for
alterado. Note a diferena entre o conceito de identidade e o de
identificador, ou de chave primria, usual em bancos de dados, que
empregado no sentido de atributo cujo valor no se repete.
Consideramos aqui que o valor de qualquer atributo pode mudar, dentro
das regras semnticas que levaram sua definio durante a modelagem;
por outro lado, a mudana da identidade de um objeto s ocorre em
situaes particulares, em que se pode afirmar que a natureza do objeto
mudou o suficiente para que consideremos seu novo estado como sendo
um objeto inteiramente diferente. Por exemplo, quando um lote urbano
dividido em dois, uma das partes pode reter a identidade do lote
original (no caso, apenas um dos seus atributos mudou: a forma
geomtrica). A outra parte constitui um lote novo, e que portanto recebe
uma nova identidade.
A existncia de um geo-objeto est associada manuteno da sua
identidade ao longo do tempo. As premissas das propostas para se
implementar mudanas baseadas em identidade de geo-objetos so os
critrios de imutabilidade, reusabilidade e singularidade da identidade. O
registro das mudanas que ocorrem em geo-objetos esto fundamentadas
pelos conceitos de orientao por objetos e de bancos de dados temporais.
Essas propostas se baseiam na ordem temporal de estados de identidade e
o vnculo temporal com os predecessores ou com o geo-objeto original
(Al-Taha e Barrera, 1994).
4.4.2 Vida e evoluo de geo-objetos
Segundo Frank et al. (2001) as mudanas de geo-objetos podem ser de
vida, genealogia e movimento.

157
4. Modelos espao-temporais

A noo de vida corresponde ao conjunto das mudanas de


caractersticas de um geo-objeto durante sua existncia, caracterizada
pela sua identidade. Um lote, por exemplo, pode ter alterados o seu
proprietrio ou sua zona de uso do solo, sem que se torne um novo lote.
Essas mudanas, portanto, fazem parte do registro de eventos que
ocorreram ao longo da vida do lote.
A genealogia corresponde a um link temporal para o gerenciamento de
sucessivas verses temporais de um objeto, como no caso em que se usa
um rtulo temporal (timestamp). similar a uma rvore genealgica
familiar, no sentido em que um geo-objeto pode dar origem a outro,
permanecendo ligado a ele como seu predecessor.
O movimento contempla mudanas de expanso ou contrao,
deformao e localizao, como as que ocorrem na ampliao ou reduo
de subdivises administrativas, no deslocamento simultneo ao
derretimento de um iceberg, ou no caso de objetos que se deslocam
constantemente, como veculos.
Cheylan (2001) props quatro classificaes para as mudanas
espaciais elementares. A primeira classificao a dos geo-
objetospermanentes. Eles recebem esse nome por que permanecem
inalteradas a sua forma e localizao e podem ser alteradas as suas
caractersticas no-espaciais. A segunda classificao a dos geo-objetos
variveis. Seu tamanho e topologia podem variar sem gerar novos geo-
objetos. Neste caso, so mantidas a forma e a identidade dos geo-objetos
e so geradas mltiplas verses da mesma unidade espacial no tempo. A
terceira classificao a dos geo-objetos modificveis. Sua modificao
ocorre atravs da recomposio de um determinado espao, adotando
operaes de partio dinmica (diviso e juno). Os objetos podem
mudar a forma, topologia e gerar novos objetos. Isso ocorre com os lotes
urbanos e seus limites dentro de uma mesma quadra (Figura 4.9).

158
Identidade, vida e evoluo de geo-objetos

Figura 4.9 Situaes de mudanas espaciais no tempo (Fonte: adaptada


de Cheylan, 2001).
A quarta classificao a dos geo-objetos que mudam ou dinmicos.
Eles admitem mudanas na forma, topologia, atributo, localizao e
podem gerar novos objetos.
O conceito de vida vlido para todas as situaes de mudanas, mas
suficiente somente para o tipo de mudana de geo-objetos permanentes.
A noo de movimento afeta os geo-objetos que variam e mudam, mas
suficiente somente para os que variam. A noo genealgica afeta os geo-
objetos que modificam e mudam, mas suficiente somente para os que
modificam (Cheylan, 2001).
Algumas regras de mudanas durante a vida ou existncia de um geo-
objeto, so determinadas pelas operaes que definem como ele adquire,
muda ou perde a identidade ao longo do tempo (Figura 4.10). Essas
operaes so denominadas construtores temporais, e podem ocorrer em
um geo-objeto ou entre geo-objetos diferentes (Medak, 1999).

159
4. Modelos espao-temporais

Perde a existncia
Perde a
temporariamente
Volta a existir existncia e
Passa a existir permanece a
sua Histria

t1 t2 t3 eixo temporal

Figura 4.10 Linha da vida - Lifeline (Fonte: adaptada de Medak, 2001).


Uma mudana pode ser incremental ou contnua. Em uma escala
microscpica, todo geo-objeto sofre mudanas constantemente. Mas, em
uma escala macroscpica, importante uma distino entre duas
situaes conceituais: (a) geo-objetos cujas propriedades podem ser
consideradas estveis, durante um certo tempo, at que ocorre uma
mudana instantnea (por exemplo, quando um lote muda de
proprietrio); (b) geo-objetos cujas propriedades mudam
constantemente, porm as representaes so apenas capazes de capturar
instantneos temporais (snapshots) (por exemplo, no registro da
temperatura do ar em uma estao meteorolgica). No primeiro caso,
considera-se que o objeto estvel entre mudanas e, no segundo, o objeto
est sujeito a mudanas contnuas.
Quanto sua existncia diante da ocorrncia de mudanas, os geo-
objetos podem ser classificados como continuants e ocurrents. Objetos
continuant so capazes de permanecer com a mesma identidade e de
existir por um longo tempo, como um lote, um planeta ou um animal.
Por outro lado, objetos ocurrent acontecem em um determinado tempo e
tm curta durao, como, por exemplo, um evento da picada de um
mosquito, uma ao de remembramento de lotes, um processo de
deslizamento de terra ou a atividade de cortar uma rvore (Worboys,
2005).
Geo-objetos associados a parties definidas por convenes humanas,
como no caso de informaes sobre a realidade de um sistema de cadastro

160
Identidade, vida e evoluo de geo-objetos

urbano, demandam consultas complexas, do tipo selecionar os lotes


pblicos que foram criados pela juno de lotes particulares e que
perderam parte de sua rea para formar logradouro(s). Por esta razo,
alguns pesquisadores tm dedicado especial ateno elaborao de
construtores capazes de modelar e gerenciar relacionamentos temporais
entre objetos, considerando sua identidade. (Al-Taha e Barrera, 1994)
(Hornsby e Engenhofer, 1997) (Hornsby e Engenhofer, 1998) (Hornsby
e Engenhofer, 2000).
A evoluo de geo-objetos somente pode ser recuperada pela
identidade de um geo-objeto ou sua localizao espacial. A identidade de
um geo-objeto tem sido apresentada como uma parte da semntica
associada aos processos de mudanas espao-temporais. Apresentamos, a
seguir, as operaes propostas considerando a identidade de geo-objetos.
Pode-se recuperar toda a evoluo histrica de um geo-objeto atravs
de sua identidade, desde que haja uma conexo genealgica entre
objetos. Alternativamente, pode-se determinar as mudanas ocorridas em
um determinado espao conhecendo-se apenas sua localizao.
fundamental poder determinar, em qualquer situao, que mudanas
permitem que o geo-objeto permanea o mesmo (i.e., mantenha a sua
identidade apesar das mudanas) e que mudanas fazem com que o
objeto evolua para outro(s), deixando de existir com aquela identidade.
4.4.3 Operaes de mudana baseadas na identidade
Para demonstrar as possveis mudanas de estado relativas identidade
de objetos, Hornsby e Egenhofer (1997, 1998, 2000) desenvolveram uma
linguagem visual pictrica, denominada CDL (Change Description
Language). A CDL permite descrever cenrios atravs da seqncia de
transies da identidade de objetos ao longo do tempo. Trata-se de um
modelo qualitativo, baseado na seqncia temporal dos eventos, e que
possui extenses para representar relacionamentos espaciais, associaes
entre geo-objetos e propriedades de geo-objetos.
A Figura 4.11. apresenta algumas primitivas da CDL. Existem
primitivas que indicam que um geo-objeto pode nunca ter existido, existe
no tempo atual ou existiu em algum tempo anterior, mas no possui

161
4. Modelos espao-temporais

existncia no tempo atual. O geo-objeto pode possuir um vinculo


temporal com a sua histria ou no. A primitiva de transferncia de
propriedade corresponde cpia de propriedades e transio de estados
em mesmo geo-objeto ou entre geo-objetos diferentes. A transmisso do
tipo emisso corresponde substituio de um geo-objeto por outro do
mesmo tipo, mantendo as propriedades, e a transio do tipo separao
subentende um cenrio de diviso da geometria.

A A

Objeto no existe Objeto no existe


Objeto existe
e no possui histria e possui histria

(a)

Transferncia Transio entre Transioentre Transio do Transio do


de propriedade mesmo objeto objetos diferentes tipo emisso tipo separao

(b)
Figura 4.11 a) Primitivas de estados da identidade de geo-objetos e
b)Primitivas de tipos de transio (Fonte: adaptada de Hornsby e Egenhofer
(1997, 2000)).
A CDL usada aqui para facilitar o entendimento das semelhanas e
diferenas existentes entre as diversas propostas de operaes de mudana
baseadas na identidade descritas na literatura (Clifford e Croker, 1988)
(Chu et al., 1992) (Al-Taha e Barrera, 1994) (Hornsby e Egenhofer,
1997, 1998 e 2000) (Medak, 1999 e 2001) (Al-Taha, 2001).
As propriedades de um geo-objeto podem ser transmitidas para outro
geo-objeto j existente ou criado especificamente para receb-las. No
ltimo caso, o geo-objeto origem em geral destrudo, porm mantido
como predecessor do novo geo-objeto. Um geo-objeto pode dar origem a
um novo geo-objeto ou ser substitudo por outro objeto. So criados links
temporais entre os geo-objetos origem e os seus sucessores.
As primeiras operaes de identidade definidas foram create e destroy.
A operao create cria o vnculo temporal (predecessores) com o(s)
objeto(s) origem, sendo que somente um geo-objeto que nunca existiu

162
Identidade, vida e evoluo de geo-objetos

pode no possuir predecessores. A operao destroy elimina o geo-objeto e


a sua histria.
Clifford e Croker (1988) acrescentaram as operaes kill e reincarnate.
A operao kill suspende a existncia de um geo-objeto temporariamente,
sem destruir a sua identidade, e a operao reincarnate ressuscita um
geo-objeto suspenso. Essas operaes so apresentadas na Tabela 4.2,
com os nomes das operaes por autor e a sua representao em CDL.
Tabela 4.2 Operadores bsicos de identidade de geo-objetos
Al-taha e Barrera Hornsby e Engenhofer Medak CDL (2000)
(1994) (1997) (1999)
create create create
A

destroy destroy remove


A

kill eliminate destroy


A A

reincarnate reincarnate resume


A A

Chu et al. (1992) propuseram as operaes evolution, fission e fusion


(Tabela 4.3). A operao evolution substitui a identidade atual por uma
nova identidade. A fission cria novas identidades a partir de um geo-
objeto existente com o sentido de subdiviso. A fusion cria uma nova
identidade a partir de outras, com o sentido de fuso. Essas operaes
destroem todos os geo-objetos origem.
Hornsby e Engenhofer (1997 e 1998) incluram as operaes generate,
mix e splinter (Tabela 4.3). As operaes generate e mix possuem a
semntica da operao fusion, porm na operao generate todos os geo-
objetos origem so preservados. Na operao mix, nem todos so
destrudos. A operao splinter possui a mesma semntica da fission,
porm mantm a existncia do geo-objeto origem.

163
4. Modelos espao-temporais

Tabela 4.3 Operadores de identidade de geo-objetos


Al-taha e Barrera Hornsby e Engenhofer Medak CDL (2000)
(1994) (1997) (1999)
evolve metamorphose evolve B

A A

fuse merge fusion A A

B B

generate A A

B B

mix A A

B B

fission divide fission B

A A

splinter B

A A

Al-Taha e Barrera (1994) acrescentaram ainda as operaes spawn e


identify (Tabela 4.4). A operao spawn gera novas identidades a partir de
um geo-objeto existente, e s difere da operao evolution porque
mantm o geo-objeto origem. A operao identify funde um conjunto de
geo-objetos em um dos geo-objetos do conjunto, destruindo os demais
(Al-Taha, 2001).

164
Identidade, vida e evoluo de geo-objetos

Tabela 4.4 Operadores de identidade Spawn e Identify


Al-taha e Barrera Hornsby e Engenhofer Medak CDL (2000)
(1994) (1997) (1999)
spawn spawn B

A A

identify A A

B B

C C

Medak (1999) formalizou uma proposta de 14 operadores de


identidade que contemplam as propostas de Hornsby e Engenhofer
(1997, 1998) e de Al-Taha e Barrera (1994), acrescentando a operao
restructure. A operao restructure (Figura 4.12) foi criada para processos
de reestruturao que envolvem vrios objetos. So criados novos objetos
atravs de um processo de rediviso interna de um espao. Essa operao
no mantm a ligao de cada objeto origem com o seu sucessor. Um
exemplo dessa operao uma rediviso de lotes em uma quadra.
A B D E

C F

(a) (b)
Figura 4.12 Unificao dos lotes A, B, C originais (a) atravs da
operao reestruct gerando os Lotes D, F, E.
Medak (1999) concluiu que as operaes bsicas para a mudana de
um simples geo-objeto so as operaes relacionadas a sua existncia

165
4. Modelos espao-temporais

(Tabela 4.2): create, resume, suspend e destroy. Pois, com essas operaes
pode-se obter as outras operaes propostas.
As propostas de operao baseada na identidade de geo-objetos
evoluram muito em termos da identidade do geo-objeto, permitindo que
(a) um geo-objeto seja suspenso para ser recuperado no futuro, no
sentido de retormar a existncia do geo-objeto; (b) existam vnculos
temporais entre identidades de geo-objetos para composio da histria
do geo-objeto; (c) as operaes propostas sejam obtidas atravs da
composio de um conjunto de operaes bsicas. No entanto, mesmo
tendo sido desenvolvidas considerando objetos espaciais, essas propostas
no so detalhadas o bastante para considerar o efeito das operaes
sobre as propriedades espaciais e no espaciais dos objetos e os seus
relacionamentos.

4.5 Exemplo de modelo espao-temporal: cadastro urbano


Um sistema de informao cadastral geralmente, uma ferramenta de
responsabilidade pblica. Ele essencial para a administrao das
cidades e para os planejamentos urbanos e sociais, envolvendo reas
responsveis pelas informaes legais, sociais, administrativas,
econmicas e de meio ambiente (Al-Taha, 2001).
Apresentamos, a seguir, um exemplo baseado na realidade do
Cadastro Tcnico Municipal (CTM) do municpio de Belo Horizonte.
Esse exemplo refere-se a um projeto de implantao de uma linha de
metr de superfcie, hoje existente, sendo que as datas apresentadas so
fictcias. Os geo-objetos considerados so: linha de metr (para
representar a rea de um segmento da linha de metr), lote, quadra,
logradouro (representando trecho de logradouro) e rea remanescente.
reas remanescentes, para o CTM, so sobras de reas oriundas de um
processo de desapropriao. Elas so remanescentes por no possurem
rea suficiente e nem as caractersticas necessrias, determinadas pela lei
de regulamentao do solo, para serem definidas como um lote urbano.
Adotamos tambm o polgono como representao espacial e o ano para a
representao da granularidade temporal.

166
Exemplo de modelo espao-temporal: cadastro urbano

A Figura 4.13 mostra o impacto da mudana na realidade da cidade.


Essa mudana pode ser observada atravs da representao vetorial dos
geo-objetos antes da implantao da linha de metr (Figura 4.13 a) e da
imagem aps a sua implantao (Figura 4.13 b). A imagem mostra que a
rea interna aos limites da linha de metr passou por grandes mudanas:
foram demolidos trechos de logradouros e edificaes; deixaram de existir
lotes, quadras e logradouros; e, surgiram a rea do metr e a linha de
metr.

(a) (b)
Figura 4.13 rea afetada pela linha de metr antes (a) e depois da sua
implantao (b) (Fonte: cadastro CTM da Prodabel).

4.5.1 Elemento temporal


Demonstramos a seguir a importncia de ter o elemento bitemporal
associado representao espacial para informaes urbanas. Foi
registrado no banco de dados do CTM, em 2/5/1996, que a previso de
implantao da linha de metr seria em 20/3/1998. Depois, em 1/10/1998,
registrou-se que a linha de metr foi implantada em 3/9/1998. Mas, em
7/12/1998 descobriu-se que o dado de implantao estava incorreto, pois
a implantao tinha ocorrido em 3/5/1998 (Tabela 4.5).

167
4. Modelos espao-temporais

Tabela 4.5 Tempo bitemporal.


Tempo do BD Tempo de Evento Significado
(tD) (tE)
2/5/1996 20/3/1998 Implantao prevista
1/10/1998 3/9/1998 Implantao
7/12/1998 3/5/1998 Correo Implantao
Para o planejamento urbano importante saber qual era o tempo
previsto para implantao da linha de metr e quando ele foi realmente
implantado (tempo de evento). E, alm disso, extremamente relevante
identificar o perodo em que a informao de implantao do projeto
esteve errada no banco de dados (1/10/1998 a 7/12/1998), tempo de
transao. Pois, durante esse perodo, a informao disponvel para
apoiar tomada de deciso estava incorreta. O elemento bitemporal
possibilita essa distino, porm ainda objeto de pesquisa a
possibilidade da alterao do tempo de transao para corrigir a histria
passada.
4.5.2 Mudanas espao-temporais
Na Figura 4.14 ilustramos algumas mudanas no parcelamento do solo,
durante o perodo de 1994 a 2000. Em 1995, ocorreu uma ao de
remembramento dos lotes LA e LB, que originou (criou) o lote LD. Um
remembramento pode ocorrer por uma solicitao do proprietrio
quando adquire lotes adjacentes. Neste caso, realizada uma operao
de juno da geometria. Em 1996, criou-se um projeto para implantao
de uma linha de metr de superfcie nessa rea. A linha de metr (LT1)
do projeto foi implantada (criada) em 1998. E, ao mesmo tempo, os geo-
objetos que deram origem a essa linha de metr perderam a sua
existncia. Esses geo-objetos foram: o trecho de logradouro R1, o lote LE
e parte dos lotes LC e LF. Tambm, devido a mesma ao, surgiram as
reas remanescentes A1 e A2 com a rea restante do logradouro R1 e do
lote LF. Alem disso, foi alterada a rea e geometria do lote LC. A seguir,
em 2000, uma outra ao de remembramento do lote LD com a rea A1
foi realizada. Essa ao deu origem ao lote LG.

168
Exemplo de modelo espao-temporal: cadastro urbano

LA Q3 Q3 Q3 Q3 Q3
LC LD LC LD LC LD LC LG LC
LB LC
LT1 LT1
R1 R1 R1 A1
LE LF LE LF LE LF
A2 A2

1994 1995 1996 1998 2000


Figura 4.14 Situaes de mudanas espaciais no tempo pela implantao da
linha de metr.
A Figura 4.15 apresenta a CDL do exemplo com as respectivas
operaes realizadas e os seus objetos resultantes. Alguns objetos
resultantes so intermedirios ( como o LH) por isso no aparecem na
Figura 4.14. Eles so gerados para determinar uma melhor composio
da histria desses geo-objetos.

169
4. Modelos espao-temporais

LA LA

FUSION
(MERGE) LD LD LD LD LD
FISSION
LB LB (SPLINTER)
LH LH

LC LC LC LC LC LC
FUSION
(MERGE) LG

FISSION A1 A1
(SPLINTER)
FUSION
(MERGE) LT1 LT1

R1 R1 R1 R1 R1

LE LE LE LE

FISSION
(SPLINTER)
A2 A2 A2

LF LF LF LF LF

1995
1994 1998 2000
1996

Figura 4.15 CDL das operaes baseadas na identidade realizadas para


implantao da linha de metr.
Sobre a situao apresentada na Figura 4.14, podemos imaginar as
seguintes consultas relacionadas vida e evoluo dos geo-objetos:
1. Quais eram as configuraes espaciais dos lotes da quadra Q3 em
1994?
2. Quais eram as configuraes espaciais dos lotes da quadra Q3
utilizadas na cobrana do IPTU entre 1996 e 2000?
3. Quais foram todas as configuraes espaciais do lote LC no
perodo de 1994 at hoje?
4. Quais foram os lotes que ficaram sem gua das 8:00 da manh do
dia 12 de janeiro at s 20:00 do dia 15 de janeiro de 1998?
5. Quais foram cronologicamente os proprietrios do lote LD?
6. Quais foram s sucessivas taxas anuais de IPTU cobradas do lote
LC?

170
Exemplo de modelo espao-temporal: cadastro urbano

7. Quais foram os imveis que foram desapropriados entre 1998 e


2000?
8. Quais so as quadras que possuem lotes com reas alteradas pela
implantao da linha de metr LT1?
9. Quando a pavimentao do logradouro R1 correspondeu a um
percentual maior que 40%?
10. Quais os perodos de tempo em que o lote LD no obteve o
beneficio de iluminao pblica no ano de 1998?
11. Quais aes geraram mudanas na quadra Q3 entre 1994 e 2000?
12. Quais foram os lotes que deixaram de existir no perodo de 1996 a
2000?
13. Quais lotes foram criados entre 1994 e 1995?
14. Quais geo-objetos deram origem a linha de metr?
15. Como essas aes foram realizadas? Quais foram os objetos
origem dessa ao e os objetos resultantes? Como as alteraes
foram realizadas nos objetos? Quais foram as operaes utilizadas
para gerar a alterao? Qual a lgica utilizada pela operao?
Essas consultas buscam recuperar o estado de um geo-objeto, a
Histria de uma regio espacial especfica ou de geo-objetos e de um
elemento temporal. Como tambm, informaes sobre as aes que
promoveram as mudanas.
Esse exemplo mostra que ainda so necessrios avanos nas pesquisas
para capturar todos os aspectos da dinmica de geo-objetos espao-
temporais. Uma ontologia de mudana deve responder a perguntas como
(1) que mudanas ocorreram em cada objeto? (2) quando essas mudanas
ocorreram?, (3) como as mudanas foram geradas?, (4) quais regras
determinaram essas mudanas? e (5) quais foram as causas da mudana?
Criar modelos para suportar ontologias de mudanas essencial para que
se possam obter informaes dessas mudanas e dos geo-objetos
envolvidos (Dias et al., 2004).

171
4. Modelos espao-temporais

4.6 Exemplo de modelo espao-temporal: queimadas na Amaznia


No Brasil, a queima de biomassa vegetal constitui uma prtica de
manejo, principalmente, para a criao de gado e a expanso da fronteira
agrcola. As queimadas esto amplamente inseridas no processo
produtivo da Amaznia e do Cerrado brasileiro e so fatores que
impulsionam a expanso agropecuria nestas regies. As queimadas
ocorrem todo ano durante a estao seca, sendo no final deste perodo em
que ocorre a maior incidncia.
A ocorrncia de queimadas acarreta inmeros impactos ambientais,
por isso a modelagem de um banco de dados geogrficos que contemple
o aspecto temporal de questes relacionadas a desmatamentos e
queimadas de grande importncia para a anlise e combate a estes
problemas. Essa seo apresenta como exemplo, uma proposta de
modelagem de um banco de dados espao-temporal para dados de
queimadas. A descrio completa desse trabalho pode ser encontrada em
Correia et al. (2004).
A modelagem espao-temporal das queimadas foi feita considerando-
se os focos de calor como eventos isolados que podem ou no ser
conectados espacial e temporalmente, formando assim queimadas com
variao espao-temporal. Os focos de calor so obtidos atravs de
imagens de sensoriamento remoto. Para tanto, cada pixel da imagem
onde foram identificados os focos de calor, representado por um ponto
com uma regio contgua ao seu redor representando o tamanho nominal
dos pixels da imagem (Figura 4.16). Com isso, possvel acompanhar a
evoluo dos focos de calor e de queimadas. Ao se realizar uma consulta,
pode-se tanto analisar focos de calor quanto queimadas.

172
Exemplo de modelo espao-temporal: queimadas na Amaznia

Figura 4.16 Modelagem espao-temporal de focos de calor e queimadas.


Alm dos dados de focos de calor, o banco de dados foi projetado de
forma a armazenar dados de uma base cartogrfica, dados de legislao,
cadastro de imveis e dados de fiscalizao.
O processo de desmatamento representado por polgonos que
representam talhes de reas desmatadas e que, normalmente, evoluem
ao longo do tempo em um processo incremental. Para incluso do
processo de desmatamento foi definido um conjunto de operaes sobre
as geometrias de entrada do sistema, para possibilitar a construo dos
relacionamentos topolgicos e temporais entre os geo-objetos, usando a
abordagem descrita em Dias et al. (2004) (juno, separao e
destruio).
Todos os dados foram incorporados a um SIG de arquitetura em
camadas, ou seja, onde os dados descritivos e espaciais so guardados em
tabelas relacionais armazenadas em um SGBD objeto-relacional. Sobre
esse modelo lgico foi possvel implementar consultas espao-temporais
de interesse como : Quais so as reas desmatadas no perodo de 01-06-
2004 a 09-06-2004 e posteriormente queimadas em 17-06-2004? ou As
queimadas agrcolas foram mais intensas do que as queimadas florestais no
perodo de 01-06-2004 a 09-06-2004 no municpio 9?. A Tabela 4.6
mostra os passos necessrios para a resposta primeira pergunta usando
comandos SQL Structured Query Language.

173
4. Modelos espao-temporais

Tabela 4.6 Operaes espaciais para obteno das reas desmatadas entre 01 a
09-06-2004 e posteriormente queimadas em 17-06-2004
Etapas Comando SQL

Seleo dos Select object_id, spatial_data into temporary


polgonos das reas desmatamento from te_polygons_desmatamento
desmatadas entre where geom_id=(select geom_id from
01-06-2004 e 09-06- temp_desmatamento where initial_time >= '2004-
2004 06-01' and initial_time <= '2004-06-09');

Seleo dos pontos Select object_id, spatial_data into temporary


de queimadas em queimadas from te_points_focos where
17-06-2004 object_id=(select object_id from att_focos
where initial_time = '2004-06-17');

Seleo das reas Select t1.object_id, t2.object_id from


desmatadas e depois queimadas t1, desmatamento t2 where
queimadas within(t1.spatial_data, t2.spatial_data);

Essas consultas espao-temporais preliminares forneceram os


resultados esperados, sinalizando para uma modelagem adequada, o que
possibilitou a integrao de dados histricos de desmatamentos e
queimadas. Mas faz-se necessrio a ampliao das consultas espao-
temporais, com o objetivo de avaliar, mais detalhadamente, o modelo
lgico implementado nesse exemplo.

4.7 Leituras suplementares


Como visto neste captulo, o uso de modelos espao-temporais
necessrio para uma grande variedade de aplicaes de geoinformao.
Devido complexidade envolvida na representao combinada de espao
e tempo, estes modelos ainda esto em desenvolvimento, e trata-se de
uma rea de pesquisa extremamente ativa. Os principais temas de
pesquisa incluem: ontologias de mudana de geo-objetos, modelos espaciais
dinmicos, e modelos para objetos mveis.
A questo de ontologias de mudana abordada nos artigos de Frank
(2003), Grenon e Smith (2003), Worboys e Hornsby (2004), Worboys

174
Leituras suplementares

(2005) e Dias et al (2004). O tema especfico de identidade de geo-objetos


discutido em Medak (1999) e Hornsby e Egenhofer (2000). A questo
de aes e atividades discutida em Kuhn (2001). A questo de
modelagem dinmica espacial, no discutida em detalhe neste captulo,
apresentada em Burrough (1998) e Couclelis (1985). Exemplos de
aplicaes so apresentados em Almeida et al. (2003) e Pedrosa et al.
(2002). Os problemas de modelagem de objetos mveis so discutidos no
captulo 5 do livro e revisados no artigo de Guting et al. (2003).

175
4. Modelos espao-temporais

Referncias
ALLEN, J. F. Maintaining Knowledge about Temporal Intervals. ACM
Communications, 26, pp. 832-843, 1983.
ALMEIDA, C. M. D.; MONTEIRO, A. M. V.; CAMARA, G.; SOARES-
FILHO, B. S.; CERQUEIRA, G. C.; PENNACHIN, C. L.; BATTY, M.
Empiricism and Stochastics in Cellular Automaton Modeling of Urban
Land Use Dynamics. Computers, Environment and Urban Systems, v. 27,
n.5, p. 481-509, 2003.
Al-TAHA, K., 2001. Identities through time. In: FRANK, A. U.; RAPER, J. e
CHEYLAN, J. eds., Life and Motion of Socio-Economic Units, London:
Taylor & Francis.
AL-TAHA, K; BARRERA, R., 1994. Identities through time. In: International
Workshop on Requirements for Integrated Geographic Information
Systems, New Orleans, Lousiana, pp. 1-12.
BURROUGH, P., 1998. Dynamic Modelling and Geocomputation. In:
LONGLEY, P.; BROOKS, S.; MCDONNELL, R.; MACMILLAN, B.,
eds., Geocomputation: A Primer: New York, John Wiley.
CHEYLAN, J., 2001. Time, actuality, novelty and history, In: FRANK, A. U.;
RAPER, J. e CHEYLAN, J. eds., Life and Motion of Socio-Economic
Units, London: Taylor & Francis.
CHU, W. W.; IEONG, I. T.; TAIRA, R. K.; BREANT, C. M., 1992. A
temporal evolutionary object-oriented data model for medical image
management. Proceedings of the Fifth Annual IEEE 5th Symposium on
Computer-Based Medical Systems, Durham, North Carolina.
CLARAMUNT, C.; JIANG, B. A representation of relationships in temporal
spaces. In: ATKINSON, P. e MARTIN, D. eds., Innovations in GIS VII:
GeoComputation, Taylor and Francis, pp. 41-53, 2000.
CLIFFORD, J.; CROKER, A. Objects in Time. Database Engineering, v.7,
n.4, 189-196. 1988.
CORREIA, A. H.; PIROMAL, R. A. S.; QUEIROZ, G. R.; de SOUZA, R. C.
M. Modelagem de um Banco De Dados Espao Temporal para
Desmatamentos e Queimadas. Anais XII SBSR, Goinia, Brasil, 16-21 abril
2005, INPE, p. 2619-2627.

176
Referncias

COUCLELIS, H. Cellular Worlds: A Framework for Modeling Micro-Macro


Dynamics. Environment and Planning A, v. 17, p. 585-596, 1985.
DIAS, T.; CAMARA, G.; FONSECA, F.; DAVIS, C. Bottom-Up Development
of Process-Based Ontologies. In: GIScience 2004, 2004,College Park, MA.
AAG.
EDELWEISS, N.; OLIVEIRA, J. P. M , 1994. Modelagem de Aspectos
Temporais de Sistemas de Informao. Recife, UFPE-DI. P.
EGENHOFER, M. J.; FRANZOSA, R. Point-Set Topological Spatial
Relations. International Journal of Geographical Information Systems, v.
5, n.2, p. 161-174, 1991.
FONSECA, F.; DAVIS, C.; CAMARA, G. Bridging Ontologies and
Conceptual Schemas in Geographic Applications Development.
Geoinformatica, v. 7, n.4, p. 355-378, 2003.
FONSECA, F.; EGENHOFER, M.; AGOURIS, P.; CMARA, G. Using
Ontologies for Integrated Geographic Information Systems. Transactions in
GIS, v. 6, n.3, p. 231-257, 2002.
FRANK, A. U., 1997. Spatial ontology: A geographical information point of
view. In STOCK, O. ed., Spatial and Temporal Reasoning, pages 135153.
Kluwer Academic Publishers, Dordrecht.
FRANK, A. U., 2003, Ontology for Spatio-temporal Databases. In:
KOUBARAKIS, M.; SELLIS, T., eds., Spatio-Temporal Databases: The
Chorochronos Approach: Lecture Notes in Computer Science: Berlin
Heidelberg New York, Springer-Verlag, p. 9-78.
FRANK, A. U., RAPER, J., CHEYLAN, J. Life and Motion of Socio-Economic
Units. ESF Series, London, Taylor & Francis, p. 353. 2001.
GRENON, P.; SMITH, B. SNAP and SPAN: Towards Dynamic Spatial
Ontology, Spatial Cognition and Computation, v.4, n.1, p.69104. 2003.
GTING, R. H.; BOHLEN, M. H.; ERWIG, M.; JENSEN, C. S.;
LORENTZOS, N.; NARDELLI, E.; SCHNEIDER, M.; VIQUEIRA, J. R.
R., 2003. Spatio-temporal Models and Languages: An Approach Based on
Data Types. In: KOUBARAKIS, M., ed., Spatio-Temporal Databases:
Berlin, Springer.

177
4. Modelos espao-temporais

HORNSBY, K.; EGENHOFER, M. J., 1997. Qualitative Representation of


Change. In: FRANK, A. U. e HIRTLE eds. Spatial Information Theory - A
Theoretical Basis for GIS (International Conference COSIT'97), Springer-
Verlag, Berlin-Heidelberg, 15-33.
HORNSBY, K.; EGENHOFER, M. J., 1998. Identity-Based Change
Operations for Composite Objects. In: POIKER, T. K. e CHRISMAN, N.
eds. Proceedings of 8th Internal Symposium on Spatial Data Handling,
July 11-15, Vancouver.
HORNSBY, K.; EGENHOFER, M. J., Identity-Based Change: A Foundation
for Spatio-Temporal Knowledge Representation. International Journal of
Geographical Information Science. v.14, n.3, p.207-224. 2000.
KAVOURAS, M., 2001. Understanding and Modelling Spatial Change. In:
FRANK A. RAPER J. e CHEYLAN J.P. eds.: Life and Motion of Socio-
Economic Units, Chapter 4. London: Taylor & Francis, GISDATA Series 8.
KUHN, W. Ontologies in support of activities in geographical space.
International Journal of Geographical Information Science, v. 15, n.7, p.
613-631, 2001.
LANGRAN. G. Time in Geographic Information Systems. Washington, DC,
Taylor & Francis, 1993.
MEDAK, D. Lifestyles - A New Paradigm in Spatio-Temporal Databases.
Ph.D. Thesis. Technical University of Vienna, 1999.
MEDAK, D., 2001. Lifestyles. In: FRANK, A. U.; RAPER, J. e CHEYLAN, J.
eds., Life and Motion of Socio-Economic Units, London: Taylor & Francis,
p.353.
PEDROSA, B.; CMARA, G.; FONSECA, F.; SOUZA, R. C. M. TerraML - A
Cell-Based Modeling Language for an Open-Source GIS Library. In: II
International Conference on Geographical Information Science
(GIScience 2002). Proceedings, AAG, 2002, Boulder, CO, 2002.
PEUQUET, D. J. Making Space for Time: Issues in Space-Time Data
Representation. GeoInformatica v. 5, n. 1, p.11-32, 2001.
RENOLEN, A. Temporal Maps and Temporal Geographical Information
Systems. Review of Research. Department of Surveying and Mapping (IKO)
The Norwegian Institute of Technology. November, 1995 revised February
1997.

178
Referncias

SMITH, B.; MARK, D. Ontology and Geographic Kinds. In: International


Symposium on Spatial Data Handling. Vancouver, Canada, 1998. p. 308-
320.
SNODGRASS, R. T., 1992. Temporal Databases. In: FRANK, A. U.;
CAMPARI, I. e FORMENTINI, U. eds. Theories and Methods of Spatio-
Temporal Reasoning in Geographic Space, Springer-Verlag, Heidelberg-
Berlin. p. 22-64.
SNODGRASS, R. T. Temporal databases: Status and research directions.
SIGMOD RECORD, v.19, n.4, p. 8389, 1990.
WORBOYS, F. M. F. A unified model of spatial and temporal information,
Computer Journal, v.37, n.1, p.26-34, 1994.
WORBOYS, F. M. F..; DUCKHAM, M. GIS: A Computing Perspective. CRC
Press, Boca Raton, Florida, Taylor Francis Ltd. 1995, 376 p.
WORBOYS, M. F. Event-oriented approaches to geographic phenomena.
accepted for publication in International Journal of Geographic Information
Systems, 2005. Disponvel em :
http://www.spatial.maine.edu/~worboys/downloads.htm.
WORBOYS, M. F., 1998. A Generic Model for Spatio -Bitemporal Geographic
Information. In: EGENHOFER, M. J., GOLLEDGE, E. R. G. eds. Spatial
and Temporal Reasoning in Geographics Information Systems. New York,
Oxford University Press: 25-39.
WORBOYS, M. F.; HORNSBY, K. From Objects to Events: GEM, the
Geospatial Event Model. In: EGENHOFER, M. J.; FREKSA, C. e
MILLER, H. J. eds. Third International Conference, GIScience 2004, 2004,
Adelphi, MD, USA. Springer, p. 327-343.

179
5 Arquiteturas e linguagens

Karine Reis Ferreira


Marco Antonio Casanova
Gilberto Ribeiro de Queiroz
Olga Fradico de Oliveira

5.1 Introduo
Este captulo inicialmente apresenta uma viso geral de sistemas de
gerncia de banco de dados (SGBDs) e resume os principais conceitos da
linguagem SQL. Em seguida, aborda a evoluo das arquiteturas de SIG.
Por fim, apresenta os principais operadores espaciais e discute a definio
de linguagens de consulta espacial.
Ao longo dos anos, as implementaes de SIGs seguiram diferentes
arquiteturas, distinguindo-se principalmente pela estratgia adotada para
armazenar e recuperar dados espaciais. Mais recentemente, tais
arquiteturas evoluram para utilizar, cada vez mais, recursos de SGBDs.
Por seu lado, a pesquisa na rea de Banco de Dados passou, j h
algum tempo, a preocupar-se com o suporte a aplicaes no
convencionais (Schneider, 1997), incluindo as aplicaes SIG. Uma
aplicao classificada como no convencional quando trabalha com
outros tipos de dados, alm dos tradicionais, como tipos de dados
espaciais, temporais e espao-temporais. Uma das vertentes de pesquisa
tem sido exatamente a definio de linguagens de consulta para tratar tais
tipos de dados.
5. Arquiteturas e Linguagens

5.2 Preliminares
5.2.1 Sistemas de gerncia de banco de dados
Um sistema de gerncia de banco de dados (SGBD) oferece servios de
armazenamento, consulta e atualizao de bancos de dados. A Tabela 5.1
resume os requisitos mais importantes para SGBDs e a Tabela 5.2 lista
as principais tecnologias desenvolvidas para atend-los.
Tabela 5.1 Principais requisitos para SGBDs
Requisito Definio
Facilidade a modelagem do banco de dados deve refletir a realidade
de uso das aplicaes, e o acesso aos dados deve ser feito de
forma simples
Correo os dados armazenados no banco de dados devem refletir
um estado correto da realidade modelada
Facilidade de alteraes na forma de armazenamento dos dados
manuteno devem afetar as aplicaes o mnimo possvel
Confiabilidade atualizaes no devem ser perdidas e no devem
interferir umas com as outras
Segurana o acesso aos dados deve ser controlado de acordo com os
direitos definidos para cada aplicao ou usurio
Desempenho o tempo de acesso aos dados deve ser compatvel com a
complexidade da consulta
Tabela 5.2 Principais tecnologias para SGBDs
Requisito Tecnologia
Facilidade de linguagem de definio de dados e linguagem de
uso consulta baseadas em modelo de dados de alto nvel
Correo restries de integridade, triggers e assertivas
Facilidade de especificao do banco de dados em nveis, isolando os
manuteno detalhes de armazenamento das aplicaes

182
Preliminares

Confiabilidade transaes atmicas implementadas atravs de


mecanismos para controle de concorrncia e
mecanismos de recuperao em caso de falhas
Segurana nveis de autorizao e controle de acesso
Desempenho otimizao de consultas, baseada em mtodos de acesso
e de armazenamento eficientes, gerncia eficaz do
buffer pool e modelos de custo, entre outras tecnologias
O mercado para SGBDs concentra-se em duas tecnologias, SGBDs
Relacionais (SGBD-R) e SGBDs Objeto-Relacionais (SGBD-OR), com
uma pequena fatia para SGBDs Orientados-a-Objeto (SGBD-OO).
Os SGBD-R seguem o modelo relacional de dados, em que um banco
de dados organizado como uma coleo de relaes, cada qual com
atributos de um tipo especfico. Nos sistemas comerciais atuais, os tipos
incluem nmeros inteiros, de ponto flutuante, cadeias de caracteres,
datas e campos binrios longos (BLOBs). Para esses tipos encontram-se
disponveis uma variedade de operaes (exceto para o tipo BLOB),
como operaes aritmticas, de converso, de manipulao textual e
operaes com data.
Os SGBD-R foram concebidos para atender as necessidades de
aplicaes manipulando grandes volumes de dados convencionais. De
fato, tais sistemas no oferecem recursos para atender as necessidades de
aplicaes no convencionais. A mera simulao de tipos de dados no
convencionais em um SGBD-R pode ter efeitos colaterais, como queda
de desempenho, dificuldade de codificao e posterior manuteno da
aplicao (Stonebraker, 1996).
Os SGBD-OR estendem o modelo relacional, entre outras
caractersticas, com um sistema de tipos de dados rico e estendvel,
oferecendo operadores que podem ser utilizados na linguagem de
consulta. Possibilitam ainda a extenso dos mecanismos de indexao
sobre os novos tipos. Essas caractersticas reduzem os problemas
ocorridos na simulao de tipos de dados pelos SGBD-R, tornando os
SGBD-OR uma soluo atrativa para aplicaes no convencionais.

183
5. Arquiteturas e Linguagens

5.2.2 A linguagem SQL


A linguagem SQL (Structured Query Language) adotada pela maioria
dos SGBD-R e SGBD-OR comerciais. Desenvolvida inicialmente pela
IBM na dcada de 70, a linguagem sofreu sucessivas extenses,
culminando com a publicao do padro conhecido por SQL:1999 (ver
Tabela 5.3).
Tabela 5.3 Breve histrico de SQL
Ano Verso Caractersticas
1974 SEQUEL linguagem original, adotada no prottipo de mesmo
nome, desenvolvido pela IBM
1976 SEQUEL 2 extenso de SEQUEL, adotada no System R da IBM
1986 SQL-86 (SQL1) padro publicado pela ANSI em 1986
ratificado pela ISO em 1987
1989 SQL-89 extenso do SQL-86
1992 SQL-92 (SQL2) padro publicado pela ANSI e pela ISO
1996 SQL-92 / PSM extenso do SQL-92
2001 SQL:1999 padro aprovado em 1999 pela ISO, resultado de 7
anos de trabalho, e publicado em maio de 2001
SQL formada basicamente por duas sub-linguagens:
Linguagem de definio de dados (SQL DDL): fornece comandos
para definir e modificar esquemas de tabelas, remover tabelas, criar
ndices e definir restries de integridade.
Linguagem de manipulao de dados (SQL DML): fornece
comandos para consultar, inserir, modificar e remover dados no
banco de dados.
A Tabela 5.4 apresenta alguns comandos em SQL.

184
Preliminares

Tabela 5.4 Comandos em SQL


Comando Descrio Tipo
select Recupera dados de uma ou mais tabelas DML
insert Servem para incluir, alterar e eliminar registros de DML
update uma tabela, respectivamente
delete
commit Responsveis pelo controle de transaes, permitem DML
roolback que o usurio desfaa (rollback) ou confirme
(commit) alteraes em tabelas
create Usados para definir, alterar e remover tabelas de um DDL
alter banco de dados
drop
No contexto de SQL, usaremos os termos tabela em lugar de
relao, e coluna em lugar de atributo, seguindo a prtica mais
comum. Os tipos de dados de SQL mais comumente utilizados so
char(n), int, float, date e time. Estes representam, respectivamente, um
conjunto de caracteres de tamanho definido, um nmero inteiro, um
nmero real, uma data (composta por dia, ms e ano) e um instante de
tempo (composto por horas, minutos e segundos).
Uma restrio especifica um critrio de consistncia para o banco de
dados, podendo ser definida a nvel de coluna ou a nvel de tabela. A
restrio de nulidade sobre uma coluna A de uma tabela T indica que
nenhuma linha t de T pode ter o valor de A nulo.
Uma chave primria K (primary key) de uma tabela T formada pelo
nome de uma nica coluna ou por uma lista de nomes de colunas de T.
Indica que quaisquer duas linhas t e t de T no podem ter valores
idnticos de K, ou seja, t[K]t[K].
Uma chave estrangeira F (foreign key) de uma tabela T para uma
tabela U, com chave K, tambm formada pelo nome de uma nica
coluna ou por uma lista de nome de colunas de T. Indica que, para cada
linha t de T, deve haver uma linha u de U tal que t[F]=u[K].

185
5. Arquiteturas e Linguagens

Figura 5.1 Relaes cidade e estado.


A seguir, apresentaremos alguns exemplos de SQL, baseados nas
tabelas cidade e estado, ilustradas na Figura 5.1 e definidas como:
CREATE TABLE estado
( sigla CHAR(2) NOT NULL,
nome CHAR(30),
area FLOAT,
PRIMARY KEY(sigla) )

CREATE TABLE cidade


( codigo INT NOT NULL,
nome CHAR(30) NOT NULL,
estado CHAR(2),
area FLOAT,
PRIMARY KEY(codigo),
FOREIGN KEY(estado) REFERENCES estado(sigla) )
No exemplo anterior, codigo a chave primria da tabela cidade, e
estado de cidade atua como uma chave estrangeira referenciando a
chave sigla da tabela estado. Assim, garantimos que somente os valores
que ocorrem na coluna sigla de estado podem ser usadas como valores
na coluna estado em cidade. Ainda, nessa tabela, as colunas codigo e
nome no podem conter valores nulos.

Para alterar a definio de uma tabela, usamos o comando ALTER


TABLE:

ALTER TABLE estado ADD regio CHAR(20)

Para remover tanto a definio quanto os dados de uma tabela,


usamos o comando DROP TABLE:
DROP TABLE cidade

186
Preliminares

Para remover apenas os dados, usamos o comando DELETE:


DELETE * FROM estado

Para inserir uma nova linha, usamos o comando INSERT:


INSERT INTO estado
VALUES (MG, Minas Gerais, 10000000)
Para alterar dados j existentes, usamos o comando UPDATE:
UPDATE estado SET area = 20000000
WHERE sigla = MG
Para consultar os dados, usamos o comando SELECT, cuja sintaxe
resumida a seguir (ver a Tabela 5.5):
SELECT [distinct] {*, coluna [alias],
expresses [alias], funes [alias], ...}
from {tabelas [alias],}
[where condio]
[group by colunas]
[having condio]
[order by colunas [asc | desc]]
onde os colchetes representam clusulas opcionais, as chaves indicam
que os elementos podem aparecer repetidas vezes e a barra vertical indica
que as opes so mutuamente exclusivas (ou uma ou outra).
Tabela 5.5 Sintaxe dos comandos
Opes Descrio
distinct Indica que as linhas duplicadas devem ser eliminadas do
resultado da consulta.
* Indica que todas as colunas de todas as tabelas da clusula
from devem ser includas nas linhas da resposta da consulta.
coluna Coluna de uma tabela listada na clusula from que deve ser
includa em cada linha da resposta da consulta.
expresses Expresses aritmticas envolvendo uma ou mais colunas das
tabelas listadas na clusula from.
funes Funes definas em SQL como, por exemplo, funes de
agregao, que calculam estatsticas sobre colunas

187
5. Arquiteturas e Linguagens

numricas (avg, min, max, count, dentre outras).


alias Nome alternativo para uma coluna ou expresso, usado para
(select) melhorar a legibilidade do comando, ou para nomear
diretamente uma coluna da resposta da consulta.
tabelas Uma ou mais tabelas envolvidas na consulta.
alias Nome alternativo para uma tabela, usado para melhorar a
(from) legibilidade, ou para permitir o uso da mesma tabela mais de
uma vez na clusula from. Pode ser precedido por as.
condio Especifica uma condio qual as linhas das tabelas listadas
(where) na clusula from devem satisfazer para gerar uma linha da
resposta da consulta.
group by Indica que o resultado deve ser agrupado pelas colunas
colunas especificadas.
condio Limita os grupos a serem mostrados queles satisfazendo a
(having) condio.
order by Ordenao que ser aplicada ao resultado da consulta,
podendo ser crescente (asc) ou decrescente (desc).
As consultas a seguir ilustram o uso do comando select:
Q1. Selecione todos os nomes dos estados.
SELECT nome
FROM estado
Q2. Selecione todos os nomes das cidades, sem repetio.
SELECT DISTINCT nome
FROM cidade
Q3. Recupere os nomes e as reas das cidades que possuam a sigla de estado
igual a MG e populao maior que 50.000 habitantes.
SELECT nome, area
FROM cidade
WHERE estado = MG AND populacao > 50000
Q4. Retorne todas as cidades e o estado ao qual pertence.
SELECT C.nome, E.nome

188
Arquiteturas de SIGs

FROM cidade AS C, estado AS E


WHERE C.estado = E.sigla
Q5. Calcule a mdia das reas de todas as cidades.
SELECT AVG(area)
FROM cidade
Q6. Retorne o nome de cada estado e a soma das reas de todas as cidades
desse estado.
SELECT E.nome, SUM(C.area)
FROM estado AS E, cidade AS C
WHERE E.sigla = C.estado
GROUP BY E.nome
Alm do comando select, os comandos delete e update podem usar a
clusula where como, por exemplo:
Q7. Remova as cidades cuja populao menor que 1000 habitantes.
DELETE FROM cidade
WHERE populacao < 1000
Q8. Altere a populao do estado de Minas Gerais para 5000000.
UPDATE estado SET populacao = 500000
WHERE codigo = MG

5.3 Arquiteturas de SIGs


A partir desta seo, usaremos os conceitos introduzidos na Tabela 5.6 e
definidos em detalhe ao longo das sees seguintes ou em outros
captulos deste texto.
Tabela 5.6 Resumo dos principais conceitos relativos a bancos de dados espaciais

Conceito Definio
geometria matricial uma matriz de elementos, usualmente
pertencentes a um sub-conjunto dos nmeros
reais
geometria vetorial um elemento do 2, considerado como um
espao topolgico.
Pontos, linhas e regies so particulares

189
5. Arquiteturas e Linguagens

geometrias.
geometria uma geometria vetorial ou matricial
atributo espacial um atributo de um objeto cujo domnio seja um
conjunto de geometrias.
objeto espacial qualquer objeto com um atributo espacial.
Os geo-objetos so uma classe particular de
objetos espaciais.
componente espacial valor de um atributo espacial de um objeto.
ou geometria
de um objeto
banco de dados um banco de dados armazenando, entre outros,
espacial objetos espaciais.
consulta espacial uma consultas definida sobre um banco de dados
espacial.
Existem basicamente duas principais formas de integrao entre os
SIGs e os SGBDs, que so a arquitetura dual e a arquitetura integrada.
A arquitetura dual, mostrada na Figura 5.2 armazena as componentes
espaciais dos objetos separadamente. A componente convencional, ou
alfanumrica, armazenada em um SGBD relacional e a componente
espacial armazenada em arquivos com formato proprietrio. Os
principais problemas dessa arquitetura so:
Dificuldade no controle e manipulao das componentes espaciais;
Dificuldade em manter a integridade entre a componente espacial
e a componente alfanumrica;
Separao entre o processamento da parte convencional, realizado
pelo SGBD, e o processamento da parte espacial, realizado pelo
aplicativo utilizando os arquivos proprietrios;
Dificuldade de interoperabilidade, j que cada sistema trabalha
com arquivos com formato proprietrio.

190
Arquiteturas de SIGs

Figura 5.2 Arquitetura Dual Figura 5.3 Arquitetura Integrada

A arquitetura integrada, mostrada na Figura 5.3, consiste em


armazenar todos os dados em um SGBD, ou seja, tanto a componente
espacial quanto a alfanumrica. Sua principal vantagem a utilizao
dos recursos de um SGBD para controle e manipulao de objetos
espaciais, como gerncia de transaes, controle de integridade,
concorrncia e linguagens prprias de consulta. Sendo assim, a
manuteno de integridade entre a componente espacial e alfanumrica
feita pelo SGBD.
Esta ltima arquitetura pode ainda ser subdividida em trs outras:
baseada em campos longos, em extenses espaciais e combinada.
A arquitetura integrada baseada em campos longos utiliza BLOBs para
armazenar a componente espacial dos objetos. Como comentado
anteriormente, um SGBD-R ou -OR trata um BLOB como uma cadeia
de bits sem nenhuma semntica adicional. Portanto, esta arquitetura
apresenta algumas desvantagens:
um BLOB no possui semntica;
um BLOB no possui mtodos de acesso;
SQL oferece apenas operadores elementares de cadeias para tratar
BLOBs.
Portanto, ao codificar dados espaciais em BLOBs, esta arquitetura
torna a sua semntica opaca para o SGBD. Ou seja, passa a ser
responsabilidade do SIG implementar os operadores espaciais,
capturando a semntica dos dados, e mtodos de acesso que possam ser

191
5. Arquiteturas e Linguagens

teis no processamento de consultas, embora seja bastante difcil


incorpor-los ao sistema de forma eficiente.
A arquitetura integrada com extenses espaciais consiste em utilizar
extenses espaciais desenvolvidas sobre um SGBD-OR. Esta arquitetura
oferece algumas vantagens:
permite definir tipos de dados espaciais, equipados com operadores
especficos (operadores topolgicos e mtricos);
permite definir mtodos de acesso especficos para dados espaciais;
Exemplos desta arquitetura so o Oracle Spatial (Murray, 2003) e
PostGIS , descritos em maior detalhe no captulo 8 deste livro. Embora
largamente baseados nas especificaes do OpenGIS (OGC, 1996), estas
implementaes possuem variaes relevantes entre os modelos de dados,
semntica dos operadores espaciais e mecanismos de indexao.
As extenses espaciais utilizadas nas arquiteturas integradas possuem
as seguintes caractersticas :
fornecem tipos de dados espaciais (TDEs) em seu modelo de
dados, e mecanismos para manipul-los;
estendem SQL para incluir operaes sobre TDEs, transformando-
a de fato em uma linguagem para consultas espaciais;
adaptam outras funes de nvel mais interno ao SGBD para
manipular TDEs eficientemente, tais como mtodos de
armazenamento e acesso, e mtodos de otimizao de consultas.
Normalmente, essas extenses tratam somente objetos espaciais cuja
componente espacial seja uma geometria vetorial, utilizando BLOBs
para armazenar dados matriciais, com todos os problemas j citados.
De fato, no caso de aplicativos SIG que manipulam objetos com
geometrias tanto matriciais quanto vetoriais, possvel a utilizao de
uma arquitetura integrada combinada, formada pela combinao das duas
ltimas. Ou seja, as geometrias vetoriais so armazenadas utilizando-se
os recursos oferecidos pelas extenses e as geometrias matriciais so
armazenadas em BLOBs. As funcionalidades para manipulao de
geometrias matriciais so fornecidas por uma camada externa ao SGBD,

192
Operaes espaciais

de modo a complementar os recursos ausentes, at o momento, nas


extenses. Um exemplo desta arquitetura, a TerraLib (Cmara et al.,
2000), ser discutida em detalhe nos Captulos 12, 13 e 14.

5.4 Operaes espaciais


As consultas espaciais baseiam-se em relacionamentos espaciais de vrios
tipos: mtricos, direcionais e topolgicos. Por serem dois conceitos de
natureza distinta, as operaes sobre as componentes espaciais de geo-
campos e geo-objetos tambm so diferentes. Abordaremos nesta seo
apenas operaes sobre as geometrias vetoriais de geo-objetos. Portanto,
no que se segue, omitiremos o adjetivo vetorial. As operaes espaciais
podem ser classificadas em (Rigaux et al., 2002):
Operao unria booleana: mapeia geometrias em valores booleanos.
Como exemplos, temos: Convex, que testa se uma geometria
convexa; e Connected, que testa se uma geometria est conectada.
Operao unria escalar: mapeia geometrias em valores escalares. Como
exemplos, temos: Length, que computa o comprimento ou permetro
de uma geometria; e rea, que computa a rea de uma geometria.
Operao unria espacial: mapeia geometrias em geometrias. Como
exemplos, temos: Buffer, que retorna uma nova geometria a partir de
uma distncia em torno de uma geometria especfica; ConvexHull,
que retorna uma geometria convexa a partir da geometria; MBR, que
retorna o mnimo retngulo envolvente de uma geometria; e Centroid,
que retorna o centride de uma geometria.
Operao binria booleana: tambm chamada de predicado espacial ou
relacionamento espacial, mapeia pares de geometrias em valores
booleanos. Esta classe pode ser dividida em:
Relacionamento topolgico: um relacionamento que no alterado por
transformaes topolgicas, como translao, rotao e mudana
de escala. Como exemplos, temos: contm (contains), disjunto
(disjoint), intercepta (intersects), cruza (crosses), como apresentado
na seo 2.9.

193
5. Arquiteturas e Linguagens

Relacionamento direcional: um relacionamento que expressa uma


noo de direo. Como exemplos, temos: acima de (above), ao
norte de (northOf), dentre outras;
Relacionamento mtrico: um relacionamento que expressa uma noo
mtrica. Por exemplo, o relacionamento que retorna Verdadeiro se
duas geometrias esto a menos de uma determinada distncia uma
da outra.
Operao binria escalar: mapeia pares de geometrias em valores escalares.
Por exemplo, distance computa a distncia entre duas geometrias.
Operao binria espacial: mapeia pares de geometrias em geometrias.
Como exemplos, temos as operaes de conjunto, como interseo
(Intersection), unio (Union) e diferena (Difference).
Operao n-ria espacial: mapeia n-tuplas de geometrias em geometrias.
Por exemplo, a operao ConvexHull pode pertencer a essa classe
quando receber mais de uma geometria como parmetro de entrada.

5.5 Linguagens de consulta espacial


Como SQL-89 no acomodava consultas espaciais, vrias propostas
surgiram na dcada de 90 para estender a linguagem, notadamente
(Egenhofer, 1994) (OGIS, 1995). Segundo Frank e Mark (1991), as
extenses devem considerar dois pontos bsicos:
embora seja possvel estender SQL com operadores espaciais, a
semntica destes operadores deve ser formalmente definida;
embora seja possvel estender SQL para incluir controle de
apresentao de geometrias, aconselha-se projetar uma linguagem
separada para lidar com esta questo.
Esta seo apresenta inicialmente uma breve classificao para
consultas espaciais. Em seguida, discute algumas extenses para incluir
suporte a consultas espaciais na linguagem SQL, incluindo o padro
publicado pela ISSO, chamado SQL/MM Spatial.

194
Linguagens de consulta espacial

5.5.1 Tipos de consultas espaciais


A eficcia das estratgias de otimizao de consultas espaciais depende
fundamentalmente da complexidade e freqncia das consultas. Embora
estes fator seja de difcil caracterizao, esta seo sugere uma
classificao das consultas espaciais bastante til para o estudo do
problema, seguindo (Brinkhoff et al., 1993).
Dentre os tipos de consultas, destacamos os seguintes:
seleo espacial: dado um conjunto de objetos espaciais D e um predicado
de seleo espacial sobre atributos espaciais dos objetos em D,
determine todos os objetos em D cujas geometrias satisfazem .
juno espacial: dados dois conjuntos de dados espaciais, D e D', e um
predicado de seleo espacial , determine todos os pares
(d,d')DD' cujas geometrias satisfazem .
Identificamos ainda os seguintes casos particulares importantes de
seleo espacial:
seleo por ponto: dado um ponto P e um conjunto de objetos espaciais D,
determine todos os objetos em D cujas geometrias contm P.
seleo por regio: dada uma regio R e um conjunto de objetos espaciais
D, determine todos os objetos em D cujas geometrias esto contidos
em R.
seleo por janela: dado um retngulo R com os lados paralelos aos eixos e
um conjunto de objetos espaciais D, determine todos os objetos em D
cujas geometrias esto contidos em R.
Um predicado de seleo espacial uma expresso booleana B(x) com
uma varivel livre, x, varrendo geometrias, tal que B(x) envolve apenas
operaes espaciais. Semelhantemente, um predicado de juno espacial
J(x,y) uma expresso booleana com duas variveis livres, x e y, varrendo
geometrias, tal que J(x,y) envolve apenas operaes espaciais. Um
exemplo de seleo espacial seria:
S1. Selecione as regies da Frana adjacentes regio de Midi-Pirenes.

195
5. Arquiteturas e Linguagens

A Figura 5.4 ilustra o resultado desta consulta, onde a regio de Midi-


Pirenes aparece em cinza escuro, e as regies adjacente, em cinza claro.

Figura 5.4 Operao de seleo espacial.


Exemplos de juno espacial seriam:
J1. Para cada estrada da Amaznia, selecione as reservas indgenas a menos de
5 km de uma estrada.
J2. Para as cidades do serto cearense, selecione quais esto a menos de 10 km
de algum aude com capacidade de mais de 50.000 m3 de gua
5.5.2 SF-SQL
A SF-SQL, proposta pelo OGC - Open Geoscience Consortium , especifica
um conjunto de tipos de geometrias vetoriais, operaes topolgicas e
operaes mtricas. A proposta especifica ainda um esquema de tabelas
para metadados das informaes espaciais. Ela introduz o conceito de
"tabela com feies" para representao dos dados geogrficos. Nesta
tabela, os atributos no espaciais so mapeados para colunas de tipos
disponveis na SQL-92, e os atributos espaciais para colunas cujo tipo de
dados baseado no conceito de "tipos de dados geomtricos adicionais
para SQL".
A representao dos atributos espaciais pode seguir dois modelos,
chamados SQL-92 e SQL-92 com Tipos Geomtricos. O primeiro
modelo utiliza uma tabela para representar os atributos espaciais. O
segundo utiliza tipos abstratos de dados especficos para geometrias,
estendendo os tipos da SQL.

196
Linguagens de consulta espacial

Hierarquia de tipos de geometrias da SF-SQL


A Figura 5.5 ilustra a hierarquia de tipos da SF-SQL. Este diagrama
o mesmo tanto para o modelo da SQL-92 quanto para o da SQL-92
com Tipos Geomtricos.
Alguns tipos so abstratos como: Curve, Surface, MultiSurface e
MultiCurve. Um tipo especial a GeometryCollection, que pode ser
composta por mais de um tipo de geometria (tipo heterogneo). Os
outros so tipos bsicos, como Point, LineString e Polygon, que podem
formar tipos de colees homogneas como MultiPoint, MultiLineString e
MultiPolygon, respectivamente. Cada um destes tipos possui uma srie de
atributos, mtodos e definies que so apresentadas na especificao.

Figura 5.5 Hierarquia de tipos de geometrias da SF-SQL .

197
5. Arquiteturas e Linguagens

Relacionamentos Topolgicos
A SL-SQL basicamente adota os relacionamentos topolgicos
introduzidos na seo 2.9, definidos como mtodos do tipo Geometry. H
ainda um outro relacionamento, chamado relate, que recebe a geometria
a ser comparada e um segundo parmetro que representa um padro da
matriz de interseo, na forma de uma cadeia de nove caracteres,
representando um teste para interseo entre fronteira, interior e exterior.
Ele retorna o inteiro 1 (TRUE) se as geometrias forem relacionadas
espacialmente de acordo com os valores especificados na matriz.
Considere, por exemplo, a seguinte consulta espacial:
Q. Selecione os municpios que fazem fronteira com o municpio de Belo
Horizonte.
Esta consulta pode ser expressa em SF-SQL da seguinte forma:
SELECT M1.name
FROM Municipio M1,Municipio M2
WHERE Touch(M1.location,M2.location)=1
AND M2.Name =Belo Horizonte
Outros Operadores Espaciais
Alm dos relacionamentos topolgicos, SL-SQL inclui outros mtodos
para o tipo Geometry. Entre eles, esto:
distance(outraGeometria:Geometry):Double
retorna a distncia entre as geometrias
buffer(distncia:Double):Geometry
retorna uma geometria definida por um mapa de distncia
convexHull():Geometry
retorna um polgono convexo com todos os pontos da geometria
intersection(outraGeometria:Geometry):Geometry
retorna a geometria resultante da interseo das geometrias
union(outraGeometria:Geometry):Geometry
retorna a geometria resultante da unio de duas geometrias
difference(outraGeometria:Geometry):Geometry
retorna a geometria resultante da diferena entre as geometrias

198
Linguagens de consulta espacial

Os tipos Surface e MultiSurface possuem ainda os seguintes mtodos:


area ():double
rea de uma regio
centroid():point
um ponto representando o centride da geometria
pointOnSurface():point
um ponto que esteja na superfcie
Tabelas com Feies
A especificao da SF-SQL prope o esquema de metadados mostrado
na Figura 5.6 para representar conjuntos de geo-objetos em tabelas com
atributos dos tipos de geometrias anteriormente descritos:
SPATIAL_REF_SYS, tabela armazenando dados sobre cada sistema de
referenciamento espacial (SRS) utilizado no banco de dados.
GEOMETRY_COLUMNS, tabela de metadados para as colunas
geomtricas das tabelas com feies (feature tables).

Figura 5.6 Esquema de Metadados da SF-SQL .


Cada atributo do tipo Geometry (ou de seus sub-tipos), de cada tabela
com feies, deve estar associado a um SRS, de tal forma que seja
possvel determinar o sistema de referenciamento espacial utilizado para
representar cada geometria armazenada na tabela. Isso essencial para
que os mtodos possam verificar a compatibilidade dos sistemas de
referenciamento espacial utilizados pelas geometrias.

199
5. Arquiteturas e Linguagens

5.5.3 Spatial SQL


A linguagem Spatial SQL, desenvolvida por Egenhofer (Egenhofer,
1994), representa um outro exemplo de linguagem de consulta espacial
baseada em SQL. Spatial SQL divide-se em duas sub-linguagens, uma
para consulta e outra para apresentao de objetos espaciais, buscando
aproximar-se da forma como os seres humanos conceitualizam o espao
geogrfico. A sub-linguagem de consulta estende SQL com operadores e
relacionamentos espaciais. Distingue-se de outras extenses por preservar
os conceitos de SQL e por conseguir um tratamento de alto nvel dos
objetos espaciais.
Exemplos de operaes disponveis na Spatial SQL so:
Operadores unrios: fornecem, por exemplo, dados de limite,
interior, comprimento, rea e volume de objetos.
Operadores binrios: fornecem, por exemplo, distncia e direo.
Funes de agregao: operam sobre conjuntos de objetos, como as
funes de mnimo e mdia.
Os relacionamentos topolgicos so baseados na matriz de 9-
intersees. (ver seo 2.9). Podemos citar como exemplo: overlap
(sobreposio), inside (dentro) e cover (cobertura).
A sub-linguagem de apresentao, chamada Graphical Presentation
Language (GPL), baseia-se em um trabalho anterior (Egenhofer e Frank,
1988) e especifica como o resultado de uma consulta pode ser visualizado
e manipulado em um ambiente grfico. GPL permite ao usurio definir
as caractersticas do ambiente grfico, fornecendo operaes e
relacionamentos espaciais. Possui ainda mtodos para referenciar objetos,
apresentados na tela, atravs de apontamento.
Uma seqncia de comandos escritos em Spatial SQL, adaptada de
(Egenhofer, 1994), mostrada abaixo. Os comandos exibem um mapa de
Grove Street em Orono, com suas construes, limites de terrenos e
rodovias. Para a visualizao, utiliza-se verde para as residncias, azul
para os prdios comerciais e preto para os limites de terrenos. Utiliza-se
tambm os nomes das ruas para identific-las.

200
Linguagens de consulta espacial

Definio do ambiente grfico:


SET LEGEND
COLOR black
PATTERN dashed
FOR SELECT boundary (geometry)
FROM parcel;
SET LEGEND
COLOR green, blue
FOR SELECT residence.geometry, commercial.geometry
FROM residence.type=Residential AND
commercial.type=Commercial;
Identificao da janela de interesse e definio da visualizao:
SET WINDOW
SELECT geometry
FROM road
WHERE town.name = Orono;

SET CONTEXT
FOR road.geometry,
SELECT parcel.geometry, road.name,
building.geometry
FROM road, parcel, building;
Exibio de um novo mapa e recuperao dos dados:
SET MODE new;
SELECT road.geometry
FROM road, town
WHERE town.name = Orono AND
road.name = Gove Street AND
road.geometry INSIDE town.geometry
Este exemplo ilustra vrios pontos interessantes de Spatial SQL. Alm
de oferecer operaes espaciais, Spatial SQL separa as etapas de consulta
e visualizao em etapas menores, permitindo que o usurio reuse um
ambiente em diversas consultas. Porm, a linguagem possui uma sintaxe
complexa, principalmente para os usurios finais de SIGs, alm de supor
a existncia de uma interface grfica capaz de apresentar e manipular
dados em GPL.

201
5. Arquiteturas e Linguagens

5.5.4 SQL/MM Spatial


A especificao da ltima verso de SQL, designada pelo nome de
SQL:1999 (Melton, 2002), divide-se em vrias partes. A SQL/MM (MM
para MultiMedia) compreende extenses para tratar de texto, dados
espaciais e imagem esttica ou em movimento.
A especificao da SQL/MM (ISO, 2000) (Melton e Eisenberg, 2001)
(Stolze, 2003) tambm se desdobra em vrias partes, bastante
independentes entre si. A SQL/MM Spatial define tipos e mtodos para
tratar geometrias no 2. SQL/MM tambm modela sistemas de
referenciamento espacial (SRS). Revises futuras trataro de tipos de
geometrias no 3, ou mesmo em dimenses superiores.
A especificao da SQL/MM Spatial est alinhada com outros esforos
de padronizao para SIGs, notadamente o ISO Technical Committee,
TC 211 (Geomatics) e o OGC - Open Geoscience Consortium. Em
particular, a especificao segue a hierarquia de tipos geomtricos
definidos pelo OGC, discutida na seo 5.6.2.
A especificao do SQL/MM consistentemente usa o prefixo ST
para os nomes de todas as tabelas, tipos, mtodos e funes, para indicar
Spatial and Temporal. De fato, a inteno original da especificao era
adotar um modelo de dados espao-temporal. Porm, durante o
desenvolvimento do SQL/MM, decidiu-se que a componente temporal
transcendia o escopo das aplicaes espaciais e que, portanto, deveria ser
incorporado ao SQL:1999 em separado, formando a sub-linguagem
SQL/Temporal (ISO, 2001). Porm, esta parte do SQL:1999 foi
abandonada, e a proposta de padro, retirada.
A Figura 5.7 mostra a hierarquia de tipos geomtricos de SQL/MM
Spatial, adaptada da hierarquia definida pela OGC, onde os tipos
sombreados no so instanciveis. A hierarquia de tipos geomtricos da
SQL/MM Spatial difere, porm, da hierarquia da OGC em alguns
pontos:
adota ST_LineString em substituio a Line e LinearRing;
oferece arcos circulares e regies cujas fronteiras so arcos
circulares;

202
Linguagens de consulta espacial

omite a indicao de que tipos so agregaes de outros tipos.


Voltando Figura 5.7, no bvio uma geometria do tipo
ST_MultiPoint seja uma agregao de geometrias do tipo
ST_Point.

Figura 5.7 Hierarquia de tipos do SQL/MM Spatial (Stolze, 2003).


A especificao do SQL/MM Spatial agrupa os mtodos
implementando as operaes espaciais em quatro categorias (compare
com a classificao introduzida na seo Seo 5.4.
mtodos convertendo geometrias para formatos de exportao e
vice-versa;
mtodos computando propriedades mtricas de geometrias;
mtodos implementando relacionamentos topolgicos;
mtodos gerando geometrias a partir de outras.
Os tipos possuem ainda mtodos que permitem extrair informaes
bsicas sobre as suas instncias, como as coordenadas de um ponto. Por
exemplo, considere a seguinte tabela:

203
5. Arquiteturas e Linguagens

CREATE TABLE cidade ( nome VARCHAR(30),


populacao INTEGER,
localizacao ST_GEOMETRY )
A consulta abaixo retorna a rea da Cidade de Belo Horizonte:
SELECT localizacao.area
FROM city
WHERE nome = 'Belo Horizonte'
A expresso localizacao.area retorna o valor do atributo area da
instncia do tipo estruturado ST_Geometry armazenada na coluna
localizacao da linha da tabela cidade tal que a coluna nome possui
valor Belo Horizonte.

Figura 5.8 Esquema de metadados da SQL/MM Spatial (Stolze, 2003).


A Parte 3 da especificao do SQL/MM Spatial define um esquema
de metadados, semelhante ao esquema definido para o SF-SQL,
ilustrado no diagrama entidade-relacionamento da Figura 5.8. O
esquema de metadados compreende as seguintes tabelas:
ST_GEOMETRY_COLUMNS, armazena metadados descrevendo
as colunas geomtricas das tabelas do banco de dados (idntica
tabela GEOMETRY_COLUMNS da SF-SQL, definida pela
OGC).
ST_SPATIAL_REFERENCE_SYSTEMS, armazenando dados
sobre cada sistema de referenciamento espacial (SRS) utilizado no
banco de dados (idntica tabela SPATIAL_REF_SYS da SF-
SQL).

204
Direes de pesquisa

ST_UNITS_OF_MEASURE, armazena as unidades de medida


utilizadas no banco de dados.
ST_SIZINGS, semelhante tabela SIZINGS do SQL99, define as
meta-variveis, e seus valores, especficas para a componente
especial do banco de dados.
Por fim, a segunda verso do padro da SQL/MM dever incluir
suporte Geography Markup Language (GML), definida pela OGC, e
suporte a ngulos e direes.

5.6 Direes de pesquisa


5.6.1 Consultas espao-temporais
Como o nome indica, consultas espao-temporais tratam de dados
convencionais, espaciais e temporais. Tais consultas recuperam dados a
respeito do estado, da histria e da evoluo dos objetos ao longo do
tempo. Para exemplificar os dados temporais, utilizaremos o
monitoramento do desmatamento da Amaznia realizado
periodicamente pelo PRODES (Sistema de Deteco de
Desmatamentos) e mostrado em Correia et al. (2005).
Como exemplos dessa evoluo temporal, temos reas que em um
determinado momento eram parte da floresta e algum tempo depois
foram desmatadas. Essas reas podem alterar seu tamanho ou sua forma
em outras observaes. Existe tambm a possibilidade de uma rea
desmatada ser replantada ou sofrer outros tipos de regenerao.
Um banco de dados espao-temporal que modela os dados de
desmatamento poderia conter vrias imagens semelhantes, e os dados
relativos a essas imagens. Aliando esses dados a informaes, como
reservas indgenas ou hidrografia, pode-se pensar em consultas que
incluem a dimenso espacial como:
a) Quais so as reas de reservas indgenas prximas a reas desmatadas?
b) Quais so as reas de preservao de hidrografia que possuem
desmatamentos?

205
5. Arquiteturas e Linguagens

Quando inclumos a dimenso temporal e buscamos combin-la com


a dimenso espacial, as consultas se tornam mais complexas. Podemos
pensar em consultas que tratem a evoluo ao longo do tempo dos
objetos envolvidos, como:
a) Quais so as reas desmatadas no perodo de 01-01-1990 a 31-12-
1999 e posteriormente recuperadas?
b) Quais so as reas desmatadas no ltimo bimestre que ficam a menos
de 50 Km de distncia de estradas ou rios?
Na primeira consulta nos deparamos com o desafio de definir as reas
que eram florestas e foram desmatadas na dcada de 90. Dentro dessas
reas, procuramos quais evoluram e deixaram de ser reas desmatadas.
Na segunda consulta tambm nos deparamos com outro desafio, o de
definir quais reas foram desmatadas e como essas reas se relacionam
com estradas e rios prximos.
Essas duas consultas ilustram questes complexas de serem
modeladas pelas linguagens disponveis, e mostram que as linguagens de
consulta espao-temporais ainda tm muitos desafios a superar.
5.6.2 lgebra para objetos mveis
Uma lgebra para objetos mveis, ou seja, objetos que se movem
continuamente ao longo do tempo, apresentada em Gting et al (2003).
Essa lgebra foi implementada no ambiente SECONDO, um SGBD
extensvel e modular, que permite a utilizao de diversas lgebras
(Guting et al., 2004).

Figura 5.4 Exemplos de representaes de mpoint e mregion (Fonte:


adaptada de Guting et al., 2004 ).

206
Direes de pesquisa

Dois tipos bsicos de objetos mveis so (ver Figura 5.4):


moving point (mpoint): descreve um objeto cuja relevncia est nas
posies ocupadas no espao ao longo do tempo. Um exemplo de
um mpoint o deslocamento de um veculo.
moving region (mregion): descreve uma rea que possui extenso e
se modifica, por exemplo, crescendo ou se movimentando. Um
exemplo pode ser o movimento de uma tempestade.
Operaes podem ser definidas envolvendo tipos convencionais e os
tipos bsicos de objetos mveis. Por exemplo, temos:
intersection: mpoint mregion mpoint
retorna um mpoint formado pela parte de um mpoint que estiver
dentro de uma mregion.
trajectory: mpoint line
projeta um mpoint no plano, retornando uma line, definida como
uma curva em espao bidimensional.
deftime: mpoint periods
retorna um intervalo de tempo, do tipo periods, definido por
determinado mpoint.
Por fim, considere as seguintes tabelas:
flights (id:string,from:string,to:string,route:mpoint)

weather (id:string,kind:string,area:mregion)

Exemplos de consultas sobre estas tabelas so:


Q1. Selecione todos os vos partindo de Dsseldorf que percorrem
mais de 5000 Km
SELECT id
FROM flights
WHERE from = DUS AND
length(trajectory(route)) > 5000

Q2. Que horas o vo BA488 atravessou a tempestade de neve de


identificador S16?

207
5. Arquiteturas e Linguagens

SELECT deftime(intersection(f.route,w.area))
FROM flights as f, weather as w
WHERE f.id = BA488 AND w.id = S16

5.7 Leituras suplementares


H inmeros livros-texto sobre bancos de dados e a linguagem SQL.
Recomenda-se, em especial, os textos sobre SQL:1999 (Melton e Simon,
2001) (Melton, 2002). O primeiro trata dos conceitos relacionais bsicos
da linguagem, enquanto que o segundo aborda as extenses objeto-
relacionais, incluindo suporte a consultas espaciais.
Um pouco da histria do desenvolvimento de bancos de dados
espaciais pode ser avaliada atravs de referncias bsicas sobre a rea,
como Gting (1994) e Medeiros (1994). Recomenda-se tambm a leitura
dos livros-texto de Rigaux e Voisard (2001) e Shekhar (2002).
Conforme discutido na seo 5.3, a arquitetura integrada com
extenses espaciais mostra-se promissora. O Oracle Spatial (Murray,
2003), o DB2 Spatial Extender (Adler, 2001) e o PostGIS so exemplos
desta arquitetura, que merecem um estudo detalhado. O documento
descrevendo a arquitetura de referncia do Open Geoscience Consortium
(Percivall, 2003) apresenta uma abordagem para o problema de
interoperabilidade em SIGs, assunto do Captulo 10.
A definio de relacionamentos topolgicos foi extensamente
estudada, incluindo a matriz de 4-intersees e suas variantes (Egenhofer
e Franzosa, 1995), a matriz de 9-Intersees (Egenhofer et al., 1994), a
matriz de 9-Intersees estendida dimensionalmente (Paiva, 1998) e o
trabalho de Clementini et al. (1993) adotado pela SF-SQL e SQL/MM
Spatial.
Quanto a linguagens de consulta espacial, Stolze (2003) apresenta
uma anlise sucinta, porm criteriosa, do padro SQL/MM Spatial.
Alm dos tpicos abordados acima, h linguagens de consulta
endereando outros tipos de dados geogrficos, ou ambientes com
necessidades especficas. Como exemplo, podemos citar linguagens de
consulta para redes georeferenciadas, como a rede de distribuio de gua
de uma cidade, onde a noo de espao Euclidiano no adequada

208
Leituras suplementares

(Papadias et al., 2003). H tambm toda uma linha de pesquisa sobre


consultas dependentes de localizao em ambientes para computao
mvel (Ayse et al., 2001) (Zhang et al., 2003) (Manical et al., 2004).

209
5. Arquiteturas e Linguagens

Referncias
ADLER, D.W. DB2 Spatial Extender - Spatial data within the RDBMS. 27th
International Conference on Very Large Data Bases, 2001. Morgan
Kaufmann Publishers Inc. p. 687-690
AYSE, Y.; DUNHAM, H. M.; KUMAR, V. M. Location dependent query
processing. In: 2nd ACM international workshop on Data engineering for
wireless and mobile access. Santa Barbara, CA, USA, 2001. p. 47-53.
BRINKHOFF, T.; HORN, H.; KRIEGEL, H.-P.; SCHNEIDER, H. A
Storage and Access Architecture for Efficient Query Processing in Spatial
Database Systems. In: Third International Symposium on Advances in
Spatial Databases. Lecture Notes In Computer Science 692. Springer-
Verlag London, UK, 1993. p. 357-376.
CMARA, G.; SOUZA, R.; PEDROSA, B.; VINHAS, L.; MONTEIRO, A.
M.; PAIVA, J.; CARVALHO, M. T.; GATTASS, M. TerraLib: Technology
in Support of GIS Innovation. In: II Brazilian Symposium on
Geoinformatics, GeoInfo2000. So Paulo, 2000. p.
CLEMENTINI, E.; DI FELICE, P.; VAN OOSTEROM, P., 1993. A Small
Set of Formal Topological Relationships Suitable for End-User Interaction.
In: ABEL, D.; OOI, B. C., eds., SSD '93: Lecture Notes in Computer
Science, v. 692: New York, NY, Springer-Verlag, p. 277-295.
CORREIA, A. H.; PIROMAL, R. A. S.; QUEIROZ, G. R.; SOUZA, R. C. M.,
2005, Modelagem de um banco de dados espao-temporal para
desmatamento e queimadas, XII Simpsio Brasileiro de Sensoriamento
Remoto, Goinia.
EGENHOFER, M. Spatial SQL: A Query and Presentation Language. IEEE
Transactions on Knowledge and Data Engineering, v. 6, n.1, p. 86-95,
1994.
EGENHOFER, M.; FRANK, A. Towards a Spatial Query Language: User
Interface Considerations. In: 14th International Conference on Very Large
Data Bases. Los Angeles, CA, 1988. p. 124-133.
EGENHOFER, M.; P. DI FELICE; CLEMENTINI, E. Topological
Relations between Regions with Holes. International Journal of
Geographical Information Systems, v. 8, n.2, p. 129-144, 1994.
EGENHOFER, M.; FRANZOSA, R. On the Equivalence of Topological
Relations. International Journal of Geographical Information Systems, v.
9, n.2, p. 133-152, 1995.

210
Leituras suplementares

FRANK, A.; MARK, D., 1991. Language Issues for GIS. In: MAGUIRE, D.;
GOODCHILD, M.; RHIND, D., eds., Geographical Information Systems,
Volume 1: Principles: London, Longman, p. 147-163.
GTING, R. An Introduction to Spatial Database Systems. VLDB Journal, v.
3, n.4, p. 357-399, 1994.
GTING, R. H.; BEHR, T.; ALMEIDA, V. T. D.; DING, Z.; HOFFMANN,
F.; SPIEKERMANN, M., 2004, SECONDO: An Extensible DBMS
Architecture and Prototype, Fernuniversitt Hagen.
GTING, R. H.; BOHLEN, M. H.; ERWIG, M.; JENSEN, C. S.;
LORENTZOS, N.; NARDELLI, E.; SCHNEIDER, M.; VIQUEIRA, J. R.
R., 2003. Spatio-temporal Models and Languages: An Approach Based on
Data Types. In: KOUBARAKIS et al. ed., Spatio-Temporal Databases:
Berlin, Springer.
ISO, 2001, Information Technology Database Languages SQL Part 7:
Temporal (SQL/Foundation), International Organization for
Standardization.
MANICAL, H.; CAMARGO, S. M.; CIFERRI, A. D. C.; CIFERRI, R. R.
Processamento de Consultas Espaciais Baseado em Cache Semntico
Dependente de Localizao. In: VI Simpsio Brasileiro de Geoinformtica
GeoInfo 2004. Campos de Jordo, SP, 2004.
MEDEIROS, C. B.; PIRES, F. Databases for GIS. ACM SIGMOD Record, v.
23, n.1, p. 107-115, 1994.
MELTON, J.; SIMON, A. SQL: 1999 Understanding Relational Language
Components. Morgan Kaufmann, 2001.
MELTON, J. Advanced SQL 1999: Understanding Object-Relational, and
Other Advanced Features. New York, NY, USA: Elsevier Science Inc.,
2002.
MELTON, J.; EISENBERG, A. SQL Multimedia and Application Packages
(SQL/MM). SIGMOD Record, 2001.
MURRAY, C., 2003, Oracle Spatial Users Guide and Reference 10g Release
1 (10.1), Redwood City, Oracle Corporation, p. 602.
OGC, ed., 1996, The OpenGIS Guide - Introduction to Interoperable
Geoprocessing. Boston, Open GIS Consortium, Inc.
OGIS, 1995, OpenGIS simple features specification for SQL revision 1.1.
PAIVA, J. A. C. Topological Equivalence and Similarity in Multi-
Representation Geographic Database. University of Maine,1998.

211
5. Arquiteturas e Linguagens

PAPADIAS, D.; ZHANG, J.; MAMOULIS, N.; Y., T. Query Processing in


Spatial Network Databases. In: 29th Very Large Data Base Conference.
Berlin, Germany, 2003.
PERCIVALL, G., 2003, OpenGIS Reference Model, Open Geoscience
Consortium.
RIGAUX, P.; SCHOLL, M.; VOISARD, A. Spatial Databases with
Application to GIS. San Francisco: Morgan Kaufmann, 2002.
SCHNEIDER, M. Spatial data types for database systems. Berlin Hidelberg:
Springer-Verlag, 1997.
SHEKHAR, S.; CHAWLA, S. Spatial Databases: A Tour. New York:
Prentice-Hall, 2002.
STOLZE, K. SQL/MM Spatial: The Standard to Manage Spatial Data in
Relational Database Systems. In: BTW 2003, Datenbanksysteme fr
Business, Technologie und Web. Leipzig, Alemanha, 2003. p. 247-264.
STONEBRAKER, M. Object-relational DBMSs: the next great wave. San
Francisco: Morgan Kaufmann, 1996.
ZHANG, J.; ZHU, M.; PAPADIAS, D.; TAO, Y.; LEE, D. L. Location-based
spatial queries. In: 2003 ACM SIGMOD International Conference on
Management of Data. San Diego, CA, USA, 2003. p. 443-454.

212
6 Mtodos de acesso para dados espaciais

Clodoveu A. Davis Jr.


Gilberto Ribeiro de Queiroz

6.1 Introduo
Este captulo aborda alguns dos mtodos de acesso espacial mais
tradicionais, denominados k-d trees, grid files, quad-trees e R-trees.
Mtodos de acesso espacial, ou ndices espaciais, so estruturas de
dados auxiliares, mas essenciais para o processamento eficiente de
consultas espaciais. De fato, normalmente uma consulta espacial envolve
apenas uma pequena parcela do banco de dados. Neste caso, percorrer
todo o banco pode ser bastante ineficiente. Portanto, um plano de
execuo para a consulta tipicamente comea com uma fase de filtragem,
que identifica quais objetos podem satisfazer a qualificao da consulta.
Esta fase depende da existncia de ndices espaciais, em geral definidos
sobre aproximaes das geometrias dos objetos.

6.2 Preliminares sobre mtodos de acesso


Uma forma comum de indexarmos um conjunto de dados atravs do
uso de rvores de pesquisa. As mais simples e conhecidas so as rvores
binrias, como: AVL, Red Black e Splay Tree (Cormen et al., 1990), que
so rvores balanceadas, ou seja, todos os caminhos desde a raiz at as
folhas possuem o mesmo comprimento. Essas estruturas permitem que
algumas operaes, como a localizao de um elemento, sejam
executadas em tempo logartmico O(log n). A Figura 6.1 ilustra a
representao de uma rvore binria balanceada, onde as cidades esto
organizadas segundo a ordem alfabtica de seus nomes. Esse tipo de
estrutura empregado para uso em memria principal.
6. Mtodos de acesso para dados espaciais

Figura 6.1 rvore binria balanceada.


No caso de grandes bancos de dados onde a memria principal pode
no ser suficiente para armazenar todos os ns da rvore, comum
armazen-la em disco. Nesse caso utilizamos uma representao que
procura minimizar o acesso a disco. A forma mais comum, e mais
largamente empregada pelos sistemas comerciais atuais, a
representao do ndice atravs de uma rvore B+ (Comer, 1979).
Conforme podemos observar na Figura 6.2, essa estrutura tenta
minimizar o nmero de acessos a disco durante o processo de pesquisa
agrupando vrias chaves em um nico n, denominado de pgina.

Figura 6.2 ndice unidimensional B-Tree. Fonte: adaptada de Garcia-Molina


et al., (2001).
Em comum, tanto a rvore binria quanto a B+, so estruturas
unidimensionais, isto , elas pressupem que a chave de pesquisa seja
formada por apenas um atributo ou pela concatenao de vrios
atributos. Em sistemas que trabalham com informaes

214
Preliminares sobre mtodos de acesso

multidimensionais (mais de um atributo), como os sistemas de bancos de


dados espaciais, estas estruturas no so diretamente aplicveis.
Para esses sistemas existe uma classe de mtodos conhecidos como
mtodos de acesso multidimensionais. No caso dos bancos de dados
espaciais, estes mtodos esto ligados ao processamento de consultas
tpicas como: consulta por apontamento (encontrar os objetos que
contm um dado ponto), consultas por regio (encontrar os objetos
dentro de uma janela ou retngulo) e consultas com predicados
topolgicos (encontrar os objetos vizinhos de um determinado objeto).
Uma idia fundamental dos ndices espaciais o uso de aproximaes,
isto , a estrutura do ndice trabalha com representaes mais simples dos
objetos, como o menor retngulo envolvente (REM) do objeto. Dessa
forma, a maneira mais comum de processar as consultas dividir o
processamento em duas etapas: uma de filtragem e outra de refinamento
(Figura 6.3). Na etapa de filtragem so usados mtodos de acesso
espaciais. O principal objetivo do uso destes mtodos o de reduzir e
rapidamente selecionar os possveis candidatos que satisfaam a consulta.
A reduo do espao de busca muito importante, pois a etapa seguinte,
a de refinamento, envolve a aplicao de algoritmos geomtricos
computacionalmente complexos e custosos e que so aplicados
geometria exata dos candidatos selecionados na etapa anterior.

Figura 6.3 Processamento de consultas espaciais. Fonte: adaptada de Gaede e


Gnther (1998).

215
6. Mtodos de acesso para dados espaciais

6.3 k-d Tree


A k-d tree uma rvore binria, ou seja, cada n interno possui dois
descendentes no importando a dimensionalidade k do espao envolvido.
Originalmente, esta rvore apresentada em Bentley (1975), como uma
alternativa a um problema mais genrico do que o geomtrico dos bancos
de dados espaciais: o de busca baseado em vrios atributos.
Em um banco de dados tradicional, uma consulta como: encontrar
todos os empregados nascidos entre 1950 e 1955 que recebem entre
R$3.000,00 e R$5.000,00, poderia ser vista como uma pesquisa em duas
dimenses, considerando cada atributo, neste caso data de nascimento e
salrio, como uma das componentes do espao (Figura 6.4a). No caso
dos sistemas de bancos de dados espaciais, essa consulta equivale a
encontrar todos os pontos no interior do retngulo definido pelos
intervalos (3000:5000)x(1950:1955) (Figura 6.4b).

Figura 6.4 Busca em dois atributos (a) Interpretao geomtrica da busca (b).
Dada uma chave formada por k atributos (k dimenses), onde ki o
valor da i-sima componente da chave, a idia bsica da k-d tree a
seguinte:
A cada n da rvore associamos uma chave e um discriminador;
O discriminador um valor entre 0 e k-1 que representa a
dimenso ao longo da qual o espao ser subdividido, ou seja, a
componente ki que ser empregada para definio da ordem na
rvore;
Todos os ns do mesmo nvel so associados ao mesmo valor de
discriminador;
O n raiz est associado ao discriminador 0, aos dois descendentes
diretos, discriminador 1, e assim por diante, at o k-simo nvel
que est associado ao discriminador k-1;

216
k-d Tree

A partir do nvel k+1 o ciclo comea se ser repetido, sendo


associado o discriminador 0 a este nvel.
A ordem imposta por essa rvore tal que, dado um n qualquer P
de discriminador j, qualquer n descendente (L) da sub-rvore
esquerda possui um valor de chave cuja componente kj menor do
que a componente kj do n P;
Da mesma forma, qualquer n descendente (R) da sub-rvore
direita possui um valor de chave cuja componente kj maior do
que a componente kj do n P.
Para o caso de pontos no espao bidimensional, como o da Figura 6.5,
a k-d tree ou 2-d tree que corresponde decomposio do espao ao
longo das dimenses x e y, compara os valores da componente x nos
nveis pares da rvore e da componente y nos nveis mpares.

Figura 6.5 Sedes de alguns municpios do Estado de Minas Gerais.


Assim, se adotarmos uma ordem arbitrria de entrada dos pontos
correspondentes s sedes municipais, podemos construir a rvore da
Figura 6.6 da seguinte forma:
Considerando Araguari a primeira cidade a ser inserida na rvore,
esta ocupar a raiz;
Sendo Arapor, a prxima, como ela possui um valor de
coordenada x menor do que a de Araguari, esta inserida
esquerda. Aqui, como a raiz ocupa um nvel par (0), comparamos

217
6. Mtodos de acesso para dados espaciais

os valores da componente x das coordenadas das sedes


municipais.
Nova Ponte possui um valor x maior, e, portanto, inserida
direita.
No caso de Cachoeira Dourada, ela possui um valor de x menor
do que Araguari (comparao em um nvel par), e um valor de y
menor do que Arapor (comparao no nvel mpar 1), e por isso
inserida esquerda desta.
Esse processo realizado at que todas as cidades estejam
armazenadas na rvore.

Figura 6.6 Representao em forma de rvore para as sedes da Figura 6.5.


A partio do espao representada pela k-d tree do exemplo acima
pode ser vista na Figura 6.7.

218
k-d Tree

Figura 6.7 Representao planar para as sedes da Figura 6.5.


Um dos problemas que podemos observar na k-d tree da Figura 6.6
que ela depende da ordem em que os ns so inseridos. No pior caso,
podemos acabar obtendo uma rvore completamente desbalanceada, que
apresenta a mesma profundidade do nmero de elementos inseridos.
Uma forma de contornar este problema adotar um mtodo que otimize
a construo da rvore. Uma forma de construir a rvore mais balanceada
escolher o elemento que ocupa a posio mdia ao longo da
componente em diviso. A Figura 6.8 ilustra uma rvore construda
tomando-se o elemento central em relao componente em cada nvel
da diviso.

Figura 6.8 Representao em rvore (balanceada) para as sedes.


Na Figura 6.9, podemos observar que Itapajipe possui o mesmo
nmero de elementos do lado esquerdo e direito e por isso foi tomada

219
6. Mtodos de acesso para dados espaciais

como o primeiro elemento a ser inserido na rvore da Figura 6.8. Limeira


do Oeste pode ser tomada como elemento mdio entre os elementos
esquerda de Itapajipe quando comparamos ao longo do eixo y.

Figura 6.9 Representao planarpara as sedes da Figura 6.5.


A pesquisa por intervalos na 2-d tree do exemplo anterior pode ser
realizada da seguinte forma:
1. Seja um retngulo de coordenadas inferior esquerda (x1:y1) e
superior direita (x2:y2) contendo o intervalo de pesquisa, partindo
da raiz, temos que verificar:
2. Se o n corrente encontra-se no intervalo ele reportado;
3. Se ele for um n em um nvel par (caso do n raiz):
a. Se a coordenada x1 do retngulo de pesquisa for menor
do que a coordenada x do n, aplicamos
recursivamente os passos a partir do passo 2, sub-rvore
esquerda;
b. Se a coordenada x2 do retngulo de pesquisa for maior
do que a coordenada x, aplicamos recursivamente os
passos a partir do passo 2, sub-rvore direita;
4. Se ele for um n em um nvel mpar:
a. Se a coordenada y1 do retngulo de pesquisa for menor
do que a coordenada y do n, aplicamos
recursivamente os passos a partir do passo 2, sub-rvore
esquerda;

220
Grid File

b. Se a coordenada y2 do retngulo de pesquisa for maior


do que a coordenada y, aplicamos recursivamente os
passos a partir do passo 2, sub-rvore direita;
Na literatura, encontramos diversas variantes dessa estrutura.
Friedman et al. (1977) apresentam uma variante em que os elementos
(registros ou pontos) so armazenados apenas nos ns folha, sendo que
os ns internos contm apenas os valores usados para particionar o
espao. Robinson (1981), combinando a B-Tree, adaptou esta estrutura
para armazenamento em memria secundria, chamando esta nova
estrutura de kdB-Tree.

6.4 Grid File


Uma das tcnicas mais interessantes para facilitar a pesquisa em dados
convencionais o hashing. Este mtodo, chamado tambm de
transformao de chave, consiste em criar uma srie de receptculos
(chamados habitualmente de buckets), que recebero os identificadores
dos itens que se quer pesquisar. Estes buckets so numerados
seqencialmente de 1 a n, e portanto sua implementao mais natural
sob a forma de arranjo (Figura 6.10). Cada identificador que chega, seja
para ser inserido, seja para ser pesquisado, transformado em um
nmero de 1 a n, identificando o bucket correspondente a ele. Ento, s
se precisa inser-lo no bucket (no caso de insero) ou procurar um
elemento com identificador igual que j esteja dentro do bucket. Quanto
maior for o valor de n, menos itens existiro em mdia dentro de cada
bucket, e o resultado da pesquisa ser mais rpido. No entanto, a escolha
do valor de n e da funo de transformao ideal problemtica, pois no
se deseja provocar uma distribuio irregular dos itens pelos buckets. Em
geral, recomenda-se utilizar n primo, e uma funo de transformao
que (1) seja simples de ser computada, e (2) produza uma distribuio
uniforme de sadas entre 1 e n.

221
6. Mtodos de acesso para dados espaciais

1 A Q X

2 S K

3 V O I

4 Z

...

n C N

Figura 6.10 Hashing.


O mtodo de indexao chamado grid file (Nievergelt et al., 1984).
estende o conceito de hashing para duas dimenses. Ou seja, em vez de n
buckets, teremos uma grade regular que cobre todo o espao de pesquisa.
O mtodo foi originalmente concebido para possibilitar pesquisas
convencionais, como no caso do hashing, porm utilizando duas variveis
distintas. No caso geogrfico, natural imaginar quadrados sobre a
superfcie da Terra, que funcionam como os buckets do hashing (Figura
611). A partir de cada elemento da grade (que pode ser modelada na
memria com o uso de uma matriz no lugar do vetor utilizado no
hashing) so organizadas listas lineares contendo os identificadores dos
objetos que esto localizados naquela rea.

222
Grid File

Figura 6.11 Grid File.


Alguns tipos de pesquisas podem ser feitas com muita facilidade
utilizando grid files. Por exemplo, deseja-se saber quais pontos esto a
menos de M metros de um determinado ponto P. Para isto, basta calcular
as coordenadas de dois pontos auxiliares, um deles subtraindo M de
ambas as coordenadas, e no outro somando:
x1 = x P - M
y1 = y P - M
x2 = x P - M
y2 = y P - M
Depois, determina-se qual a linha e a coluna dos quadrados que
contm os pontos x1 e x2. Todos os pontos procurados estaro nos
quadrados compreendidos entre os limites expressos pelas linhas e
colunas encontradas. Naturalmente, deve-se calcular a distncia de cada
ponto encontrado a P, para verificar o atendimento restrio de
distncia, pois a pesquisa na realidade foi feita usando um quadriltero, e
no com um crculo.

223
6. Mtodos de acesso para dados espaciais

(x2, y2)

M
P

(x1, y1)

Figura 6.12 Localizao de pontos por proximidade.


A principal limitao deste mtodo, superada pelos mtodos que sero
apresentados a seguir, o fato de somente poder lidar com pontos, ou
com objetos que caibam inteiramente em um quadrado. No um
mtodo adequado para lidar com linhas ou polgonos, mas bastante
eficiente e simples de implementar para o tratamento de dados puntuais.

6.5 Quad-tree
A quad-tree um tipo de estrutura de dados organizada em rvore, em
que cada n ou tronco gera sempre (e exatamente) quatro folhas,
como mostrado na Figura 6.13 (Samet, 1984). O SIG, utilizando esta
estrutura de dados para realizar a indexao espacial, considerar que
cada n corresponder a uma regio quadrada do espao. Esta regio ser
subdividida, novamente em quatro partes, gerando mais um nvel na
rvore, e assim sucessivamente, at que se chegue a ter um ou nenhum
objeto geogrfico dentro dos quadrados resultantes da subdiviso.

224
Tiling

1
A
1 2 3 4
B
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
C

Figura 6.13 Quad-tree.


Na Figura 6.13 existem trs nveis (A, B e C) na quad-tree. A cada um
deste nveis corresponder um quadrado geogrfico, conforme
apresentado na Figura 6.14.
C1 C2 C3 C4
B1 B2
C5 C6 C7 C8

A1
C9 C10 C11 C12
B3 B4
C13 C14 C15 C16

Figura 6.14 Subdiviso do espao por uma quad-tree.


Esta subdiviso poder continuar indefinidamente, de forma
recursiva: basta considerar um quadrado do nvel C como sendo o
quadrado A1, e reaplicar o processo. Observe-se que o resultado final ser
uma rvore que ter um nmero varivel de nveis, de acordo com a
regio geogrfica: regies mais densas formaro mais nveis, e regies
menos densas tero menos nveis.
O processamento de consultas por regio (janela ou retngulo) nessa
estrutura inicia-se a partir da raiz, selecionando apenas as ramificaes
cujos quadrados estiverem em contato com o retngulo da regio. Se
nenhuma estiver, todas as ramificaes abaixo daquele n so
descartadas. Se alguma estiver, toda a ramificao abaixo daquele ponto
selecionada, e sucessivamente testada, at que se alcance os objetos
geogrficos.

6.6 Tiling
Este processo semelhante ao anterior, com a diferena de que as
subdivises no prosseguem indefinidamente.

225
6. Mtodos de acesso para dados espaciais

O processo consiste em, conhecendo-se a priori os limites geogrficos


da base de dados, criar camadas de tiles, ou ladrilhos, quadrados, de
dimenses fixas. O nmero de camadas e a largura dos ladrilhos de cada
camada so determinados pelo usurio, de modo a corresponder da
melhor maneira possvel variedade de dimenses dos objetos
geogrficos que sero encontrados na base de dados. O nmero total de
ladrilhos endereveis limitado pelo sistema, para melhorar sua
performance.
Cada objeto ser associado a um ladrilho, que ser o menor ladrilho
que contiver inteiramente o objeto. Assim, a cada ladrilho, de cada
camada, sero associados diversos objetos, formando uma lista. No
momento do display, testa-se os limites da janela de visualizao contra a
lista de ladrilhos, selecionando aqueles que tenham pelo menos uma
extremidade contida no retngulo. Os objetos associados a cada um
destes ladrilhos sero, ento, recuperados na base de dados para
apresentao.
Com estes limites previamente calculados, evita-se percorrer
freqentemente uma estrutura de dados como a quad-tree, que
geralmente tem que ser mantida em disco.
A Figura 615 ilustra a estrutura bsica do tiling.

Camada 0: toda a base de


dados

Camada 1: largura 10000

Camada 2: largura 5000

Camada 3: largura 1000

Figura 6.15 Tiling.

226
R-tree

6.7 R-tree
A R-tree, ou rvore-R, uma estrutura de dados hierrquica derivada da
rvore-B. As diferenas esto centradas na natureza das chaves: valores
numricos ou alfanumricos simples, no caso das rvores-B, e pontos
extremos de retngulos, no caso das rvores-R (Guttman, 1984).
O que a rvore-R busca organizar no exatamente o contorno ou a
forma grfica do objeto, e sim o seu retngulo envolvente mnimo
(minimum bounding rectangle, MBR). Este retngulo formado a partir
da observao dos limites geomtricos mnimo e mximo do contorno do
objeto, e expresso pelas coordenadas dos seus pontos inferior esquerdo e
superior direito (Figura 6.16). No caso de objetos puntuais, estes
extremos vo coincidir com as coordenadas do prprio objeto (portanto
formando um retngulo nulo), mas isto no compromete o mtodo.

Figura 6.16 Objeto poligonal e seu retngulo envolvente mnimo.


A rvore-R possui parmetros para determinar a quantidade de chaves
(retngulos) que podero ocorrer em cada bloco de armazenamento,
analogamente rvore-B, em funo do tamanho da pgina de
armazenamento em disco.
As regras bsicas para formao de uma rvore-R so semelhantes s
da rvore-B. Todas as folhas aparecem sempre no mesmo nvel da rvore.
Ns internos contm a delimitao de retngulos que englobam todos os
retngulos dos ns nos nveis inferiores (Figura 6.17). Uma rvore-R de
ordem (m, M) conter entre m e M entradas em cada n da rvore (m <
M / 2), exceto a raiz, que ter pelo menos dois ns (a menos que a rvore
s tenha uma entrada).

227
6. Mtodos de acesso para dados espaciais

Um problema com as rvores-R que a ordem de insero dos objetos


interfere na forma final da rvore, e portanto vai interferir tambm com o
resultado das operaes de subdiviso dos ns para manter o
balanceamento. Existem algumas tcnicas para tentar otimizar este
comportamento da rvore-R, mas sempre com algum custo adicional em
termos de processamento.
R1 R2

R3 R4 R5 R6

A I E J B C D H F G

R1 R5

R3 I R2
C
Q D
A
H F
G
R6

E J

R4

Figura 6.17 rvore-R e retngulos correspondentes.


Pesquisas na rvore-R so relativamente simples de serem executadas.
O nico problema que um grande nmero de ns pode ter que ser
examinado, pois um retngulo pode estar contido em vrios outros,
mesmo que o objeto esteja contido em apenas um n folha. Por exemplo,
na Figura 6.17 a identificao do retngulo que contm o ponto Q dever
varrer a rvore nvel a nvel. Inicialmente, inspecionamos a raiz e
constatamos que Q pode estar tanto em R1 quanto em R2, e portanto

228
Leituras suplementares

devemos prosseguir a pesquisa em ambas as direes no segundo nvel.


Pesquisando os filhos de R1, verificamos que Q s pode estar contido em
R3. Continuando a pesquisa, no chegamos a concluso alguma, uma
vez que Q est dentro do retngulo D, que tem apenas uma parte dentro
de R3, e no acessado por ele. Continuando a pesquisa a partir de R2,
verificamos que Q somente poderia estar dentro de R5. Pesquisando R5,
encontramos D, o nico MBR que contm Q efetivamente. Observe-se,
no entanto, que Q pode no estar dentro do objeto cujo MBR D: esta
constatao depende ainda de um teste adicional, que verificar se o
ponto pertence ao polgono do objeto, agora sim levando em
considerao a geometria deste.
Existem diversas variaes das rvores-R, cada uma tentando
aperfeioar um aspecto diferente. No entanto, muitas vezes estas
variaes introduzem desvantagens, ou uma maior complexidade de
implementao, fazendo com que a rvore-R original acabe sendo a
opo mais usual.

6.8 Leituras suplementares


Uma fonte importante de leitura complementar so os trabalhos de
Gaede e Gnther (1998) e, mais recentemente, Vitter (2001), que
apresentam uma reviso detalhada da maioria dos ndices existentes.
H inmeras variantes de R-trees, sendo a R*-tree a mais popular
(Beckmann et al., 1990). Uma comparao entre os mtodos de acesso
espacial mais comum pode ser encontrada em (Kriegel et al., 1990).
Por fim, as TV-trees (Lin et al., 1994) e as X-trees (Berchtold et al.,
1996) so exemplos de mtodos de acesso para dados de dimenses
superiores a dois.

229
6. Mtodos de acesso para dados espaciais

Referncias
BECKMANN, N.; KRIEGEL, H. P.; SCHNEIDER, R.; SEEGER, B. The
R*-tree: An Efficient and Robust Access Method for Points and Rectangles.
In: ACM SIGMOD, p. 322-331, 1990.
BENTLEY, J. L. Multidimensional binary search trees used for associative
searching. Communications of the ACM, v. 18, n. 9, p. 509-517, 1975.
BERCHTOLD, S.; KEIM, D. A.; KREIGEL, H.-P. The X-Tree: An Index
Structure for High-Dimensional Data. In Proc. 22nd Int. Conf. on Very
Large Databases (VLDB96), 1996.
COMER, D. The ubiquitous B-Tree. ACM Computing Surveys, v. 11, n. 2, p.
121-137, 1979.
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. Introduction to
algorithms. E.U.A.: McGraw-Hill, 1990.
FRIEDMAN, J. H.; BENTLEY, J. L.; FINKEL, R. A. An algorithm for finding
best matches in logarithmic expected time. ACM Transactions on
Mathematical Software, v. 3, n. 3, p. 209-226, 1977.
GAEDE, V.; GNTHER, O. Multidimensional access methods. ACM
Computing Surveys, v. 30, p. 170-231, 1998.
GARCIA-MOLINA, H.; ULLMAN, J. D.; WIDOM, J. Implementao de
sistemas de bancos de Dados. Rio de Janeiro: Campus, 2001.
GUTTMAN, A. R-Trees: A Dynamic Index Structure for Spatial Searching. In:
Annual Meeting ACM SIGMOD. Boston, MA, 1984. p. 47-57.
KRIEGEL, H.-P.; SCHIWIETZ, M.; SCHNEIDER, R.; SEEGER, B.
Performance comparison of point and spatial access methods. Proceedings
of the first symposium on Design and implementation of large spatial
databases. Santa Barbara, California, United States. p. 89 114, 1990 .
LIN, K.-I.; JAGADISH, H. V.; FALOUTSOS, C. The TV-tree an index
structure for highdimensional data. VLDB Journal: Very Large Data Bases,
v.3, n.4, p.517542, 1994.
NIEVERGELT, J.; HINTERBERGER, H.; SEVCIK, K. The GRID FILE:
An Adaptable, Symmetric Multi-Key File Structure. ACM Transactions on
Database Systems (TODS), v. 9, n.1, p. 38-71, 1984.
ROBINSON, J. T. Physical storage structures: The K-D-B-tree: a search
structure for large multidimensional dynamic indexes. In: 1981 ACM
SIGMOD international conference on Management of data. ACM Press,
Washington, 1981. p.

230
Leituras suplementares

SAMET, H., 1984. The Quadtree and Related Hierarchical Data Structures.
ACM Computing Surveys, v. 16, p. 187-260.
VITTER, J.S. External Memory Algorithms and Data Structures. ACM
Computing Surveys, v.33, n. 2, p. 209-271, 2001.

231
7 Processamento de consultas e gerncia de transaes

Marco Antonio Casanova

7.1 Introduo
Este captulo aborda dois aspectos da implementao de um sistema de
gerncia de bancos de dados geogrficos: processamento de consultas
espaciais e gerncia de transaes. O texto enfatiza as questes que
necessitam solues distintas daquelas empregadas em sistemas
convencionais.
Um dos principais componentes de todo sistema de gerncia de bancos
de dados, o processador de consultas, recebe uma consulta e prepara um
plano de execuo, consistindo de operaes de mais baixo nvel,
implementadas pelo subsistema de armazenamento. A parte do plano
responsvel pelo processamento dos objetos geogrficos tipicamente comea
com uma fase de filtragem, que identifica quais objetos podem satisfazer a
qualificao da consulta. Esta fase pode utilizar ndices espaciais, em geral
definidos sobre aproximaes das geometrias dos objetos. A fase de
refinamento do plano recupera para memria principal a geometria exata
dos objetos identificados na fase anterior, computando quais deles de fato
satisfazem a qualificao da consulta. A fase final do plano aplica
transformaes aos objetos retornados na fase anterior, produzindo a
resposta final da consulta.
Um segundo componente importante de todo sistema de gerncia de
banco de dados implementa a noo de transao atmica, tipicamente de
curta durao. No caso de sistemas de informao geogrfica, a interao
com o banco de dados comumente mais longa exigindo uma reviso dos
mecanismos de controle de transaes, principalmente a criao de
7. Processamento de consultas e gerncia de transaes

mecanismos para versionamento, atualizao cooperativa e bloqueio parcial


de objetos.
Referncias para problemas especficos sobre processamento de consultas
e gerncia de transaes encontram-se ao longo do texto e sugestes para
leitura adicional, ao final do captulo.

7.2 Estratgia para processamento centralizado de consultas


Um dos principais componentes de todo sistema de gerncia de bancos de
dados o processador de consultas que, ao receber uma consulta Q, prepara
um plano de execuo para Q consistindo de operaes de mais baixo nvel,
implementadas pelo subsistema de armazenamento.
O principal componente do processador de consultas, por sua vez, um
otimizador capaz de gerar planos alternativos para execuo de consultas,
estimar o custo de cada plano e escolher o de menor custo estimado. O
otimizador incorpora heursticas que limitam o espao de busca, evitando
uma exploso combinatorial de planos alternativos. Seguindo (Brinkhoff et
al., 1993), a parte do plano responsvel pelo processamento da componente
espacial de uma consulta contm trs fases (ver Figura 7.1):
Fase 1: Filtragem
Um banco de dados geogrfico normalmente contm estruturas de dados
auxiliares, chamadas de ndices espaciais, estruturas de indexao espacial ou
simplesmente ndices, que facilitam a localizao dos dados cuja
componente espacial satisfaz qualificao de uma consulta. Reservamos o
termo mtodo de indexao espacial para designar uma famlia de estruturas
de indexao espacial. De fato, diversos mtodos de indexao espacial
foram discutidos no Captulo 6.
O desempenho deste passo depende da distribuio espacial dos dados e
da forma como a estrutura decompe o espao, sendo que em geral baixo o
fator de seletividade. Dada a complexidade da componente espacial e da
semntica dos prprios operadores espaciais, em geral os ndices trabalham
apenas com aproximaes das componentes espaciais (por exemplo, o
retngulo mnimo envolvente). Assim, o uso de ndices para resolver a parte
espacial de uma consulta apenas filtra, dos conjuntos de dados armazenados
no banco de dados, aqueles que certamente no satisfazem qualificao da
consulta, sendo necessrio um segundo passo.

234
Estratgia para processamento centralizado de consultas

Consulta espacial

ndice
espacial

Candidatos

Filtro
geomtrico

acertos falsos acertos candidatos

Componente responsvel pelo


acesso geometria exata

Componente responsvel pelo


processamento da geometria exata

falsos acertos

IDs das respostas Geometrias das respostas

Figura 7.1 Processamento de consultas espaciais (Kriegel et al., 1993).

235
7. Processamento de consultas e gerncia de transaes

Fase 2: Refinamento
Uma vez identificados os dados que se candidatam a satisfazer a
qualificao da consulta, as geometrias exatas das componentes espaciais
dos dados so trazidas para memria principal. sobre estas geometrias
que so ento executados os operadores espaciais especificados na
qualificao. As estruturas de armazenamento e indexao devem
preferencialmente permitir que seja trazida para memria principal
apenas a parte das componentes espaciais necessria execuo dos
operadores.
O desempenho deste passo depende da quantidade de dados
recuperados, da sua complexidade e do custo dos operadores a aplicar,
que em geral elevado.

Fase 3: Ps-Processamento
Depois de identificados os dados que satisfazem qualificao da
consulta, usualmente necessrio pass-los para as camadas superiores
da arquitetura onde sofrero processamento posterior ou sero
visualizados. Assim, o sistema deve oferecer um mecanismo eficiente
para passar a geometria das componentes espaciais dos dados, na sua
totalidade ou em parte, para as camadas superiores.
Cabe ao subsistema de armazenamento implementar os mtodos de
armazenamento, que governam a utilizao das pginas fsicas em
memria secundria, onde residem tanto as componentes espaciais dos
dados quanto os prprios ndices espaciais.
Este subsistema deve equacionar dois problemas:
espao de armazenamento: a representao interna de uma componente
espacial pode necessitar um espao substancial, ocupando mais de
uma pgina fsica;
contigidade fsica: as pginas fsicas de uma mesma componente espacial
ou de componentes contguas no espao devem ser vizinhas em
memria secundria, diminuindo o custo de acesso.
Uma estratgia para resolver estes problemas consiste em armazenar a
geometria exata das componentes espaciais dos dados fora dos ndices,
digamos, em um segmento comum de pginas fsicas. Esta forma de

236
Exemplos de otimizao de consultas

armazenamento leva a ndices mais compactos e no impe limitaes ao


tamanho das componentes, resolvendo assim o problema de espao de
armazenamento. Porm, para enderear o problema de contigidade
fsica, necessrio definir uma estratgia de gerncia para o segmento de
pgina fsicas de tal forma que componentes vizinhas no espao
geogrfico tenham as suas geometrias armazenadas em pginas prximas
e, idealmente, que permita armazenar nas mesmas pginas diferentes
tipos de geometrias.

7.3 Exemplos de otimizao de consultas


Esta seo aborda, por meio de exemplos, o problema de otimizao de
consultas espaciais, luz dos comentrios feitos na Seo 7.2.

7.3.1 Exemplo de processamento de seleo por regio


Considere um banco de dados geogrfico sobre cidades brasileiras
consistindo de apenas um conjunto de geo-objetos, CIDADES. Para
cada cidade (do mundo real), h um objeto em CIDADES, cujos
atributos convencionais correspondem aos dados convencionais da cidade
e cuja localizao dada por um par ordenado indicando a latitude e
longitude da cidade; ou seja, a localizao destes geo-objetos
representada por um ponto em coordenadas geogrficas. No que se
segue, suporemos que estas coordenadas esto armazenadas junto com o
prprio geo-objeto, embora as operaes sobre elas possam se beneficiar
de um ndice espacial sobre CIDADES.
Considere agora a consulta Q, formulada informalmente como:
Q. Selecione o nome e populao de todas as cidades a menos de 50km da
cidade de Belo Horizonte e com mais de 50 mil habitantes.
Esta consulta seria definida atravs do comando:
SELECT d.nome, d.populacao
FROM d Cidade, c Cidade
WHERE c.nome = "Belo Horizonte"
and distance(d,c) < 50
and d.populacao > 50.000
Esta consulta exemplifica uma seleo por regio, definida por um
crculo de raio de 50km, cujo centro est na localizao geogrfica da

237
7. Processamento de consultas e gerncia de transaes

cidade de Belo Horizonte. H essencialmente trs planos de execuo


mais plausveis para esta consulta (entre outros possveis), discutidos a
seguir.
Considere inicialmente o plano de execuo P1:
P11. Determine a posio b de Belo Horizonte;
P12. Determine o conjunto C' de todas as cidades a 50km de b;
P13. Determine o subconjunto C de C' de cidades com mais de 50 mil
habitantes.
As subconsultas P11 e P13 no envolvem nenhum operador espacial e,
portanto, so subconsultas convencionais de Q para este plano. J a
subconsulta P12 envolve o operador de distncia e a nica subconsulta
espacial de Q em P1.
O processamento de P1 comea com a execuo da subconsulta
convencional P11, que retorna a localizao da cidade de Belo Horizonte,
o ponto b.
Suponha que o banco de dados inclua um ndice espacial sobre
CIDADES, que chamaremos de ID-CIDADES, invisvel aos usurios,
que facilite identificar todos os objetos de CIDADES cuja localizao
esteja a uma certa distncia de um dado ponto. Suponha ainda que o
ndice espacial seja impreciso para este caso, no sentido de tambm
retornar objetos que no esto distncia especificada do ponto. Esta
impreciso tpica de mtodos de indexao espacial, e contrasta com os
mtodos de indexao tradicionais, que so precisos.
O processamento da subconsulta P12 segue em trs passos:
P121. Atravs de ID-CIDADES, determine que objetos em CIDADES
podem estar a menos de 50km de b, criando o conjunto I.
P122. Leia da memria secundria para a memria principal a
representao interna dos objetos indicados por I, criando o
conjunto C''.
P123. Determine que elementos de C'' esto de fato a menos de 50km de
b, criando o conjunto C'.
Os elementos de I so apontadores para a localizao em memria
secundria da representao interna de objetos em CIDADES. Alm

238
Exemplos de otimizao de consultas

disto, como supomos que o ndice no exato, I poder apontar para


objetos a mais de 50km de b. J os elementos de C' e C'' so
representaes internas de objetos em CIDADES, armazenadas em
memria principal. Assim, o passo P121 corresponde fase de filtragem
P122 e P123, fase de leitura e refinamento.
O processamento da subconsulta P13 agora simples, bastando extrair
de cada elemento de C' os valores dos atributos de interesse e eliminando
aqueles que no possuem mais de 50 mil habitantes, criando assim o
conjunto C, que a resposta da consulta Q. Os elementos de C sero
pares de valores, correspondendo ao nome e populao de uma cidade.
O processamento de P121, P122, P123 e P3 poder ser concatenado em
pipeline, ou seja, cada elemento identificado em P121 poder ser
imediatamente processado por P122 e filtrado por P123, eventualmente
gerando um par em C, ao ser tratado em P13. Isto evita a criao explcita
dos resultados intermedirios I, C' e C'', levando a uma razovel
economia no processamento global da consulta.
O segundo plano, P2, inverte a ordem de execuo das restries de Q:
P21. Determine a posio b de Belo Horizonte;
P22. Determine o conjunto C' de todas as cidades com mais de 50 mil
habitantes;
P23. Determine o subconjunto C de C' de cidades a 50km de b.
Os elementos de C' sero triplas em memria principal indicando o
nome, populao e localizao de objetos em CIDADES com mais de 50
mil habitantes. O processamento da subconsulta convencional P22 ser
particularmente eficiente se partirmos do pressuposto que o banco de
dados inclui um ndice convencional sobre CIDADES, que chamaremos
de ID-POP, invisvel aos usurios, que permita identificar todos os
objetos de CIDADES cuja populao esteja em uma faixa de valores. Tal
ndice ser provavelmente preciso, no sentido de retornar exatamente o
subconjunto de cidades cuja populao est na faixa de valores dada.
Porm, note que o conjunto C' corresponder a todas as cidades
brasileiras com mais de 50 mil habitantes. Neste caso, a execuo de P22
d-se da seguinte forma:

239
7. Processamento de consultas e gerncia de transaes

P221. Atravs de ID-POP, determine que objetos em CIDADES


possuem populao com mais de 50 mil habitantes, criando o
conjunto J;
P222. Leia da memria secundria para a memria principal a
representao interna dos objetos indicados por J, selecionando seu
nome, populao e localizao e criando o conjunto C'.
O processamento da subconsulta P23 ento simplificado, bastando
selecionar do conjunto C' (suposto j em memria principal) aqueles
elementos que esto de fato a menos de 50km de b, criando o conjunto C.
Novamente, o processamento de P221, P222 e P23 poder ser sincronizado,
evitando a criao de J e C'.
O terceiro plano, P3, constri dois conjuntos independentemente para,
em seguida, computar a sua interseo:
P31. Determine a posio b de Belo Horizonte;
P32. Determine o conjunto C' de todas as cidades com mais de 50 mil
habitantes;
P33. Determine o conjunto C'' de cidades a 50km de b;
P34. Determine a interseo C de C' e C''.
A execuo detalhada deste plano uma combinao da discutida
para os dois planos anteriores.
At este ponto, descrevemos apenas o detalhamento de trs planos
plausveis para execuo da consulta. A estimativa do custo de cada plano
depende essencialmente de estimar o nmero de objetos identificados
pelo ndice ID-CIDADES e pelo ndice ID-POP e est fora do escopo
deste texto. Por exemplo, o plano P1 ser mais vantajoso do que P2 se ID-
CIDADES for razoavelmente eficiente, ou seja, no retornar muitas
cidades que no esto a menos de 50km de Belo Horizonte, e se o
nmero de cidades brasileiras com mais de 50 mil habitantes for muito
grande. Ou seja, se a construo da resposta intermediria registrada no
conjunto I for mais barata do que a registrada no conjunto J.

7.3.2 Exemplo de processamento de juno espacial


Suponha agora que o banco de dados geogrfico contm tambm um
conjunto de geo-objetos, AEROPORTOS, tal que, para cada aeroporto

240
Exemplos de otimizao de consultas

brasileiro, h um objeto em AEROPORTOS cujos atributos


convencionais correspondem aos dados convencionais do aeroporto e
cuja localizao dada novamente pela latitude e longitude do aeroporto.
Suponha ainda que o banco inclua um ndice espacial sobre
AEROPORTOS, chamado ID-AEROPORTOS, que permita identificar
todos os aeroportos cuja localizao esteja a uma certa distncia de um
dado ponto.
Considere a seguinte consulta "Selecione todas as cidades que so
sede de municpios e que so atendidas por aeroportos pavimentados''.
Esta consulta exemplifica uma juno espacial. Para torn-la mais
precisa, suponha que uma cidade atendida por um aeroporto se a
cidade dista menos de 50km do aeroporto. A consulta reformulada seria
ento:
Q. Selecione o nome de cada cidade e o nome de cada aeroporto tais que a
cidade sede de municpio, o aeroporto pavimentado e a cidade dista
menos de 50km do aeroporto.
Novamente h vrios planos de execuo possveis para esta consulta,
sendo os principais discutidos a seguir. Todos os planos, sob certo
aspecto, reduzem o processamento da juno espacial ao processamento
de vrias selees por regio.
Considere o plano P1 inicialmente:
P11. Determine o conjunto R contendo o nome n e localizao l de cada
aeroporto pavimentado;
P12. Inicialize o conjunto C como vazio;
P13. Para cada elemento (n,l)R, faa:
P131. Determine o conjunto dos nomes c de cidades que so sede
de municpio e que esto a menos de 50km de l,
acrescentando o par (c,n) a C.
O processamento de P1 comea com a execuo da subconsulta
convencional P11, que retorna o nome e a localizao de todos os
aeroportos pavimentados. Para cada um destes, executa-se uma seleo
por regio para determinar as sedes dos municpios que esto a menos de
50km do aeroporto. O processamento destas selees segue ento de
acordo com uma das estratgias discutidas no exemplo anterior.

241
7. Processamento de consultas e gerncia de transaes

O segundo plano, P2, simtrico a este, recuperando primeiro o


conjunto de todas as cidades que so sede de municpio para depois
determinar quais aeroportos pavimentados esto a menos de 50km de
cada cidade. Como supusemos que h um ndice espacial sobre o
conjunto de aeroportos, este segundo plano compete com o primeiro. A
determinao de qual dos dois planos mais vantajoso depende de qual
conjunto for menos numeroso: os aeroportos pavimentados ou as cidades
que so sede de municpio.
O terceiro plano, P3, primeiro constri de forma independente dois
conjuntos para, em seguida, computar a sua interseo:
P31. Determine o conjunto R contendo o nome n e localizao l de cada
aeroporto pavimentado;
P32. Determine o conjunto S contendo o nome c e localizao s de cada
sede de municpio;
P33. Determine o conjunto C tal que (c,l) C se e somente se
(n,l)R e (c,s)S e a distncia de l a s menor do que 50km.
O passo P33 esconde uma iterao sobre os elementos de R e sobre os
elementos de S. Em um caso, por exemplo, a cada elemento de R, todos
os elementos de S seriam visitados para determinar quais satisfazem a
condio imposta. Logo, o plano P3 nada mais do que uma
reformulao do plano P1.
possvel, no entanto, implementar outras formas de computar o
passo P33 que tornam o plano P3 diferente dos demais. Discutiremos a
seguir, brevemente, como aplicar o mtodo de varredura do espao para
computar este passo. Intuitivamente, este mtodo consiste em varrer o
espao em uma dada direo processando todos os objetos encontrados.
No caso abaixo, usaremos um meridiano, varrendo o plano em ordem
crescente de valor de longitude:
P331. Ordene inicialmente os elementos de R e S em valor crescente da
longitude das suas localizaes;
P332. Para cada elemento de menor longitude ainda no processado,
faa:
P3321. Suponha que este elemento seja um par (n,l)R (se for um
par (c,s)S, o processamento inteiramente semelhante);

242
Exemplos de otimizao de consultas

P3322. Determine todos os pares (c,s)S tais que a distncia de l a s


menor do que 50km;
P3323. Considere o par (n,l) e todos os pares (c,s) encontrados como
processados.
Novamente a escolha entre os planos depende de uma estimativa do
custo de cada um, discusso que est fora do escopo deste texto.

7.3.3 Exemplo de processamento de superposio de geo-campos


Considere agora que o banco de dados geogrfico contm dois geo-
campos temticos, SOLOS e VEGETAO, indicando os tipos de solo e
de vegetao do Estado de So Paulo. Suponha que os geo-campos
possuam representaes por subdiviso planar. Suponha ainda, por
simplicidade, que as duas representaes utilizem a mesma escala e
projeo de tal forma que seja possvel operar sobre elas sem converso.
Considere agora a consulta Q, formulada como:
Q. Crie um geo-campo temtico com o remanescente de mata atlntica
em latossolo roxo na regio B
onde B uma janela, ou seja, um retngulo definido por um par (ie,sd),
no mesmo sistema de coordenadas cartogrficas das representaes,
indicando o canto inferior esquerdo e superior direito do retngulo. Esta
consulta difere das anteriores por criar um campo temtico a partir de
dois outros armazenados no banco de dados, tendo uma restrio dada
por um retngulo.
Discutiremos a execuo de apenas um plano, P1, para esta consulta:
P11. Utilizando SOLOS, crie o campo temtico SOLOS-B indicando
os tipos de solo em B;
P12. Utilizando VEGETAO, crie o campo temtico
VEGETAO-B indicando os tipos de vegetao em B;
P13. Crie o campo temtico VEGET-REM, resposta da consulta,
aplicando uma variante da operao de superposio de campos a
SOLOS-B e VEGETAO-B;
Ao contrrio dos exemplos anteriores em que a otimizao do plano
dependia da existncia de ndices espaciais, o processamento ser
facilitado aqui se supusermos a existncia de estruturas de

243
7. Processamento de consultas e gerncia de transaes

armazenamento eficientes para as representaes que facilitem recuperar


as parcelas das representaes que cobrem o retngulo B. Suponha ento
que as representaes envolvidas sejam armazenadas em estruturas que
permitam trazer para memria principal apenas as pginas que contm
os dados de vegetao ou solos na regio B ou, pelo menos, em uma
regio B' que cubra B e seja significativamente menor do que a regio
abrangida pelas representaes.
Em uma implementao mais simples, o subsistema de
armazenamento recuperar as pginas apropriadas, filtrando-as se
necessrio, e materializar as representaes vetoriais dos campos
SOLOS-B e VEGETAO-B. Sobre estes campos intermedirios, o
processador de consultas aplicar ento a operao de superposio de
representaes apropriada para criar o campo temtico VEGET-REM,
resposta da consulta.
J em uma implementao mais sofisticada, o subsistema de
armazenamento tratar os campos SOLOS-B e VEGETAO-B como
vises no materializadas dos campos originais. Mais explicitamente,
quando o processador de consultas executar a operao de superposio
de representaes, o subsistema de armazenamento recuperar, para
memria principal, as pginas contendo os dados de vegetao ou solos
medida que se tornem necessrias para a operao, sendo de fato criada
apenas a representao do campo temtico VEGET-REM.

7.4 Computao de operaes bsicas


Conforme discutido brevemente na Seo 7.2, dada uma consulta Q, o
processador de consultas responsvel por preparar um plano de
execuo para Q, consistindo de operaes de mais baixo nvel,
implementadas pelo subsistema de armazenamento.
Esta seo aborda ento implementaes alternativas para duas das
principais operaes que um subsistema de armazenamento deve
oferecer, que correspondem diretamente seleo e juno espaciais.
As implementaes dependem da utilizao ou no de ndices espaciais
e, conseqentemente, exibem desempenho bastante diferenciado.

244
Computao de operaes bsicas

7.4.1 Computao de selees espaciais


Uma seleo espacial uma expresso da forma [B(x)], onde B(x),
chamado de predicado de seleo, uma expresso booleana com apenas
uma varivel livre, x, tal que B(x) envolve operaes espaciais. Dado um
conjunto S de geo-objetos, [B(x)](S)=S se e somente se S o conjunto
de todos os objetos sS tais que B(s) verdadeira.
Um exemplo de seleo espacial a expresso
[distancia(x,p)<100], onde x a varivel livre e p uma constante
do tipo ponto.
Seja S um conjunto de geo-objetos no que se segue. Usaremos r.e.m.
para abreviar o termo retngulo envolvente mnimo.
A estratgia mais simples para computar [B(x)](S), denominada
seleo por pesquisa exaustiva, apresentada em pseudo-cdigo na Figura
7.2. Consiste em trazer a representao geomtrica de cada objeto sS
para memria principal e testar se B(s) verdadeira. Possui custo
proporcional cardinalidade de S, se os objetos de S no estiverem
agrupados em memria secundria, ou proporcional ao nmero de
pginas ocupadas por S, em caso contrrio. Esta estratgia adotada
quando no h ndices para S, ou quando a cardinalidade de S
suficientemente pequena para no justificar estratgias mais sofisticadas.

SELEO_POR_PESQUISA_EXAUSTIVA(S,B;R)
S - conjunto de geo-objetos
B - expresso booleana envolvendo comparaes
espaciais com apenas uma varivel livre x
R - subconjunto de S dos objetos satisfazendo B
Inicio
R =
Para cada s em S faa
Inicio Recupere s para memria principal
Se s satisfaz B, acrescente s a R
Fim
Fim
Figura 7.2 Seleo por pesquisa exaustiva.

245
7. Processamento de consultas e gerncia de transaes

Conforme discutido no Captulo 6, quando a cardinalidade esperada


de S suficientemente grande e a freqncia de acesso a S alta,
costuma-se definir um ndice para acelerar o acesso aos objetos de S.
A estratgia para computar [B(x)](S), denominada seleo por ndice,
apresentada em pseudo-cdigo na Figura 7.3 e possui duas etapas. A
etapa de filtragem utiliza um ndice para selecionar parte dos objetos de S,
criando um conjunto P de apontadores para objetos em S. A etapa de
refinamento recupera para memria principal a representao geomtrica
de cada objeto s apontado por P, acrescentando s resposta, se B(s) for
verdadeira.

SELEO_POR_INDICE(S,B,I,C;R)
S - conjunto de geo-objetos
B - predicado de seleo
I - ndice sobre S
C - expresso booleana envolvendo comparaes
espaciais com apenas uma varivel livre
que pode ser resolvida por I
R - conjunto dos objetos de S que satisfazem B
Inicio
R, P =
FILTRO(I,C;P) % Etapa 1: Filtragem
Para cada p em P faa % Etapa 2: Refinamento
Inicio
Recupere o objeto s de S apontado por p
Se s satisfizer B, acrescente s a R
Fim
Fim
FILTRO(I,C;P)
Inicio
P =
Acrescente a P todos os apontadores para
objetos de S que satisfazem C, usando I
Fim

Figura 7.3 Seleo por ndice.


Normalmente, o ndice no resolve B diretamente, mas uma outra
expresso booleana C, tambm com uma varivel livre, tal que:
(1) para todo geo-objeto s, se C(s) = falso ento B(s) = falso

246
Computao de operaes bsicas

Assim, se um geo-objeto s no selecionado pelo ndice (ou seja, C(s)


falso), ento s no pertence resposta da seleo (ou seja, B(s) tambm
falso). Porm, o ndice pode selecionar um objeto s que no pertence
resposta (ou seja, pode existir um geo-objeto s tal que C(s)B(s)).
O resto desta seo refina a funo auxiliar FILTRO para rvores-R.
Dados dois inteiros m>1 e n>1, recorde que uma rvore-R de ordem
(m,n) para S uma rvore de busca balanceada tal que (veja exemplo na
Figura 7.4):
todas as folhas esto no mesmo nvel;
cada folha contm entre n/2 e n entradas;
cada n interior contm entre m/2 e m filhos, exceto a raiz, que
contm entre 2 e m filhos;
para cada objeto sS, existe uma (nica) entrada em uma (nica)
folha M, consistindo de um ponteiro para s em conjunto com o
r.e.m. de s; dizemos que s apontado por M;
cada n interior N contm uma entrada para cada filho M de N,
consistindo de um ponteiro para M e o r.e.m. de M, ou seja, o
r.e.m. de todos os retngulos armazenados em M.

1 A
D 2 1 2 3
B
E A B C G H I J
C
G
H F D E F

3 I

Figura 7.4 Exemplo de uma rvore-R.


A computao de [B(x)](S) guiada pelos retngulos armazenados
na rvore-R, dependendo evidentemente da expresso booleana B.
Considere, por exemplo, a computao da seleo
[contem(x,p)](S), onde p uma constante do tipo ponto.

247
7. Processamento de consultas e gerncia de transaes

Voltando Figura 7.4, para determinar quais objetos sS contm p,


proceda da seguinte forma. Observe inicialmente que os retngulos 1 e 3,
armazenados na raiz, contm p; estes retngulos correspondem ao
primeiro e ao segundo filho da raiz. Em seguida, repita o processo
descendo por estes ns. Assim, descendo pelo primeiro filho da raiz,
observe que o retngulo C contm p e acrescente o ponteiro a ele
associado a uma lista temporria L. Descendo pelo terceiro filho da raiz,
observe que nenhum retngulo a armazenado contm p. Como ltimo
passo, recupere para memria principal o objeto s apontado pelo (nico)
ponteiro em L e teste se s de fato contm p; se contiver,
[contem(x,p)](S) ={s}; caso contrrio, [contem(x,p)](S)=.
De forma geral, o uso de rvores-R como ndices coloca um desafio
adicional pois as folhas da rvore armazenam retngulos aproximando a
geometria dos objetos, e no a geometria em si. Alm disto, cada n
interior N contm uma entrada para cada filho M de N, consistindo de
um ponteiro para M e o r.e.m. dos retngulos armazenados em M.
Portanto, para que rvores-R possam ser utilizadas na etapa de
filtragem, devemos definir um segunda expresso booleana C, que
chamaremos de companheira de C, tal que:
(2) para todo geo-objeto s, para todo retngulo r tal que r igual ou
contm o r.e.m. de s, se C(r) = falso ento C(s) = falso
Dizemos que uma expresso booleana C(x), com uma varivel livre x
varrendo geo-objetos, pode ser filtrada por rvores-R se somente se
possvel definir uma expresso booleana companheira para C.
Note que C no a expresso booleana C da Figura 7.3. Porm, de
(1) e (2) podemos deduzir diretamente que
(3) para todo geo-objeto s, para todo retngulo r tal que r igual ou
contm o r.e.m. de s, se C(r) = falso ento B(s) = falso
Ou seja, apesar de trabalhar com retngulos, atravs da noo de
expresso companheira, as arvores-R podem ser utilizadas como filtros.
Freqentemente, C a prpria expresso C. Por exemplo, se tivermos
C(x)=contem(x,k), onde x uma varivel varrendo geo-objetos e k uma
constante espacial, ento C(r)=contem(r,k), para todo retngulo que
contm ou igual ao r.e.m. de x.

248
Computao de operaes bsicas

Porm, isto nem sempre verdade. Tome, por exemplo,


C(x)=toca(x,k), onde x uma varivel varrendo geo-objetos e k uma
constante espacial. Neste caso, C(x) no implica em C(r), para todo
retngulo que contm ou igual ao r.e.m. de x. Por exemplo, teramos
que definir C como:
C(r) = superpe(r,k) toca(r,k)
Em outras situaes, no realmente possvel definir C de tal forma a
tornar rvores-R teis para filtrar C(x). Por exemplo, tomemos C(x) =
disjunto(x,k), onde x uma varivel varrendo geo-objetos e k uma
constante espacial. Para este operador, teramos que definir C como:
C(r) = disjunto(r,k) superpe(r,k)
o que seria intil como filtro.
De posse destas noes, o refinamento da funo auxiliar FILTRO
para rvores-R imediato e mostrado na Figura 7.5. Note que esta
funo continua a receber a expresso booleana C sobre objetos de S, por
compatibilidade com FILTRO, e internamente determina (por um
processo no especificado) a expresso C companheira de C, que supe-
se existir.
O pseudo-cdigo apresentado consiste de um caminhamento em
amplitude na rvore, com o auxlio da varivel Q, eliminando os ns
cujos r.e.m. no satisfazem C, e retornando os apontadores para objetos,
contidos nas folhas, cujos r.e.m.s satisfazem C. Portanto,
consistentemente com a estratgia de seleo por ndice, esta funo no
acessa a geometria dos objetos.
Por fim, simplificadamente, o custo de uma pesquisa por ndice,
utilizando rvores-R, proporcional ao nmero de ns da rvore-R lidos,
somado ao nmero de objetos apontados pela rvore-R cujo retngulo
envolvente satisfaz C. Uma anlise detalhada pode ser encontrada em
(Aboulnaga e Naughton, 2000; Kriegel et al., 1990; Ciferri et al., 1995).

249
7. Processamento de consultas e gerncia de transaes

FILTRO_ARVORE_R(A,C;P)

A - apontador no nulo para raiz de uma rvore-R


sobre um conjunto de geo-objetos S.
Cada n N uma estrutura da forma:
lt(N) lista de entradas;
rem(N) r.e.m. das entradas em lt(N)
Cada entrada E uma estrutura da forma:
N interior:
pt(E) apontador para a raz de uma
sub-rvore de A
rem(E) retngulo envolvente mnimo da
sub-rvore apontada por E
Folha:
pt(E) apontador para um objeto em S
rem(E) retngulo envolvente mnimo
do objeto apontado por E
C - expresso booleana envolvendo comparaes
espaciais com apenas uma varivel livre
que pode ser filtrada por A
P - conjunto de apontadores para objetos de S

Inicio
Determine a expresso C companheira de C
P =
Q = {A}
Enquanto Q faa:
Inicio
Selecione q em Q, removendo-o de Q
Se q for uma folha,
Para cada entrada E em ls(q),
Se C(rem(E)), acrescente pt(E) a P
Seno
Para cada entrada E em ls(q),
Se C(rem(E)), acrescente pt(E) a Q
Fim
Fim
Figura 7.5 Filtro por rvores-R.

250
Computao de operaes bsicas

7.4.2 Computao de junes espaciais


Uma juno espacial uma expresso da forma [J(x,y)], onde J(x,y),
chamado de predicado de juno, uma expresso booleana envolvendo
apenas comparaes espaciais com duas variveis livres x e y. Dados dois
conjuntos S e T de geo-objetos, [J(x,y)](S,T)=R se e somente se R o
conjunto de todos os pares de objetos (s,t)ST tais que J(s,t)
verdadeira.
Um exemplo de juno espacial a expresso
[distancia(x,y)<100], onde x e y so variveis. O predicado de
juno define o conjunto de pares de geo-objetos, x e y, que esto a
menos de 100 e a mais de 50 (metros) um do outro.
Computar [J(x,y)](S,T) mais complexo do que computar junes
no espaciais pois no h uma ordem total entre geo-objetos que preserve
proximidade espacial. Ou seja, no h uma funo que mapeie qualquer
par (S,T) de conjuntos de geo-objetos em uma seqncia Q de geo-
objetos tal que todo objeto em ST ocorre uma nica vez em Q e, para
todo (s,t)ST, se s e t esto espacialmente prximos, ento s e t esto
prximos em Q. Esta caracterstica dos geo-objetos afeta as estratgias
tradicionais para computar juno, tornando-as inaplicveis ou menos
eficientes.
Esta seo discute algumas estratgias para computar juno espacial,
seguindo basicamente (Brinkhoff et al., 1993) (Brinkhoff et al., 1994)
(Gunther et al., 1993) (Patel e DeWitt, 1996).
Considere inicialmente a estratgia de juno por pesquisa exaustiva
para computar [J(x,y)](S,T), apresentada na Figura 7.6. Esta estratgia
consiste em duas iteraes aninhadas varrendo todos os pares de objetos
(s,t) em ST, testando J(s,t) para cada um deles. Ou seja, consiste de
uma pesquisa exaustiva sobre ST, o espao de busca de [J(x,y)](S,T).
Esta estratgia levanta dois problemas bsicos relativos computao
de uma juno espacial. Primeiro, a transferncia dos geo-objetos da
memria secundria para memria principal pode ser uma operao de
alto custo, quando as geometrias dos objetos so extensas. Esta
transferncia pode, de fato, forar a liberao de geo-objetos de T para
permitir a reutilizao de espao na rea de trabalho em memria

251
7. Processamento de consultas e gerncia de transaes

principal. Desta forma, o mesmo objeto em T poder ser transferido


vrias vezes para memria principal. No pior caso, cada objeto em T ser
lido n vezes, onde n a cardinalidade de S. Assim, o prprio
aninhamento das iteraes torna-se ainda mais ineficiente.
Segundo, o teste do predicado de juno pode tambm ser uma
operao de alto custo, principalmente se a geometria dos objetos
consistir de um grande nmero de pontos. O problema agravado pelo
fato de que este teste ser realizado para todos os pares (s,t)ST.

JUNO_POR_PESQUISA_EXAUSTIVA(S,T,J;R)

S,T - conjuntos de objetos espaciais


J - expresso booleana envolvendo comparaes
espaciais com duas variveis livres
R - conjunto de pares de objetos em ST que
satisfazem J

Inicio
R =
Para cada s em S faa
Inicio
Recupere s de memria secundria
para memria principal
Para cada t em T faa
Inicio
Se t no est em memria principal,
recupere t de memria secundria
para memria principal
Se J(s,t),
acrescente (s,t) a R
Fim
Fim
Fim

Figura 7.6 Juno por pesquisa exaustiva.


Uma segunda estratgia para computar [J(x,y)](S,T), chamada de
juno por particionamento e intercalao (Patel e DeWitt, 1996), opera
em duas etapas, filtragem e refinamento, sem recorrer a ndices. De
forma semelhante seleo espacial, assumiremos que a etapa de

252
Computao de operaes bsicas

filtragem aplica-se a um predicado K(x,y) tal que, para todo x, y, se


K(x,y) verdadeiro ento J(x,y) tambm verdadeiro. Alm disto, o
predicado K deve ser tal que:
(4) para todo par (s1,s2) de geo-objetos, com r.e.m.s r1 e r2
respectivamente, se r1 e r2 no se superpem ento K(s1,s2) = falso
O passo inicial da etapa de filtragem cria e armazena em memria
secundria dois conjuntos temporrios, S0 e T0, da seguinte forma. Cada
geo-objeto sS lido para memria principal, gerando um objeto s0S0
da forma s0=(p,r), onde p o identificador de s em memria secundria,
denotado id(s0), e r o r.e.m. de s, denotado rem(s0). O mesmo processo
aplicado a T, gerando T0.
O prximo passo desta etapa determina todos os pares de objetos
(s0,t0)S0T0 tais que rem(s0) e rem(t0) se superpem. Para cada par
(s0,t0) que passar no teste, o par de identificadores (id(s0),id(t0))
acrescentado resposta desta fase.
Se os conjuntos temporrios S0 e T0 puderem ser simultaneamente
trazidos para memria principal, uma tcnica de varredura do plano
(Preparata e Shamos, 1988) poder ser adotada para determinar quais
retngulos se superpem. Por exemplo, um conjunto de retngulos pode
ser varrido em ordem crescente da coordenada do canto inferior
esquerdo, como ilustra a Figura 7.7. Um algoritmo, baseado em uma
tcnica de varredura, para determinar quais pares de retngulos
(r,s)A1A2 se superpem apresentado na Figura 7.8.

r1 r5 r6 X(r6)
r3 X(r5)
X(r1) X(r3)
r4
X(r4)
r4 X(r2)

Ordem de varredura: r1, r4, r2, r5, r3, r6

Figura 7.7 Exemplo de varredura do plano para retngulos.

253
7. Processamento de consultas e gerncia de transaes

VARREDURA_DO_PLANO(A1,A2;B)
A1,A2 - conjuntos de retngulos com lados paralelos
aos eixos x e y;
xe(r) e xd(r) denotam as coord. x
dos vrtices esquerda e direita de r
B - (r,s)A1A2 tal que r e s se sobrepem
Inicio
R =
C = A1 A2
Ordene C crescentemente por xe(r)
Enquanto C faa
Inicio
Seja rC com menor valor de xe(r)
Remova r de C e suponha que rAi
% A(i+1) : soma mdulo 2
Para cada sA(i+1) at que xe(s)>xd(r) faa
% xe(r)xe(s)xd(r): r e s se superpem no eixo x
Se r e s tambm se superpem no eixo y,
acrescente (r,s) a B
Fim
Fim
Figura 7.8 Tcnica de varredura para determinar superposio de
retngulos.

Se os conjuntos no puderem ser trazidos para memria principal,


ento cada conjunto deve ser particionado em p conjuntos no
necessariamente disjuntos S1,...,Sp e T1,...,Tp, respectivamente. Estes
novos conjuntos so tais que Sk e Tk, para k=1,...,p, podem ser
simultaneamente trazidos para memria e, para todo (s0,t0)S0T0 tais
que rem(s0) e rem(t0) se superpem, se s0Sk ento t0Tk.
A criao destas parties segue a seguinte ttica (Patel e DeWitt,
1996):
(a) Ao criar S0 e T0, determine R, o r.e.m. de todos os retngulos em S0
e T0.
(b) Considerando o tamanho da rea de trabalho disponvel em
memria principal e o tamanho de cada elemento em S0 e T0,

254
Computao de operaes bsicas

determine o nmero p de partes em que R deve ser dividido,


criando retngulos R1,...,Rp (ver Figura 7.9).
(c) Os conjuntos S1,...,Sp e T1,...,Tp so criados da seguinte forma:
para cada k[1,p], para cada s0S0,
s0Sk se e somente se rem(s0) e Rk se superpem
para cada k[1,p], para cada t0T0,
t0Tk se e somente se rem(t0) e Rk se superpem
O nmero p de partes em que R deve ser dividido pode ser estimado
da seguinte forma.
Sejam |S0| e |T0| as cardinalidades de S0 e T0, respectivamente. Seja
M o espao disponvel em memria principal e N o tamanho de cada
objeto em S0 e T0. Como necessrio manter Sk e Tk simultaneamente
em memria principal, temos que:
p = (|S0| + |T0|)*N/M
Aps o particionamento, para cada k[1,p], os conjuntos Sk e Tk so
suficientemente pequenos para serem simultaneamente trazidos para
memria principal.
Novamente a tcnica de varredura do plano pode ser adotada para
determinar todos os pares de objetos (sk,tk)SkTk tais que rem(sk) e
rem(tk) se superpem. Para cada par (sk,tk) que passar no teste,
(id(sk),id(tk)) acrescentado resposta desta fase. Isto conclui a etapa de
filtragem. O resultado um conjunto F de pares de identificadores de
objetos em S0T0.

Partio 0 Partio 1

Partio 2 Partio 3

Figura 7.9 Diviso dos conjuntos originais contendo os r.e.m.s.

255
7. Processamento de consultas e gerncia de transaes

A etapa de refinamento procede da seguinte forma. Para evitar acesso


aleatrio aos objetos de S e T, os pares no resultado F da etapa de
filtragem so ordenados tendo como chave a primeira coordenada
seguida da segunda coordenada. Duplicatas so eliminadas neste
processo, gerando o conjunto G. Em seguida, para cada par (d,e)G, o
objeto sS tal que d=id(s) trazido para a rea de trabalho, se j l no
estiver. Para cada par (f,g)G tal que f=d, o objeto tT tal que g=id(t)
tambm trazido para a rea de trabalho. Se J(s,t) for satisfeito, ento o
par (s,t) finalmente adicionado resposta de [J(x,y)](S,T).
Como na seleo espacial, uma outra forma de reduzir o custo de
computar uma juno espacial [J(x,y)](S,T) consiste em utilizar
ndices.
Uma estratgia genrica, denominada juno por ndice, tambm
possui duas etapas, exceto que a estratgia utiliza um ndice para a etapa
de filtragem. A Figura 7.10 apresenta a estratgia em pseudo-cdigo e a
Figura 7.11 ilustra a estratgia esquematicamente.
De acordo com (Brinkhoff et al., 1994), a Etapa 2 a de maior custo,
tanto em termos de acesso a memria secundria para recuperar a
geometria exata dos objetos, quando em termos de tempo de
processamento para computar o predicado de juno.
Note que a estratgia, como apresentada na Figura 7.10, apenas um
framework, que deve ser refinado com implementaes especficas em
cada etapa. Para a etapa de filtragem, por exemplo, (Brinkhoff et al.,
1993; Brinkhoff et al., 1994) usam rvores-R* e (Patel e DeWitt, 1996; Lo
e Ravishankar, 1996) propem uma estrutura baseada em hash. J para a
etapa de refinamento, (Brinkhoff et al., 1994) adota um algoritmo de
varredura do plano, conforme anteriormente apresentado.
O resto desta seo discute o refinamento da etapa de filtragem para o
caso em que os ndices so rvores-R. (Brinkhoff et al., 1993; Brinkhoff et
al., 1994; Gunther et al., 1993).
Seja K(x,y) o predicado a ser filtrado pelas rvores-R. Novamente,
para que rvores-R possam ser utilizadas, devemos definir uma segunda
expresso booleana K, que chamaremos de companheira de K, tal que:

256
Computao de operaes bsicas

(5) para todo par (s1,s2) de geo-objetos, para todo par (r1,r2) de retngulos
tais que ri igual ou contm o r.e.m. de si, para i=1,2,
se K(r1 ,r2) = falso ento K(s1,s2) = falso
O refinamento proposto, apresentado como filtro de juno por rvore-
R na Figura 7.12, consiste de uma dupla pesquisa por amplitude nas
duas rvore-R. A varivel Q contm apenas os pares de retngulos (r1,r2)
tais que K(r1,r2)=verdadeiro. Pela propriedade acima de K e pela
construo das rvores-R, para todo par (s,t)ST, se K(s,t)=verdadeiro,
ento (pt(s),pt(t))P, onde P a resposta devolvida pelo filtro (mas o
converso falso, ou seja, poder existir (s,t)ST tal que K(s,t)=falso e
(pt(s),pt(t))P pelo prprio fato das rvores-R trabalharem com
aproximaes, ou seja, no serem filtros exatos.

JUNO_POR_INDICES(S,T, J,U,V,K;R)

S,T - conjuntos de objetos espaciais


J - expresso booleana envolvendo comparaes
espaciais com duas variveis livres
U,V - ndices sobre S e T, respectivamente
K - expresso booleana envolvendo comparaes
espaciais com duas variveis livres
a ser filtrada por U e V
R - conjunto de pares de objetos em ST
que satisfazem J
Inicio
R =
% Etapa 1: Filtragem por ndice
- Use os ndices espaciais U e V sobre S e T
para computar o conjunto R1 de pares de retngulos, u e
v, tais que K(u,v)
% Etapa 2: Refinamento
- Para cada entrada (u,v) em R2, acesse as geometrias do
par de objetos (s,t) correspondente a (u,v)
- se J(s,t), acrescente (s,t) resposta R
Fim

Figura 7.10 Juno por ndices.

257
7. Processamento de consultas e gerncia de transaes

Conjunto S Conjunto T

Filtragem
por ndice
ndice ndice
espacial espacial
U V

Refinamento
Pares candidatos

Componente responsvel pelo


acesso geometria exata

Componente responsvel pelo


processamento da geometria exata

falsos acertos

IDs das respostas Geometrias das respostas

Figura 7.11 Esquema da juno por ndices. Fonte: adaptado de Kriegel et


al., (1993).

258
Computao de operaes bsicas

FILTRO_DE_JUNCAO_POR_ARVORE_R(A,B,K;P)

A,B- apontadores para as razes de duas rvores-R


sobre conjuntos de geo-objetos S e T
(com a estrutura indicada na Figura 7.5).
Supe-se que A e B no sejam nulos.
K - expresso booleana envolvendo comparaes
espaciais com duas variveis livres
que pode ser filtrada por rvores-R
P - conjunto de pares de apontadores para
objetos de S e T

Inicio
Determine a expresso K companheira de K
P =
Q = {(A,B)}
Enquanto Q faa:
Inicio
Selecione (p,q) em Q, removendo-o de Q
Se p e q forem folhas,
Para cada entrada E em ls(p),
Para cada entrada F em ls(q),
Se K(rem(E),rem(F)),
acrescente (pt(E),pt(F)) a P
Se p for folha e q for n interior,
Para cada entrada F em ls(q),
Se K(rem(p),rem(F)),
acrescente (p,pt(F)) a Q
Se q for folha e p for n interior,
Para cada entrada E em ls(p),
Se K(rem(E),rem(q)),
acrescente (pt(E),q) a Q
Fim
Fim

Figura 7.12 Filtro de juno por rvore-R.

259
7. Processamento de consultas e gerncia de transaes

7.4.3 Computao de superposies de mapas temticos


Um polgono simples se e somente se no h um par de arestas no-
consecutivas compartilhando um ponto. Um polgono simples com furos
um polgono simples ou um par (p,F) onde p um polgono simples e F
um conjunto no vazio de polgonos simples com furos tais que, para
todo qF, q est contido no interior de p e, para todo q, qF, q e q so
disjuntos.

polgono simples polgono simples com furos polgono no-simples

Figura 7.13 Exemplos de polgonos (Kriegel et al., 1992).


Seja o conjunto dos polgonos simples com furos. Um conjunto de
temas qualquer conjunto finito no vazio. Um mapa temtico vetorial
sobre um conjunto de temas T uma funo parcial M:T tal que,
para todo p,qdom(M), p e q so disjuntos. Denotaremos por [T] o
conjunto dos mapas temticos sobre um conjunto de temas T.
Esquemas de armazenamento, em memria secundria, para mapas
temticos vetoriais so variantes dos esquemas de armazenamento de
polgonos onde cada polgono possui um atributo indicando o seu tema.
Desta forma, ndices para conjuntos de polgonos podem ser utilizados
diretamente para indexar os domnios dos mapas temticos.
Sejam T, U e V conjuntos de temas e f: TUV uma funo total. A
superposio de mapas temticos induzida por f a funo
[f]:[T][U][V] definida como [f](M,N)=O se e somente se
dom(O) o conjunto dos polgonos com furos obtidos pela
interseo dois-a-dois de um polgono em dom(M) com um
polgono em dom(N);
O(p)=f(q,r) se e somente se p faz parte da interseo de q e r

260
Gerncia da rea de trabalho

H trs questes que devem ser levadas em considerao na


computao da superposio [f](M,N)=O de dois mapas temticos
vetoriais: (1) M e N so normalmente grandes e, portanto, devem ser
trazidos progressivamente para memria principal; (2) alm da
geometria, necessrio armazenar e recuperar o tema de cada polgono
nos domnios de M e N; (3) a etapa de refinamento deve ser seguida por
um ps-processamento para computar os polgonos no domnio do mapa
resultante O e o valor associado a cada um destes polgonos.
Apesar destas questes, estratgias para computar [f](M,N) podem
ser obtidas modificando-se as estratgias para juno espacial
apresentadas anteriormente, considerando-se como predicado de juno
a superposio de polgonos, e acrescentando-se uma etapa de ps-
processamento como indicado acima. De fato, variantes da estratgia
para computar [f](M,N) denominada particionamento por varredura do
plano (Kriegel et al., 1992) podem ser derivadas da juno por
particionamento e intercalao e da juno por ndice.

7.5 Gerncia da rea de trabalho

7.5.1 Principais questes na gerncia da rea de trabalho


A definio de uma estratgia para gerncia da rea de trabalho em
memria principal suscita algumas questes importantes, discutidas
nesta seo, para que efetivamente contribua para um melhor
desempenho do processador de consultas.
No que segue, usaremos o termo objeto para designar
indistintamente, pginas fsicas, objetos lgicos ou conjuntos destes.
Em primeiro lugar, h a questo do tipo de objeto fsico ou lgico -
que ser mantido na rea de trabalho. Normalmente, os sistema de
gerncia de banco de dados objeto-relacionais trabalham com pginas
fsicas na rea de trabalho, enquanto que os sistemas orientados-a-objeto
estritos podem trabalhar com pginas fsicas, objetos lgicos ou conjuntos
de objetos. Uma estratgia de gerncia da rea de trabalho chamada de
semntica quando trabalha com objetos lgicos ou conjuntos de objetos e
utiliza caractersticas destes objetos ou conjuntos para implementar seus
algoritmos.

261
7. Processamento de consultas e gerncia de transaes

Associada a esta primeira questo, est a deciso de que nvel de


granularidade a estratgia de gerncia adota. A estratgia pode controlar
pginas fsicas ou objetos lgicos individualmente, ou trabalhar com
segmentos fsicos, compostos por pginas fsicas e segmentos semnticos,
compostos por objetos lgicos.
A terceira questo a poltica de substituio dos objetos mantidos na
rea de trabalho. A maioria dos sistemas usa uma variante da estratgia
usualmente chamada LRU Least Recentently Used, que prope
substituir o objeto que est h mais tempo na rea de trabalho. Uma
variante desta estratgia ser discutida na seo seguinte.
Alm destas, h a questo de criar polticas de antecipao que tragam
objetos para a rea de trabalho antes de serem solicitados por uma
consulta. Naturalmente, uma boa poltica de antecipao pode acelerar o
processamento de consultas, mas depende de um bom entrosamento com
o processador de consultas.

7.5.2 rea de trabalho utilizando segmentos semnticos


Esta seo discute as caractersticas bsicas de estratgias para gerncia da
rea de trabalho que a organizem em segmentos lgicos, seguindo (Ren
et al., 2003).
Ao processar uma nova consulta Q, o relacionamento entre o seu
resultado e os segmentos lgicos na rea de trabalho recai nos 4 casos
mostrados na Figura 7.14. No caso 4, o resultado de Q est inteiramente
contido na rea de trabalho e nenhum novo objeto precisa ser trazido de
memria secundria. Porm, informao adicional mantida junto aos
segmentos lgicos poder ser atualizada para refletir o processamento de
Q. Em todos os outros casos, o resultado de Q dever ser, em parte ou na
sua totalidade, adicionado rea de trabalho e, novamente, informao
adicional ser gerada ou atualizada.

262
Gerncia da rea de trabalho

rea de trab. rea de trab.


rea de trab. rea de trab.
consulta
consulta consulta consulta

caso 1 caso 2 caso 3 caso 4

Figura 7.14 Relacionamentos entre o resultado de uma nova consulta e a


rea de trabalho (Ren et al., 2003).
Mais precisamente, suponha que o contedo da rea de trabalho possa
ser representado pelo predicado C e seja R o resultado de uma consulta
Q, com predicado de consulta QP.
A poltica de incluso determina como tratar R em presena de C:
1. (QPC): o resultado de Q deve ser inteiramente includo na
rea de trabalho (Caso 1 da Figura 7.14).
2. (QPC): o resultado de Q dever ser ignorado pois est
inteiramente contido na rea de trabalho (Caso 4 da Figura 7.14).
3. Nenhum dos casos acima: o resultado de Q dever ser
parcialmente includo na rea de trabalho (Casos 2 e 3 da Figura
7.14).
Usualmente, as implementaes da poltica de incluso testam o
resultado de uma consulta contra cada segmento semntico em separado
e tentam chegar a uma concluso.
Suponha que R, o resultado da consulta, se superpe a um segmento
semntico S.
A poltica de colapsamento determina como tratar este tipo de
superposio, escolhendo entre 3 opes:
1. Colapsar totalmente R e S, criando um novo segmento semntico
S1=RS.
2. Colapsar parcialmente R e S, criando dois novos segmentos
semnticos, S1=R e S2=SR.
3. No colapsar R e S, criando trs novos segmentos semnticos,
S1=RS, S2=SR e S3=SR.

263
7. Processamento de consultas e gerncia de transaes

Colapsar totalmente R e S reduz o nmero de segmentos lgicos na


rea de trabalho, o que simplifica a sua gerncia e reduz o tempo de
processamento do critrio de incluso. Por outro lado, esta poltica tende
a criar segmentos lgicos muito grandes, embora s uma parte dos
objetos no segmento seja efetivamente usada. No colapsar R e S produz
o efeito inverso pois tende a gerar segmentos lgicos com uma
granularidade muito fina. Colapsamento parcial normalmente a
melhor escolha pois abre a possibilidade de balancear o tamanho dos
segmento lgicos.
A poltica de substituio determina qual segmento semntico deve ser
removido da rea de trabalho quando o resultado de uma nova consulta
no puder ser acomodado.
Assumindo a poltica de colapsamento parcial, a poltica de
substituio tradicional, LRU, de remover o segmento lgico que est h
mais tempo na rea de trabalho no adequada pois os objetos em um
segmento resultam das respostas de vrias consultas e, portanto, possuem
diferentes tempos de residncia na rea de trabalho. Neste caso, a poltica
LRU pode ser substituda por uma verso mais sofisticada, chamada de
LRU dinmica, ou D-LRU (Ren et al., 2003). Brevemente, seja R
novamente o resultado de uma consulta e S um segmento semntico que
se sobrepe a R. Suponha que S seja decomposto em S1=RS, S2=SR
e S3=SR. A poltica D-LRU mantm a data de S para o segmento S2 e
cria S1 e S3 com a data de execuo de Q. Se a rea de trabalho no pode
acomodar o resultado R da consulta, os segmentos mais antigos so
descartados, como na poltica LRU tradicional, at que haja espao livre
suficiente.
H estratgias mais sofisticadas que utilizam uma noo de distncia
semntica para selecionar o objeto a substituir, como a apresentada em
(Dar et al., 1996).

7.5.3 Exemplo de estratgia de gerncia da rea de trabalho


Esta seo exemplifica o uso dos conceitos apresentados na seo anterior
para construir uma estratgia de gerncia da rea de trabalho que
melhore o desempenho de aplicaes de explorao visual dos dados,

264
Gerncia da rea de trabalho

tpicas de sistemas de informao geogrfico. Esta seo segue


basicamente (Doshi et al., 2003).
Suponha que, na aplicao de explorao visual dos dados, o usurio
interaja diretamente com uma janela de visualizao atravs das operaes
usuais de aproximao, afastamento, deslocamento e enquadramento (zoom-
in, zoom-out, panning, fitting). Estas operaes geram ento consultas aos
dados.
A rea de trabalho armazena segmentos semnticos, definidos por
conjuntos de geo-objetos. Cada segmento semntico est associado ao
r.e.m. dos objetos nele contidos.
O resto desta seo discute, em detalhe, polticas de antecipao de
acesso aos geo-objetos. Em uma aplicao de explorao visual dos
dados, uma poltica de antecipao especialmente interessante por duas
razes: (1) o usurio passa considervel tempo analisando os dados
visualizados, deixando o processador e o disco ociosos; logo, possvel
utilizar o processador e o disco para pr-carregar dados sem afetar a
explorao dos dados; (2) dadas as caractersticas das operaes,
possvel prever qual ser o prximo movimento do usurio.
Em geral, uma poltica de antecipao deve trabalhar gradativamente,
medida que descobre novas caractersticas do comportamento do
usurio ou dos dados acessados. No incio do processo de explorao
visual, pouca ou nenhuma informao est disponvel. Com o tempo,
mais caractersticas do comportamento do usurio ou dos dados
acessados tornam-se evidentes, melhorando a qualidade dos dados
trazidos antecipadamente para a rea de trabalho.
Mais especificamente, para aplicaes de explorao visual dos dados,
assumimos que a poltica de antecipao deve detectar se o usurio: (1)
tende a manter a direo da operao de deslocamento (da janela de
visualizao) ou alter-la; (2) se os dados sob anlise visual possuem
regies de interesse s quais o usurio tende a voltar. Baseadas nestas
suposies, podemos definir as seguintes polticas de antecipao (Doshi
et al., 2003): P1 aleatria; P2 direo de deslocamento; P3 foco do
usurio.

265
7. Processamento de consultas e gerncia de transaes

A poltica de antecipao aleatria, ilustrada na Figura 7.15(a), escolhe


aleatoriamente a direo do deslocamento da janela de visualizao,
dando pesos iguais s quatro possveis direes. Esta poltica
naturalmente se aplica quando no possvel detectar caractersticas
teis no comportamento do usurio ou do acesso aos dados.
A poltica de antecipao baseada na direo de deslocamento,
ilustrada na Figura 7.15(b), semelhante anterior, exceto que d maior
peso a uma direo, se o usurio moveu a janela de visualizao duas
vezes seguidas naquela direo.
J a poltica de antecipao baseada no foco do usurio mais
sofisticada e utiliza indicaes sobre o prximo deslocamento e sobre
regies de interesse do usurio. Uma regio considerada como uma
regio de interesse em uma sesso de trabalho quando o usurio a visita
mais do que k vezes, onde k um parmetro da poltica. Uma regio de
interesse descrita por uma data e um retngulo. Enquanto nenhuma
regio de interesse estiver prxima da janela de visualizao, esta poltica
trabalha de forma semelhante poltica baseada na direo de
deslocamento. Quando alguma regio de interesse torna-se prxima
janela de visualizao, esta poltica antecipa a carga dos objetos na
direo da regio de interesse, e no na direo dos ltimos
deslocamentos. Esta poltica reflete ento a intuio de que o usurio
provavelmente governa a visualizao em direo regio de interesse e
l permanecer por algum tempo.
Por fim, a poltica de substituio combina a estratgia de D_LRU
com a poltica de antecipao. Assim, os segmentos semnticos mais
antigos e fora da direo indicada pela poltica de antecipao devem ser
descartados primeiro, at que seja liberada memria suficiente para
acomodar os novos a serem trazidos para memria principal.

266
Gerncia da rea de trabalho

p = 1/4

p = 1/4 p = 1/4

p = 1/4

movimento movimento previso de


anterior atual movimento

Regies
de
Janela interesse
Corrente

Figura 7.15 Relacionamentos entre o resultado de uma nova consulta e a


rea de trabalho (Ren et al., 2003).

267
7. Processamento de consultas e gerncia de transaes

7.6 Gerncia de transaes

7.6.1 Transaes em bancos de dados geogrficos


Em aplicaes convencionais de banco de dados, um usurio modifica os
dados atravs de uma seqncia de operaes elementares que devem ser
executadas como um todo. As operaes so tipicamente curtas e
envolvem um volume pequeno de dados. Por exemplo, uma transferncia
de fundos implementada atravs de duas atualizaes, em contas
bancrias distintas, que devem ser ambas executadas ou ambas
canceladas, para evitar erros.
Esta situao configura uma transao, ou seja, uma seqncia de
operaes que o sistema de gerncia de banco de dados deve processar at
o fim, ou garantir que o banco de dados no reflita nenhuma delas,
desfazendo aquelas que tenham sido total ou parcialmente executadas.
Alm disto, o sistema deve processar as operaes sem interferncia de
outras transaes e garantir que, se as operaes comeam em um estado
consistente do banco de dados, elas terminam em um estado tambm
consistente. Mecanismos para garantir estas propriedades foram
amplamente investigados no contexto de aplicaes convencionais.
Os usurios de bancos de dados geogrficos tambm executam
transaes desta natureza, principalmente ao modificar os atributos
convencionais de objetos. Porm, eles podem apresentar um padro de
comportamento muito diferente, mais prximo do encontrado em
ambientes de desenvolvimento de software, projeto de circuitos VLSI e
criao de documentos hipermdia, entre outros. Nestes ambientes, uma
equipe de usurios trabalha cooperativamente para produzir uma nova
configurao dos objetos. Cada usurio cria uma parte de um todo em
vrias etapas, possivelmente trabalhando sobre uma situao j existente,
que no pode ser congelada. Alm disto, a equipe pode criar
configuraes alternativas dos objetos, ou seja, modificaes que no
necessariamente sero efetivadas.
O conjunto de modificaes criado pela equipe de usurios configura
uma transao longa e aninhada. Neste contexto, o termo transao
freqentemente utilizado como sinnimo de sesso de trabalho. A

268
Gerncia de transaes

transao longa pois normalmente o trabalho da equipe se desenvolve


por muito tempo, possivelmente semanas. Ela cooperativa porque
envolve modificaes criadas por usurios distintos, de forma
coordenada. Finalmente, a transao pode conter colees completas de
modificaes organizadas em subtransaes aninhadas. Informalmente,
uma transao T contm uma subtransao aninhada T quando um
parte das operaes de T agrupada e tratada como uma transao T de
tal forma que as operaes em T possam ser desfeitas ou refeitas pelo
sistema como um todo, ou tornadas condicionalmente visveis a outros
usurios.
Por exemplo, considere um banco de dados geogrfico contendo
dados sobre topografia, vegetao, reas de preservao ambiental e rede
viria de uma regio. Suponha que uma equipe de dois engenheiros
esteja desenvolvendo o traado de um novo oleoduto, cada um
trabalhando em trechos diferentes e contguos do oleoduto. Este projeto
envolve ento trabalho cooperativo, de longa durao, sobre os objetos no
banco, configurado como uma nica transao longa, contendo duas
subtransaes aninhadas, uma para cada membro da equipe. Este
exemplo ser elaborado de forma um pouco diferente na Seo 7.6.3.

7.6.2 Mecanismos para implementao de transaes


Esta seo discute alguns mecanismos genricos propostos para
implementao de transaes com as caractersticas descritas na seo
anterior, incluindo tratamento de verses. A descrio segue (Dias et al.,
1995) (Soares et al., 1993). Esta seo opcional, podendo o leitor passar
diretamente para a Seo 7.6.3.
Paralelamente aos mecanismos sofisticados para manipulao de
dados, descritos abaixo, o usurio poder ainda manipular diretamente
tais dados, para cobrir casos simples como, por exemplo, atualizao do
valor de um atributo convencional.
Em geral, um ambiente para trabalho cooperativo deve permitir tanto
compartilhamento de conjuntos de dados entre usurios quanto a
definio de conjuntos privativos a um grupo de usurios. Para tanto,
supomos que os dados esto organizados em uma hierarquia de bancos
de dados e que cada dado s pertence a um destes bancos. Se B filho de

269
7. Processamento de consultas e gerncia de transaes

B na hierarquia, dizemos que B um banco subordinado a B. (Note que


a hierarquia possui um nmero arbitrrio de nveis). Cada banco est
associado a um grupo de usurios com permisso para realizar um certo
conjunto de operaes sobre os dados no banco ou em bancos
subordinados a ele. Esta hierarquia de bancos reflete o fato de transaes
conterem outras transaes aninhadas. Assim, um grupo de usurios
poder criar um banco de dados para conter os dados com que ir
trabalhar e, recursivamente, criar outros bancos subordinados a este,
associando-os a transaes aninhadas conduzidas por subgrupos de
usurios.
Ortogonalmente a estes conceitos, consideramos que um dado pode
estar em um de trs estados: pronto, trabalho ou obsoleto
(respectivamente, committed, uncommitted ou obsolete). Um dado d
pode ainda estar associado a um conjunto de outros dados, tratados como
suas verses, e organizados sob forma de uma rvore, onde d a raiz. Esta
rvore mantida de tal forma que, se uma verso est pronta, todos os
seus ancestrais na rvore tambm esto prontos; e, se uma verso
obsoleta, todos os seus descendentes tambm so obsoletos. Os dados so
manipulados atravs do elenco de operaes descritas a seguir.
A operao update permite atualizar um dado em trabalho, sem alterar
o seu estado.
A operao commit transforma em pronto um dado em trabalho.
A operao delete remove um dado d de um banco B. Se d for um
dado em trabalho, ele efetivamente destrudo; se d for um dado pronto,
ele tornado obsoleto. O usurio tambm pode remover um banco B,
provocando a remoo de todos os dados e bancos subordinados a B,
recursivamente. O sistema se encarregar de manter dados obsoletos
apenas enquanto eles forem referenciados por outros dados.
H trs operaes para criao de dados: create cria um dado d
completamente novo em um banco B; create-version cria uma nova
verso d de um dado d pronto ou em trabalho no mesmo banco de dados
B que contm d; check-out cria um novo dado d em B como uma verso
de um dado pronto d existente em B, onde B um banco subordinado a
B. O usurio tambm poder utilizar esta operao para criar em bloco
verses de um conjunto de dados. Note que o usurio no pode mover d

270
Gerncia de transaes

de B para B, mas apenas usar a operao check-out para criar uma verso
d de d em B. Em todos estes trs casos, d considerado um dado em
trabalho aps a sua criao.
A operao check-in permite mover um dado pronto d de um banco
B para o banco B a que B se subordina. O usurio tambm poder
utilizar esta operao para mover em bloco um conjunto de dados de um
banco para outro. H duas variantes desta operao. A primeira delas,
check-in de adio, de fato move d de B para B, exceto se d for uma
verso de um dado d existente em B e d no tiver sido modificado, caso
em que d descartado, evitando assim a criao de uma rplica de d em
B. A segunda, check-in por substituio, move d de B para B, se d for um
novo dado, ou move d de B para B e remove o dado d existente em B
(atravs da operao delete, se d for uma verso de d e d tiver sido
modificado). Esta ltima operao corresponde portanto tradicional
operao de atualizao.
Estas operaes mantm as rvores de verses consistentes atravs de
aes colaterais. Assim, a operao commit aplicada a um dado se
propaga recursivamente para todos os seus ancestrais na rvore,
transformando-os tambm de dados em trabalho para prontos. A
operao delete aplicada a um dado se propaga recursivamente para todos
os seus descendentes na rvore, destruindo-os ou tornando-os obsoletos.
Este efeito pode ser provocado tambm por uma operao de check-in por
substituio ao chamar implicitamente uma operao delete.
Note que as rvores de verses cruzam a hierarquia de bancos de
dados. Portanto, quando um usurio executa uma operao de commit
sobre um dado em um banco B, ele poder afetar um dado que pertence
ao banco a que B se subordina, e assim recursivamente. Assim, o usurio
dever possuir permisso para executar commit tambm sobre dados
nestes outros bancos. Porm, a operao delete no causa problemas. Por
definio, se o usurio possui permisso para aplicar a operao de delete
sobre dados de B, ele tambm possui permisso para aplicar delete a
dados em bancos subordinados a B, recursivamente. A mesma observao
se aplica operao de check-in por substituio. Assim, como efeito
colateral de uma operao sobre um dado d, um usurio poder interferir
com bancos de dados de outros usurios que contm verses de d.

271
7. Processamento de consultas e gerncia de transaes

Para minimizar este problema, podemos lanar mo de mecanismos


de controle de acesso, permitindo o bloqueio de dados em trs modos:
compartilhado, exclusivo e verso-exclusivo. Quando um usurio (ou grupo
de usurios) bloqueia um dado em modo compartilhado, ele indica uma
potencial inteno de substitu-lo por outra verso; em modo exclusivo,
ele probe outros usurios de substitu-lo por outra verso; em modo
verso-exclusivo, ele probe outros usurios de criar verses do dado.
Este recurso se integra s operaes descritas anteriormente. Em uma
operao de check-out que cria um novo dado d em B como uma verso
de um dado d em B; d bloqueado em modo compartilhado para o
usurio que executa a operao. Ao executar um check-in por substituio
sobre d, se d tiver sido modificado, o bloqueio de d escalonado para o
modo exclusivo e os outros usurios que possuam bloqueios
compartilhados sobre d tm seus bloqueios descartados. Isto os impede
de retornar verses de d, forando-os a refazer o check-out, agora sobre d
(dado que substituiu d).
Esta discusso simplificada, pois no explora em detalhe as
referncias cruzadas entre dados, quer seja porque um dado uma
componente de outro, quer seja porque h um relacionamento explcito
entre ambos. Tambm no considera a criao de verses ou o bloqueio
de partes de um conjunto de dados. Esta extenso particularmente
importante pois geo-objetos ou geo-campos freqentemente cobrem
reas geogrficas maiores do que a regio de interesse do usurio. A seo
seguinte apresenta um exemplo de modificao de um banco de dados
geogrfico que utiliza extenses das operaes acima descritas cobrindo
este ponto.

7.6.3 Exemplo de transao sobre banco de dados geogrfico


Considere um banco de dados geogrfico B contendo, para o Estado do
Rio de Janeiro:
um geo-campo T capturando a sua topografia;
uma coleo de geo-objetos chamada de REAS-DE-
PRODUO, cujos elementos descrevem as reas de proteo,
descritas por uma representao por subdiviso planar P; e

272
Gerncia de transaes

duas colees de geo-objetos, REDE-VIRIA e OLEODUTOS,


com a descrio das estradas e oleodutos, cujas localizaes
encontram-se em uma representao complexa V.
Suponha agora que uma equipe tenha sido designada para elaborar
uma proposta para um oleoduto do terminal da Petrobrs no Municpio
de Angra dos Reis para o Porto de Sepetiba, sem cruzar reas de proteo
ambiental e aproveitando ao mximo os cortes j feitos para as estradas.
O trabalho da equipe configura uma transao longa e cooperativa,
construda interativamente com descrito a seguir.
Inicialmente a equipe define uma janela R cobrindo toda a regio de
trabalho. Em seguida, define o banco de dados privado B e cria, atravs
da operao check-out, verses TR e VR dos objetos T e V apenas para a
regio R e uma verso OL de OLEODUTOS. Suponha que a equipe
tenha permisso apenas para consultar as colees REAS DE
PROTEO e REDE-VIRIA e a representao P.
Em seguida, a equipe define o oleoduto, inserindo um novo geo-
objeto O em OL, e alterando VR para incluir a representao de O.
A equipe tambm modifica o geo-campo TR para indicar os novos
cortes necessrios passagem do oleoduto (mas no modifica P, por
restries de projeto).
Ao trmino, a equipe introduz o resultado do projeto no banco
original B atravs da operao de check-in por substituio, estendida para
tratar de verses que se referem apenas a uma parte da rea geogrfica
coberta pelos objetos.
Em paralelo, uma segunda equipe poder estar trabalhando no
traado de uma nova estrada no Municpio de Angra dos Reis, com
restries semelhantes s anteriores: a estrada no poder cruzar reas de
proteo ambiental e dever aproveitar ao mximo os cortes j feitos para
oleodutos.
Novamente, a equipe define uma janela S cobrindo sua regio de
trabalho e define o banco de dados privado E, criando, atravs da
operao check-out, verses TS e VS dos objetos T e V apenas para a
regio S e uma verso RV de REDE-VIRIA.

273
7. Processamento de consultas e gerncia de transaes

De forma semelhante, esta equipe define a estrada, inserindo um novo


geo-objeto E na coleo RV, alterando $V_S$ para incluir a
representao de E, e modificando o geo-campo TS para indicar novos
cortes necessrios passagem da nova estrada.
Ao trmino, a equipe tentar introduzir o resultado deste segundo
projeto no banco original B, atravs da operao de check-in por
substituio.
Duas situaes podero ocorrer. Primeiro, se as regies R e S forem
disjuntas, ento o trabalho de uma equipe no afeta diretamente o da
outra e a alterao do banco B ocorrer normalmente. Porm, a
implementao da operao de check-in por substituio dever ser
suficientemente sofisticada para alterar V e T apenas para a regio S de
tal forma que no destrua as modificaes efetuadas nestes campos pela
equipe que criou o oleoduto.
Segundo, se as regies R e S no forem disjuntas, o trabalho de uma
equipe potencialmente afeta o da outra. guisa de ilustrao, faamos
uma anlise mais detalhada desta situao. A primeira equipe altera V
acrescentando a representao de O e a segunda acrescentando a
representao de E. Portanto, se o sistema versionar as componentes de
V, e no V como um todo, ser simples implementar a operao de check-
in por substituio de tal forma que o trabalho de uma equipe no
interfira com o da outra do ponto de vista de V: basta reconhecer que
ambas as equipes simplesmente criaram novas componentes de V.
Argumento semelhante se aplica a T, exceto que, neste caso, como T
um geo-campo, ser necessrio analisar a representao utilizada para T.
Por exemplo, se a representao for por isolinhas, ser necessrio
versionar as isolinhas em si; assim uma equipe no interferir com a
outra se alterarem isolinhas distintas.
Naturalmente, toda esta discusso sobre a operao de check-in por
substituio afetada pelos mecanismos de controle de acesso, que
tambm devero ser revistos para acomodar os refinamentos baseados no
uso de regies ou de componentes.

274
Leituras suplementares

7.7 Leituras suplementares


Resumos dos principais aspectos de implementao de sistema de
gerncia de bancos de dados geogrficos podem ser encontrados em
referncias gerais (Guting, 1994) (Medeiros e Pires, 1994) (Shekhar et al.,
1999) (Rigaux et al, 2001) (Shekhar, 2002). Descries de extenses dos
principais sistema de gerncia de bancos de dados para tratar dados
geogrficos encontram-se em (Ravada e Sharma, 1999) (David, 2001).
Polticas especficas para otimizao de consultas espaciais podem ser
encontradas em referncias seminais sobre o assunto (Aref e Samet, 1991)
(Kriegel et al., 1993) (Brinkhoff et al., 1993) (Brinkhoff et al., 1994). Em
particular, a idia bsica de processar uma consulta espacial em vrios
passos, atravs de aproximaes da geometria dos objetos, foi introduzida
em (Kriegel et al., 1993). Propostas de benchmarks para consultas
espaciais podem ser encontrados em (Stonebraker et al. 1993) (Cifferi,
1995). Uma biblioteca de algoritmos para processamento de consultas
espaciais apresentada em (Bercken et al. 2001). A questo do
processamento de consultas para objetos representados em alta resoluo
discutida em (Kriegel et al., 2003).
H bem poucas referncias sobre gerncia de transaes para o caso
especfico de sistemas de gerncia de bancos de dados geogrficos. Porm,
o padro de transaes para estas aplicaes semelhante s chamadas
transaes longas e aninhadas (Lynch, 1983) (Weikum, 1991), tpicas de
ambientes de desenvolvimento de software, ambientes de projeto de
VLSI e hipertexto, entre outros. Um modelo semntico, genrico para
transaes, que se aplica tambm a bancos de dados geogrficos, foi
proposto em (Brayner et al., 1999). Um modelo de transaes recente e
especfico para bancos de dados geogrficos encontra-se (Kadri-Dahmani
e Osmani, 2003).
A discusso sobre processamento de consultas espaciais apresentada
neste captulo aborda apenas aplicaes convencionais envolvendo dados
geogrficos. H, no entanto, uma vasta gama de aplicaes de outra
natureza, que necessitam revisar a semntica das consultas e,
conseqentemente, as tcnicas de processamento de consultas.
Podemos apontar aplicaes que necessitam: tratar objetos espao-
temporais (Kim et al., 2002); trabalhar com dados geogrficos

275
7. Processamento de consultas e gerncia de transaes

representando redes, onde a noo de espao Euclidiano no adequada


(Papadias et al., 2003); considerar consultas dependentes de localizao
em ambientes para computao mvel (Ayse et al., 2001) (Zhang et al.,
2003) (Manical et al., 2004); e processar objetos mveis (Porkaew et al.,
2001) (Chon et al., 2002).

276
Referncias

Referncias
ABOULNAGA, A.; NAUGHTON, J. F. Accurate estimation of the cost of
spatial selections. In: 16th International Conference on Data Engineering.
San Diego, CA, USA, 2000. p. 123-134.
AREF, W.; SAMET, H. Optimization for Spatial Query Processing. In: 17th
International Conference on Very Large Data Bases. Morgan Kaufmann
Publishers Inc., Barcelona, Spain, 1991. p. 81-90.
AYSE, Y.; DUNHAM, H. M.; KUMAR, V. M. Location dependent query
processing. In: 2nd ACM international workshop on Data engineering for
wireless and mobile access. Santa Barbara, CA, USA, 2001. p. 47-53.
BERCKEN, J.; BLOHSFELD, B.; DITTRICH, J.-P.; KRAMER, J.;
SCHAFER, T.; SCHNEIDER, M.; SEEGER, B. XXL - A Library
Approach to Supporting Efficient Implementations of Advanced Database
Queries. In: 27th International Conference on Very Large Data Bases.
Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2001. p. 39-48.
BRAYNER, A.; HARDER, T.; RITTER, N. Semantic Serializability: A
Correctness Criterion for Processing Transactions. Data & Knowledge
Engineering, v. 31, n.1, p. 1-24, 1999.
BRINKHOFF, T.; HORN, H.; KRIEGEL, H.-P.; SCHNEIDER, H. A
Storage and Access Architecture for Efficient Query Processing in Spatial
Database Systems. In: Third International Symposium on Advances in
Spatial Databases. Lecture Notes In Computer Science. Springer-Verlag
London, UK, 1993a. p. 357-376.
BRINKHOFF, T.; KRIEGEL, H.-P.; SCHNEIDER, H.; SEEGER, B.
GENESYS: A System for Efficient Spatial Query Processing. In: 1994 ACM
SIGMOD International Conference on Management of Data. Minneapolis,
MI, USA, 1994a. p. 519.
BRINKHOFF, T.; KRIEGEL, H.-P.; SCHNEIDER, R.; SEEGER, B. Multi-
step Processing of Spatial Joins. In: 1994 ACM SIGMOD International
Conference on Management of Data. Minneapolis, USA, 1994b. p. 197-208.
BRINKHOFF, T.; KRIEGEL, H.-P.; SEEGER, B. Efficient Processing of
Spatial Joins. In: 1993 ACM SIGMOD International Conference on
Management of Data. Washington, DC, USA, 1993b. p. 237-246.
CHON, D. H.; AGRAWAL, D.; EL ABBADI, A. Query Processing for Moving
Objects with Space-Time Grid Storage Model. In: Third International
Conference on Mobile Computing. 2002. p. 121.

277
7. Processamento de consultas e gerncia de transaes

CIFFERI, R. Um Benchmark Voltado a Anlise de Desempenho de Sistemas


de Informaes Geogrficas. Campinas, SP, Brasil: UNICAMP, 1995.
Departamento de Cincia da Computao, 1995.
DAR, S.; FRANKLIN, M. J.; JONSSON, B. T.; SRIVATAVA, D.; TAN, M.
Semantic Data Caching and Replacement. In: 22th International
Conference on Very Large Data Bases. Morgan Kaufmann Publishers Inc.,
1996. p. 330-341.
DAVID, W. A. DB2 Spatial Extender - Spatial data within the RDBMS. In:
27th International Conference on Very Large Data Bases. Morgan
Kaufmann Publishers Inc., San Francisco, CA, USA, 2001. p. 687-690.
DIAS, E.; GRANADO, S.; MAGALHES, G. Uso de Verses na Garantia de
Consistncia em Ambientes Mistos de Projetos e Operao. In: Simpsio
Brasileiro de Banco de Dados. 1995. p. 321-334.
DOSHI, P. R.; RUNDENSTEINER, E. A.; WARD, M. O. Prefetching for
Visual Data Exploration. In: Eighth International Conference on Database
Systems for Advanced Applications. 2003. p. 195.
GUNTHER, O.; BECKER, L.; HINRICHS, K.; FINKE, U. Efficient
computation of spatial joins. In: 9th International Conference on Data
Engineering. Vienna, Austria, 1993. p. 50-59.
GUTING, R. An Introduction to Spatial Database Systems. VLDB Journal, v.
3, n.4, p. 357-399, 1994.
KADRI-DAHMANI, H.; OSMANI, A. Updating Data in GIS: How to
Maintain Database Consistency? In: Enterprise Information Systems IV.
Kluwer Academic Publishers, Ciudad Real, Spain, 2003. p. 163-169.
KIM, H. D.; RYU, H. K.; PARK, H. C. Design and implementation of
spatiotemporal database query processing system. Journal of Systems and
Software, v. 60, n.1, p. 37-49, 2002.
KRIEGEL, H.-P.; BRINKHOFF, T.; SCHNEIDER, R. An Efficient Map
Overlay Algorithm Based on Spatial Access Methods and Computational
Geometry. In: Geographic Database Management Systems. Springer-
Verlag, Capri, 1992. p. 194-211.
KRIEGEL, H.-P.; BRINKHOFF, T.; SCHNEIDER, R. Efficient Spatial
Query Processing in Geographic Database Systems. Data Engineering
Bulletin, v. 16, n.3, p. 10-15, 1993.
KRIEGEL, H.-P.; PFEIFLE, M.; POTKE, M.; SEIDL, T. Spatial Query
Processing for High Resolutions. In: 8th International Conference on

278
Referncias

Database Systems for Advanced Applications (DASFAA03). Kyoto, Japan,


2003. p. 17.
KRIEGEL, H.-P.; SCHIWIETZ, M.; SCHNEIDER, R.; SEEGER, B.
Performance comparison of point and spatial access methods. In: First
Symposium on Design and Implementation of Large Spatial
Databases.Lecture Notes in Computer Science. Springer-Verlag, Santa
Barbara, CA, USA, 1990. p. 89-114.
LO, M.-L.; RAVISHANKAR, C. V. Spatial hash-joins. In: 1996 ACM
SIGMOD International Conference on Management of Data. Montreal,
Quebec, Canada, 1996. p. 247-258.
LYNCH, N. A. A New Correctness Criterion for Database Concurrency
Control. ACM Transactions on Database Systems, v. 8, n.4, p. 484-502,
1983.
MANICAL, H.; CAMARGO, S. M.; CIFERRI, A. D. C.; CIFERRI, R. R.
Processamento de Consultas Espaciais Baseado em Cache Semntico
Dependente de Localizao. In: VI Simpsio Brasileiro de Geoinformtica
GeoInfo 2004. Campos de Jordo, SP, 2004. p.
MEDEIROS, C. B.; PIRES, F. Databases for GIS. ACM SIGMOD Record, v.
23, n.1, p. 107-115, 1994.
PAPADIAS, D.; ZHANG, J.; MAMOULIS, N.; Y., T. Query Processing in
Spatial Network Databases. In: 29th Very Large Data Base Conference.
Berlin, Germany, 2003. p.
PATEL, J. M.; DEWITT, D. J. Partition based spatial-merge join. In: 1996
ACM SIGMOD International Conference on Management of Data.
Montreal, Quebec, Canada, 1996. p. 259-270.
PORKAEW, K.; LAZARIDIS, I.; MEHROTRA, S. Querying Mobile Objects
in Spatio-Temporal Databases. In: 7th International Symposium on
Advances in Spatial and Temporal Databases.Lecture Notes In Computer
Science. Springer-Verlag, Redondo Beach, CA, USA, 2001. p. 59-78.
PREPARATA, F. P.; SHAMOS, M. I., eds., 1985, Computational Geometry:
An Introduction: New York, NY, Springer-Verlag.
RAVADA, S.; SHARMA, J. Oracle8i Spatial: Experiences with Extensible
Databases. In: 6th International Symposium on Advances in Spatial
Databases. Springer-Verlag, London, UK, 1999. p. 355-359.
REN, Q.; DUNHAM, M. H.; KUMAR, V. Semantic Caching and Query
Processing. IEEE Transactions on Knowledge and Data Engineering, v.
15, n.1, p. 192-210, 2003.

279
7. Processamento de consultas e gerncia de transaes

RIGAUX, P.; SCHOLL, M.; VOISARD, A. Spatial Databases with


Application to GIS. San Francisco: Morgan Kaufmann Publishers Inc,
2001.
SHEKHAR, S.; CHAWLA, S.; RAVADA, S.; FETTERER, A.; LIU, X.; LIU,
C. T. Spatial Databases: Accomplishments and Research Needs. IEEE
Transactions on Knowledge and Data Engineering, v. 11, n.1, p. 45-55,
1999.
SOARES, L.; CASANOVA, M.; RODRIGUES, N. Um Modelo Conceitual
Hipermdia com Ns de Composio e Controle de Verses. In: VII
Simpsio Brasileiro de Engenharia de Software. 1993. p. 365-381.
STONEBRAKER, M.; FREW, J.; GARDELS, K.; MEREDITH, J. The
Sequoia 2000 Benchmark. In: 1993 ACM SIGMOD International
Conference on Management of Data. Washington, D.C., USA, 1993. p. 2-
11.
WEIKUM, G. Principles and Realization Strategies of Multilevel Transaction
Management. ACM Transactions on Database Systems, v. 16, n.1, p. 132-
180, 1991.
ZHANG, J.; ZHU, M.; PAPADIAS, D.; TAO, Y.; LEE, D. L. Location-based
spatial queries. In: 2003 ACM SIGMOD International Conference on
Management of Data. San Diego, CA, USA, 2003. p. 443-454.

280
8 SGBD com extenses espaciais

Gilberto Ribeiro de Queiroz


Karine Reis Ferreira

8.1 Introduo
Este captulo apresenta duas extenses espaciais de SGBD
convencionais, uma da comunidade de software aberto (PostGIS) e outra
comercial (Oracle Spatial).
O PostGIS (Ramsey, 2002) estende o PostgreSQL, seguindo as
especificaes da SFSSQL. O PostgreSQL um sistema de gerncia de
banco de dados objeto-relacional, gratuito e de cdigo fonte aberto
(Stonebraker et al, 1990). Foi desenvolvido a partir do projeto Postgres,
iniciado em 1986, na Universidade da Califrnia em Berkeley.
O Spatial (Ravada e Sharma, 1999) (Murray, 2003) estende o modelo
objeto-relacional do sistema de gerncia de banco de dados Oracle. Esta
extenso baseia-se nas especificaes do OpenGIS.

8.2 Cenrios
Esta seo apresenta alguns cenrios que sero empregados ao longo do
captulo para ilustrar os principais recursos das extenses espaciais
consideradas. Os exemplos que iremos apresentar, representam as
informaes de distritos, bairros e rede de drenagem da cidade de So
Paulo; os municpios que formam a grande So Paulo (So Caetano do
Sul, Suzano, Guarulhos entre outras). A Figura 8.1 mostra a parte
geomtrica dos distritos de So Paulo. Para cada distrito associaremos um
polgono e os atributos cdigo do distrito (COD), sigla de abreviao
(SIGLA) e o nome do distrito (DENOMINACAO). Aos pontos que
representam bairros da cidade de So Paulo (Figura 8.2) iremos associar
8. SGBD com extenses espaciais

os atributos nome do bairro (BAIRRO) e o nome do distrito (DISTR). s


linhas da Figura 8.3 (mapa de drenagem) associaremos um nico
atributo, a classe de drenagem (CLASSE). E, aos polgonos dos
municpios da grande So Paulo, os atributos cdigo do municpio
(CODMUNIC), nome do municpio (NOMEMUNICP) e populao
(POPULACAO).

Figura 8.1 Mapa de Distritos da Cidade Figura 8.2 Mapa de Bairros da


de So Paulo. Cidade de So Paulo.

Figura 8.3 Mapa de Figura 8.4 Mapa dos Municpios da Grande


drenagem. So Paulo.

282
Cenrios

A partir dessas informaes, iremos construir alguns cenrios


envolvendo consultas espaciais que sero utilizados durante a explicao
dos recursos de cada uma das extenses.
Cenrio 1: Recuperar o nome de todos os municpios da grande So
Paulo que so vizinhos ao municpio de So Paulo. A Figura 8.5 ilustra
esse cenrio, com o municpio de So Paulo destacado em preto e os
municpios vizinhos destacados em cinza claro

Figura 8.5 Municpios vizinhos cidade de So Paulo.


Cenrio 2: Recuperar o nome de todos os municpios da grande So
Paulo que so vizinhos ao distrito Anhanguera da cidade de So Paulo.
A Figura 8.6 ilustra este cenrio, com o distrito Anhanguera de So Paulo
destacado em preto e os municpios vizinhos a este distrito, destacados
em cinza claro.

Figura 8.6 Municpios vizinhos ao distrito Anhanguera.

283
8. SGBD com extenses espaciais

Cenrio 3: Recuperar o nmero de bairros contidos no distrito


Graja. A Figura 8.7 ilustra o cenrio, com o distrito Graja destacado
em cinza escuro e os municpios contidos neste distrito de cinza claro.

Figura 8.7 Bairros contidos Figura 8.8 Buffer de 3Km ao redor de um rio
no distrito de Graja. e distritos nesta regio de influncia.
Cenrio 4: Recuperar todos os distritos que esto num raio de 3km
de um determinado rio. A Figura 8.8 ilustra o resultado desta consulta,
com o rio selecionado destacado em branco e os distritos em cinza escuro
contidos no raio de 3km do rio. A linha em cinza escuro ao redor do rio
selecionado representa um buffer gerado com o qual os distritos foram
testados (relacionamento intercepta).
Cenrio 5: Recuperar todos os bairros que estejam a menos de 3km
do bairro Boacava.

8.3 PostGIS para PostgreSQL


8.3.1 Caractersticas principais do PostgreSQL
O PostgreSQL um sistema gerenciador de banco de dados objeto-
relacional, gratuito e de cdigo fonte aberto, desenvolvido a partir do
projeto Postgres, iniciado em 1986, na Universidade da Califrnia em
Berkeley, sob a liderana do professor Michael Stonebraker. Em 1995,
quando o suporte a SQL foi incorporado, o cdigo fonte foi
disponibilizado na Web (http://www.postgresql.org). Desde ento, um
grupo de desenvolvedores vem mantendo e aperfeioando o cdigo fonte
sob o nome de PostgreSQL.

284
PostGIS para PostgreSQL

Em sua verso de distribuio oficial, ele apresenta tipos de dados


geomtricos (Figura 8.9), operadores espaciais simples e indexao
espacial atravs de uma R-Tree nativa ou atravs de R-Tree
implementada no topo do mecanismo de indexao GiST (Hellerstein et
al, 1995).

POINT BOX

LSEG POLYGON

PATH CIRCLE

Figura 8.9 Tipos Geomtricos do PostgreSQL.

A implementao da R-Tree nativa possui uma severa limitao em


seu uso, uma coluna do tipo polgono no pode exceder 8Kbytes. Na
prtica, muito comum um SIG manipular dados representados, por
exemplo, por polgonos maiores do 8Kbytes cada, o que torna o uso desse
ndice invivel. Uma alternativa o uso da segunda R-Tree.
O mtodo de indexao chamado GiST foi introduzido por
Hellerstein et al (1995) e implementado no PostgreSQL. Atualmente, ele
mantido por Signaev e Bartunov
(http://www.sai.msu.su/~megera/postgres/gist) e no possui restries de
tamanho do dado a ser indexado. GiST uma abreviao de Generalized
Search Trees, consistindo em um ndice (rvore balanceada) que pode
fornecer tanto as funcionalidades de uma B-Tree quanto de uma R-Tree
e suas variantes. A principal vantagem desse ndice a possibilidade de
definio do seu comportamento.
Quanto aos poucos operadores espaciais existentes, estes realizam a
computao apenas sobre o retngulo envolvente das geometrias e no
diretamente nelas. J os tipos de dados simples, como polgonos, no
permitem a representao de buracos, no existindo tambm geometrias
que permitam representar objetos mais complexos como os formados por
conjuntos de polgonos.

285
8. SGBD com extenses espaciais

Portanto, a integrao de um SIG atravs desses tipos geomtricos


requer muito esforo implementao de novas operaes espaciais
como unio, interseo, testes topolgicos sobre a geometria exata,
definio de um modelo de suporte a polgonos com buracos, entre
outras.
Mas, como dito anteriormente, um dos pontos fortes desse SGBD
seu potencial de extensibilidade, o que possibilitou o desenvolvimento de
uma extenso geogrfica mais completa, chamada PostGIS. Antes de
entrar em maiores detalhes dessa extenso, apresentaremos um pouco do
mecanismo de extensibilidade para que o leitor possa entender melhor o
ncleo da extenso PostGIS.
8.3.2 Extensibilidade do PostgreSQL
O mecanismo de extensibilidade do PostgreSQL permite incorporar
capacidades adicionais ao sistema de forma a torn-lo mais flexvel para o
gerenciamento de dados para cada classe de aplicao. No caso dos SIG,
isso significa a possibilidade do desenvolvimento de uma extenso
geogrfica capaz de armazenar, recuperar e analisar dados espaciais. A
seguir sero apresentados alguns passos envolvidos na criao de uma
extenso do PostgreSQL. Os exemplos foram adaptados do tipo de dados
POLYGON existente na distribuio oficial.
8.3.2.1 Tipos de dados definidos pelo usurio
A extenso de tipos de dados no PostgreSQL pode ser feita em linguagem
C (Kernighan e Ritchie, 1990) atravs da definio de uma estrutura de
dados, que responsvel pela representao do tipo em memria. O
trecho de cdigo abaixo ilustra a definio de um tipo chamado
TeLinearRing, que representa uma linha fechada composta por um
conjunto de coordenadas (do tipo TeCoord2D). Os tipos definidos pelo
usurio podem ser de tamanho fixo ou varivel, como no caso do
exemplo abaixo (varivel):
typedef struct
{ int32 size; //struct length
int32 ncoords_; //number of coords
TeCoord2D coords_[1]; //variable length array
} TeLinearRing;

286
PostGIS para PostgreSQL

Alm da estrutura de dados, necessrio definir outras duas rotinas1


que fazem a converso do tipo de acordo com a sua representao em
memria para ASCII e vice-versa. Estas rotinas so conhecidas como
funes de entrada e sada, e elas associam uma representao textual
externa para o dado. Essas funes so utilizadas internamente para
permitir que o tipo seja usado diretamente em comandos SQL. Por
exemplo, para o tipo TeLinearRing, poderamos optar pelo seguinte
formato de representao: [(X1, Y1), (X2, Y2), ..., (Xn, Yn)]. O trecho de
cdigo abaixo ilustra a implementao de uma rotina de entrada para o
tipo TeLinearRing2:
00 PG_FUNCTION_INFO_V1(TeLinearRing_in);
01 Datum TeLinearRing_in(PG_FUNCTION_ARGS)
02 { char* str = PG_GETARG_CSTRING(0);
03 TeLinearRing* ring; int ncoords;
04 int size; char* s;
05
06 if((ncoords = number_of_coords(str, ))) <= 0)
07 elog(ERROR, "Bad TeLinearRing external
08 representation '%s'", str);
09 size = offsetof(TeLinearRing, coords_[0]) +
10 sizeof(ring->coords_[0]) * ncoords;
11 ring = (TeLinearRing*)palloc(size);
12 MemSet((char *) ring, 0, size);
13 ring->size = size; ring->ncoords_ = ncoords;
14 if((!decode(ncoords, str, &s,
15 &(ring->coords_[0]), [, ])) ||
16 (*s != '\0'))
17 elog(ERROR, "Bad TeLinearRing external
18 representation '%s'", str);
19 if(!is_TeLinearRing(ring))
20 { pfree(ring);
21 ring = NULL;
22 elog(ERROR, "In a TeLinearRing the first point
23 must be the same as the last point '%s'",
24 str);
25 }
26 PG_RETURN_TeLine2D_P(ring);
27 }

1
A partir da verso 7.4, pode-se definir das funes de I/O no formato binrio.
2
As funes number_of_coords e decode sero omitidas por questes de espao.

287
8. SGBD com extenses espaciais

Os passos envolvidos na definio desta rotina so:


Na linha 02, podemos observar que a rotina recebe um polgono
(TeLinearRing) na forma textual (str).
Na linha 06, a funo number_of_coords determina quantas
coordenadas formam a fronteira do polgono.
Na linha 11, alocada memria suficiente para um polgono com o
nmero de coordenadas determinado na linha 06.
Finalmente, na linha 14, a string decodificada e as coordenadas
so armazenadas no vetor de coordenadas da fronteira do polgono.
A funo de sada mais simples, recebe o dado na representao
interna, devendo convert-lo para a representao externa. O trecho de
cdigo abaixo ilustra a funo de sada para o tipo TeLinearRing:
PG_FUNCTION_INFO_V1(TeLinearRing_out);
Datum TeLinearRing_out(PG_FUNCTION_ARGS)
{TeLinearRing *ring = (TeLinearRing*)
PG_GETARG_TeLinearRing_P(0);
char* str;
str = palloc(ring->ncoords_ * (P_MAXLEN + 3) + 2);

if(!encode(ring->ncoords_, ring->coords_, str, [,


], "Unable to format TeLinearRing"))
elog(ERROR, "Unable to format TeLinearRing");
PG_RETURN_CSTRING(str); }
Depois de criado o tipo, uma biblioteca compartilhada deve ser gerada
para ser integrada dinamicamente ao servidor de banco de dados.
necessrio registrar o tipo atravs do comando SQL: CREATE TYPE,
informando as rotinas de entrada e sada:
CREATE FUNCTION telinearring_in(opaque)
RETURNS telinearring
AS '/opt/tepgdatatypes.so'
LANGUAGE 'c';

CREATE FUNCTION telinearring_out(opaque)


RETURNS opaque
AS '/opt/tepgdatatypes.so'
LANGUAGE 'c';

CREATE TYPE telinearring

288
PostGIS para PostgreSQL

( alignment = double,
internallength = VARIABLE,
input = telinearring_in,
output = telinearring_out,
storage = main );
Agora podemos utilizar o tipo TeLinearRing dentro de comandos
SQL, como:
Criar uma tabela com uma coluna do tipo TeLinearRing:
CREATE TABLE tab_poligonos_simples
(id INTEGER, geom TeLinearRing);
Inserir um quadrado (4 x 4):
INSERT INTO tab_poligonos_simples VALUES(1, [(0, 0), (4,
0), (4, 4), (0, 4), (0, 0)]);
Recuperar todos os polgonos:
SELECT * FROM tab_poligonos_simples;
Resultado:
id | geom
------------------------------------------
1 | [(0, 0), (4, 0), (4, 4), (0, 4), (0, 0)]

8.3.2.2 Funes e operadores definidos pelo usurio


Alm da flexibilidade do sistema de tipos, o PostgreSQL permite a
criao de mtodos que operem sobre as instncias dos tipos definidos.
Essas funes podem ser integradas ao servidor informando o nome da
funo, a lista de argumentos e o tipo de retorno. Essas informaes so
registradas no catlogo do sistema.
O trecho de cdigo abaixo ilustra a definio de uma funo para
calcular a rea de um polgono simples representado por um
TeLinearRing.
PG_FUNCTION_INFO_V1(TeLinearRingArea);
Datum TeLinearRingArea(PG_FUNCTION_ARGS)
{TeLinearRing *r = (TeLinearRing *)
PG_DETOAST_DATUM(PG_GETARG_DATUM(0));
double area = 0.0; int npoints = 0;
int loop; npoints = r->ncoords_;

for(loop = 0; loop < (npoints - 1); ++loop)

289
8. SGBD com extenses espaciais

{ area += ((r->coords_[loop].x_ *
r->coords_[loop + 1].y_)
(r->coords_[loop + 1].x_ *
r->coords_[loop].y_)); }
area *= 0.5;
PG_RETURN_FLOAT8(area); }
Assim como os tipos, as funes tambm devem ser colocadas em uma
biblioteca compartilhada para poderem ser integradas ao servidor de
banco de dados. necessrio registrar a funo atravs do comando
SQL: CREATE FUNCTION, como mostrado abaixo:
CREATE FUNCTION area(telinearring)
RETURNS float4
AS '/opt/tepgfunctions.so', 'telinearringarea'
LANGUAGE 'c' WITH (isstrict);
Outra funcionalidade importante oferecida pelo PostgreSQL que os
nomes das funes podem ser sobrecarregadas desde que os parmetros
sejam de tipos diferentes. Depois de criada uma funo, possvel definir
um operador para ela atravs do comando SQL: CREATE OPERATOR. A
importncia da definio do operador est ligada ao otimizador de
consultas que pode usar as informaes contidas na definio do
operador para decidir a melhor estratgia para a consulta (ou
simplificao desta). Outra funcionalidade oferecida pelo PostgreSQL a
definio de funes agregadas, que podem ser construdas de forma
anloga s funes sobre tipos, porm so registradas com o comando
SQL: CREATE AGGREGATE.
8.3.2.3 Extenso do mecanismo de indexao
O PostgreSQL possui quatro mecanismos de indexao (B-Tree, R-
Tree, GiST e HASH). Esses ndices podem ser usados para os tipos de
dados e funes definidos pelo usurio, bastando para isso registrar no
catlogo do sistema as informaes das operaes necessrias a cada
ndice. Por exemplo, para um tipo que deseje ser indexado pela B-Tree,
necessrio indicar ao sistema as operaes de comparao <, <=,
=, >= e > para que o ndice saiba como realizar buscas.
O exemplo abaixo ilustra a implementao do operador < para o
tipo TeCoord2D (coordenada com os campos x_ e y_), sendo que os
demais operadores diferem apenas forma da chamada:

290
PostGIS para PostgreSQL

static int
tecoord2d_cmp_internal(TeCoord2D* a, TeCoord2D* b)
{ if(a->x_ < b->x_)
return -1;
if(a->x_ > b->x_)
return 1;
if(a->y_ < b->y_)
return -1;
if(a->y_ > b->y_)
return 1;
return 0;
}

PG_FUNCTION_INFO_V1(tecoord2d_lt);
Datum
tecoord2d_lt(PG_FUNCTION_ARGS)
{ TeCoord2D *a = (TeCoord2D*) PG_GETARG_POINTER(0);
TeCoord2D *b = (TeCoord2D*) PG_GETARG_POINTER(1);
PG_RETURN_BOOL(tecoord2d_cmp_internal(a, b) < 0); }

Datum
tecoord2d_cmp(PG_FUNCTION_ARGS)
{ TeCoord2D *a = (TeCoord2D*) PG_GETARG_POINTER(0);
TeCoord2D *b = (TeCoord2D*) PG_GETARG_POINTER(1);
PG_RETURN_INT32(tecoord2d_cmp_internal(a, b)); }
Agora, podemos registrar a funo e definir o operador atravs da
seguinte seqncia de comandos:
CREATE FUNCTION tecoord2d_lt(TeCoord2D, TeCoord2D) RETURNS
bool
AS 'filename', 'tecoord2d_lt'
LANGUAGE C IMMUTABLE STRICT;

CREATE FUNCTION tecoord2d_cmp(TeCoord2D, TeCoord2D)


RETURNS integer
AS 'filename', 'tecoord2d_cmp'
LANGUAGE C IMMUTABLE STRICT;

291
8. SGBD com extenses espaciais

CREATE OPERATOR < (


leftarg = TeCoord2D, rightarg = TeCoord2D,
procedure = tecoord2d_lt,
commutator = > , negator = >= ,
restrict = scalarltsel, join = scalarltjoinsel
);
E, por ltimo, criamos a classe de operao requerida pelo ndice B-
tree:
CREATE OPERATOR CLASS tecoord2d_ops
DEFAULT FOR TYPE TeCoord2D USING btree AS
OPERATOR 1 < ,
OPERATOR 2 <= ,
OPERATOR 3 = ,
OPERATOR 4 >= ,
OPERATOR 5 > ,
FUNCTION 1 tecoord2d_cmp(TeCoord2D, TeCoord2D);

8.3.3 A extenso espacial PostGIS do PostgreSQL


A comunidade de software livre vm desenvolvendo a extenso espacial
PostGIS, construda sobre o PostgreSQL. Atualmente, a empresa
Refractions Research Inc (http://postgis.refractions.net) mantm a equipe
de desenvolvimento dessa extenso, que segue as especificaes da
SFSSQL.
8.3.3.1 Tipos de dados espaciais
A Figura 8.10 ilustra os tipos espaciais suportados pelo PostGIS e
embutidos na SQL do PostgreSQL.

GEOMETRY

POINT GEOMETRYCOLLECTION

LINESTRING MULTIPOINT

POLYGON MULTILINESTRING

MULTIPOLYGON

Figura 8.10 - Tipos de dados espaciais do PostGIS.

292
PostGIS para PostgreSQL

Esses tipos possuem a seguinte representao textual:


Point: (0 0 0)
LineString: (0 0, 1 1, 2 2)
Polygon: ((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0), ( 1 0 0,
...), ...)
MultiPoint: (0 0 0, 4 4 0)
MultiLineString: ((0 0 0, 1 1 0, 2 2 0), (4 4 0, 5 5 0,
6 6 0))
MultiPolygon: (((0 0 0, 4 0 0, 4 4 0, 0 4 0, 0 0 0),
(...), ...), ...)
GeometryCollection: (POINT(2 2 0), LINESTRING((4 4 0, 9
9 0))
Como exemplo, mostraremos os comandos em SQL para gerar
tabelas para armazenar os atributos e as geometrias3:
Dos distritos de So Paulo, mostrados na Figura 8.1.
CREATE TABLE distritossp
( cod SERIAL,
sigla VARCHAR(10),
denominacao VARCHAR(50),
PRIMARY KEY (cod)
);
SELECT AddGeometryColumn('terralibdb', 'distritossp',
'spatial_data', -1, 'POLYGON', 2);
Dos bairros de So Paulo, mostrados na Figura 8.2.
CREATE TABLE bairrossp
( cod SERIAL,
bairro VARCHAR(40),
distr VARCHAR(40),
PRIMARY KEY (cod)
);
SELECT AddGeometryColumn('terralibdb',
'bairrossp', 'spatial_data', -1, 'POINT', 2);

Do mapa de drenagem, mostrado na Figura 8.3:

3
Aqui consideramos a existncia de um banco de dados chamado terralibdb

293
8. SGBD com extenses espaciais

CREATE TABLE drenagemsp


( cod SERIAL,
classe VARCHAR(255) NULL,
PRIMARY KEY (cod)
);
SELECT AddGeometryColumn('terralibdb', 'drenagemsp',
'spatial_data', -1, 'LINESTRING', 2);
Do mapa de municpios da grande So Paulo (Figura 8.4)
CREATE TABLE grande_sp
( cod SERIAL,
nomemunicp VARCHAR(255) NULL,
populacao INTEGER,
PRIMARY KEY (cod)
);
SELECT AddGeometryColumn('terralibdb', 'grande_sp',
'spatial_data', -1, 'POLYGON', 2);
Observe que a criao de uma tabela com tipo espacial construda
em duas etapas. Na primeira, definimos os atributos bsicos
(alfanumricos) e na segunda, usamos a funo AddGeometryColumn para
adicionar a coluna com o tipo espacial. Essa funo implementada no
PostGIS e especificada no OpenGIS, realiza todo o trabalho de
preenchimento da tabela de metadado geometry_columns. Os
parmetros dessa funo so:
nome do banco de dados;
nome da tabela que ir conter a coluna espacial;
nome da coluna espacial;
sistema de coordenadas em que se encontram as geometrias da
tabela;
tipo da coluna espacial, que serve para criar uma restrio que
verifica o tipo do objeto sendo inserido na tabela;
dimenso em que se encontram as coordenadas dos dados.
As tabelas de metadado do PostGIS seguem as especificaes da
SFSSQL e so representadas pelas seguintes tabelas:
Tabela 8.1 Tabela de metadado do sistema de coordenadas
spatial_ref_sys

294
PostGIS para PostgreSQL

Attribute Type Modifier


srid INTEGER PK

auth_name VARCHAR(256)

auth_srid INTEGER

srtext VARCHAR(2048)

proj4text VARCHAR(2048)

Tabela 8.2 Tabela de metadado das tabelas com colunas espaciais


geometry_columns
Attribute Type Modifier
f_table_catalog VARCHAR(256) PK

f_table_schema VARCHAR(256) PK

f_table_name VARCHAR(256) PK

f_geometry_column VARCHAR(256) PK

coord_dimension INTEGER

srid INTEGER FK

type VARCHAR(30)

Aps criar as tabelas de dados, podemos inserir as informaes usando


o comando SQL INSERT. Para isso, podemos usar a representao
textual das geometrias em conjunto com a funo GeometryFromText
que recebe a representao textual e mais o sistema de coordenadas em
que se encontra a geometria:
INSERT INTO bairrossp (bairro, spatial_data)
VALUES('JARDIM DOS EUCALIPTOS',
GeometryFromText('POINT(321588.628426 7351166.969244)',
-1));
INSERT INTO drenagemsp (classe, spatial_data)VALUES('RIOS',
GeometryFromText('LINESTRING(344467.895137 7401824.476217,

295
8. SGBD com extenses espaciais

344481.584686 7401824.518728, 344492.194756 7401825.716359,


), -1));

INSERT INTO distritossp (denominacao, sigla, spatial_data)


VALUES('MARSILAC', MAR,
GeometryFromText('POLYGON((335589.530575 7356020.721956,
335773.784959 7355873.470174, ))', -1));

Podemos tambm recuperar as informaes em cada tabela. Por


exemplo, o comando abaixo seleciona a linha do bairro Vila Mariana:
SELECT bairro, AsText(spatial_data) geom FROM bairrossp WHERE
bairro = VILA MARIANA;

Resultado:
bairro | geom
--------------+------------------------------------
VILA MARIANA | POINT(334667.138663 7388890.076491)
(1 row) |
Aqui, empregamos a funo AsText para obter a representao
textual, pois a partir das verses mais recentes o PostGIS utiliza o
formato binrio do OpenGIS (WKB) como o padro nas consultas.
8.3.3.2 Indexao espacial
As colunas com tipos espaciais podem ser indexadas atravs de uma
R-Tree construda no topo do GiST. A sintaxe bsica para criao de um
ndice a seguinte:
CREATE INDEX sp_idx_name ON nome_tabela
USING GIST (coluna_geometrica GIST_GEOMETRY_OPS);
Para as tabelas do nosso exemplo, poderamos construir os seguintes
ndices espaciais:
CREATE INDEX sp_idx_bairros ON bairrossp USING GIST
(SPATIAL_DATA GIST_GEOMETRY_OPS)
CREATE INDEX sp_idx_bairros ON distritossp USING GIST
(SPATIAL_DATA GIST_GEOMETRY_OPS)
CREATE INDEX sp_idx_bairros ON drenagemsp USING GIST
(SPATIAL_DATA GIST_GEOMETRY_OPS)

296
PostGIS para PostgreSQL

CREATE INDEX sp_idx_bairros ON grande_sp USING GIST


(SPATIAL_DATA GIST_GEOMETRY_OPS)
Os ndices espaciais so usados em consultas que envolvam
predicados espaciais, como no caso de consultas por janela, onde um
retngulo envolvente informado e as geometrias que interagem com ele
devem ser recuperadas rapidamente.
O operador && pode ser usado para explorar o ndice espacial. Por
exemplo, para consultarmos os municpios da grande So Paulo que
interagem com o retngulo envolvente de coordenadas: 438164.882699,
7435582.150681 e 275421.967006, 7337341.000355, podemos construir a
seguinte consulta:
SELECT * FROM grande_sp
WHERE 'BOX3D(438164.882699 7435582.150681,
275421.967006 7337341.000355)'::box3d
&& spatial_data);
Com o uso do operador &&, apenas alguns registros precisaro ser
pesquisados para responder pergunta acima.
8.3.3.3 Consultas espaciais
Outro grande destaque desta extenso o grande nmero de
operadores espaciais disponveis, entre alguns deles podemos citar:
Operadores topolgicos conforme a Matriz de 9-Intersees DE:
equals(geometry, geometry)
disjoint(geometry, geometry)
intersects(geometry, geometry)
touches(geometry, geometry)
crosses(geometry, geometry)
within(geometry, geometry)
overlaps(geometry, geometry)
contains(geometry, geometry)

relate(geometry, geometry): retorna a matriz de interseco.


Operador de construo de mapas de distncia:
buffer(geometry, double, [integer])

297
8. SGBD com extenses espaciais

Operador para construo do Fecho Convexo:


convexhull(geometry)

Operadores de conjunto:
intersection(geometry, geometry)

geomUnion(geometry, geometry)

symdifference(geometry, geometry)

difference(geometry, geometry)

Operadores Mtricos:
distance(geometry,geometry)

area(geometry)

Centride de geometrias:
Centroid(geometry)

Validao (verifica se a geometria possui auto-intersees):


isSimple(geometry)

O suporte aos operadores espaciais fornecido atravs da integrao


do PostGIS com a biblioteca GEOS (Geometry Engine Open Source)
(Refractions, 2003). Essa biblioteca uma traduo da API Java JTS
(Java Topology Suite) (Vivid Solutions, 2003) para a linguagem C++. A
JTS uma implementao de operadores espaciais que seguem as
especificaes da SFSSQL. Para exemplificar o uso desses operadores e
funes, mostraremos os comandos em SQL para executar as consultas
dos cenrios de 1 a 5, apresentados no incio desse captulo.
Cenrio 1 Usando o operador touches, uma possvel consulta seria:
SELECT d2.nomemunicp
FROM grande_sp d1, grande_sp d2
WHERE touches(d1.spatial_data, d2.spatial_data)
AND (d2.nomemunicp <> 'SAO PAULO')
AND (d1.nomemunicp = 'SAO PAULO');

298
PostGIS para PostgreSQL

Resultado:
nomemunicp nomemunicp nomemunicp
COTIA JUQUITIBA CAIEIRAS
ITAPECERICA DA SERRA ITAQUAQUECETUBA SAO BERNARDO DO CAMPO
EMBU-GUACU EMBU DIADEMA
SANTANA DE PARNAIBA TABOAO DA SERRA SAO CAETANO DO SUL
SANTO ANDRE BARUERI MAUA
GUARULHOS CAJAMAR FERRAZ DE VASCONCELOS
MAIRIPORA OSASCO POA
(21 rows)

Na consulta acima, o operador touches retorna verdadeiro caso as


geometrias de d2 toquem na geometria de So Paulo. Esse um exemplo
de juno espacial entre duas relaes (no nosso caso a mesma relao foi
empregada duas vezes). Todas as geometrias da relao d1, com exceo
da geometria So Paulo, foram avaliadas no teste topolgico touches, pois
o ndice espacial no foi empregado. Em tabelas com grandes nmeros
de objetos, importante a utilizao desse ndice. Ele pode ser explorado
empregando-se o operador && em conjunto com os predicados da
consulta anterior. Nossa consulta pode ser reescrita como:
SELECT d2.nomemunicp
FROM distritossp d1, distritossp d2
WHERE touches(d1.spatial_data, d2.spatial_data)
AND (d2.nomemunicp <> 'SAO PAULO')
AND (d1.spatial_data && d2.spatial_data)
AND (d1.nomemunicp = 'SAO PAULO');
Cenrio 2 Novamente iremos empregar o operador touches:
SELECT grande_sp.nomemunicp
FROM distritossp, grande_sp
WHERE touches(distritossp.spatial_data,
grande_sp.spatial_data)
AND (distritossp.spatial_data &&
grande_sp.spatial_data)
AND (distritossp.denominacao = 'ANHANGUERA');

Resultado:
nomemunicp nomemunicp
BARUERI OSASCO
SANTANA DE PARNAIBA CAIEIRAS
CAJAMAR
(5 rows)

299
8. SGBD com extenses espaciais

Cenrio 3 Para este cenrio, podemos utilizar o operador contains:


SELECT COUNT(*)
FROM bairrossp pt, distritossp pol
WHERE contains(pol.spatial_data, pt.spatial_data)
AND (pol.spatial_data && pt.spatial_data)
AND pol.denominacao = 'GRAJAU';

Resultado:
count
52
(1 row)
Cenrio 4 Aqui empregaremos os operadores buffer e intersects:
SELECT grande_sp.nomemunicp
FROM grande_sp, drenagemsp
WHERE intersects(buffer(drenagemsp.spatial_data, 3000),
grande_sp.spatial_data)
AND drenagemsp.cod = 59;
Resultado:
Denominao denominacao denominacao
AGUA RASA JAGUARA SANTANA
ALTO DE PINHEIROS JAGUARE SAO DOMINGOS
BARRA FUNDA LAPA SE
BELEM LIMAO TATUAPE
BOM RETIRO MOOCA VILA FORMOSA
BRAS PARI VILA GUILHERME
CANGAIBA PENHA VILA LEOPOLDINA
CARRAO PERDIZES VILA MARIA
CASA VERDE PIRITUBA VILA MATILDE
CONSOLACAO REPUBLICA VILA MEDEIROS
FREGUESIA DO O RIO PEQUENO
JACANA SANTA CECILIA
(34 rows)
Cenrio 5 A resposta a essa pergunta poderia ser traduzida, de incio,
na seguinte consulta:
SELECT b1.bairro
FROM bairrossp b1, bairrossp b2
WHERE (distance(b1.spatial_data, b2.spatial_data)
< 3000)
AND b1.bairro <> 'BOACAVA'
AND b2.bairro = 'BOACAVA' order by b1.bairro;

300
Oracle Spatial

Resultado:
Bairro bairro bairro
ALTO DA LAPA PINHEIROS VILA INDIANA
ALTO DE PINHEIROS SICILIANO VILA IPOJUCA
BELA ALIANCA SUMAREZINHO VILA LEOPOLDINA
BUTANTA VILA ANGLO BRASILEIRA VILA MADALENA
JAGUARE VILA HAMBURGUESA VILA RIBEIRO DE BARROS
LAPA VILA IDA VILA ROMANA
(18 rows)
No entanto, podemos reescrever essa mesma consulta de forma mais
eficiente, utilizando o ndice espacial. A estratgia bsica montar um
retngulo de 6Km por 6Km centrado no bairro BOACAVA, de forma
que somente seja necessrio calcular a distncia para os pontos que
estejam dentro do retngulo. Reescrevendo a consulta temos:
SELECT b1.nome, astext(b1.spatial_data)
FROM bairros b1, bairros b2
WHERE (distance(b1.spatial_data, b2.spatial_data)
< 3000)
AND (expand(b2.spatial_data, 3000) &&
b1.spatial_data)
AND b1.nome <> 'BOACAVA'
AND b2.nome = 'BOACAVA' ORDER BY b1.nome;

8.4 Oracle Spatial


Oracle Spatial (Murray, 2003) uma extenso espacial desenvolvida
sobre o modelo objeto-relacional do SGDB Oracle. Este modelo permite
definir novos tipos de dados atravs da linguagem de definio de dados
SQL DDL, e implementar operaes sobre esses novos tipos, atravs da
linguagem PL/SQL (Urman, 2002), uma extenso da SQL (Lassen et al,
1998). Esta extenso baseada nas especificaes do OpenGIS e contm
um conjunto de funcionalidades e procedimentos que permitem
armazenar, acessar, modificar e consultar dados espaciais de
representao vetorial.
O Oracle Spatial formado pelos seguintes componentes:
Um modelo prprio de dados chamado MDSYS que define a
forma de armazenamento, a sintaxe e semntica dos tipos espaciais
suportados.
Mecanismo de indexao espacial.

301
8. SGBD com extenses espaciais

Um conjunto de operadores e funes para representar consultas,


juno espacial e outras operaes de anlise espacial.
Aplicativos administrativos.
8.4.1 Tipos de dados espaciais
O modelo de dados do Spatial consiste em uma estrutura hierrquica de
elementos, geometrias e planos de informao (layers). Cada plano
formado por um conjunto de geometrias, que por sua vez so formadas
por um conjunto de elementos.
Cada elemento associado a um tipo espacial primitivo, como ponto,
linha ou polgono (com ou sem ilhas), os quais so mostrados na Figura
8.11.

Figura 8.11 Tipos espaciais primitivos do Oracle Spatial

Os tipos espaciais bidimensionais so compostos por pontos formados


por duas ordenadas X e Y, freqentemente correspondentes longitude e
latitude. A extenso tambm suporta o armazenamento e indexao de
tipos tridimensionais e tetradimensionais, mas as funes e operadores s
funcionam para os tipos bidimensionais.
Uma geometria pode ser formada por um nico elemento, ou por um
conjunto homogneo (multipontos, multilinhas ou multipolgonos) ou
heterogneo (coleo) de elementos. Um plano de informao formado

302
Oracle Spatial

por uma coleo de geometrias que possuem um mesmo conjunto de


atributos.
Baseado no modelo objeto-relacional, o Spatial define um tipo de
objeto, para representar dados espaciais, chamado SDO_GEOMETRY, como
mostrado a seguir.
CREATE TYPE sdo_geometry AS OBJECT (
SDO_GTYPE NUMBER,
SDO_SRID NUMBER,
SDO_POINT SDO_POINT_TYPE,
SDO_ELEM_INFO SDO_ELEM_INFO_ARRAY,
SDO_ORDINATES SDO_ORDINATE_ARRAY);
Este objeto contm a geometria em si, suas coordenadas, e
informaes sobre seu tipo e projeo. Em uma tabela espacial, os
atributos alfanumricos da geometria so definidos como colunas de
tipos bsicos (VARCHAR2, NUMBER, DATE, dentre outros), e a geometria
como uma coluna do tipo SDO_GEOMETRY. Em uma tabela espacial, cada
instncia do dado espacial armazenada em uma linha, e o conjunto de
todas as instncias dessa tabela forma um plano de informao.
O objeto SDO_GEOMETRY composto pelos seguintes atributos:
SDO_GTYPE: formado por quatro nmeros, onde os dois primeiros
indicam a dimenso da geometria e os outros dois o seu tipo. Os
tipos podem ser: 00 (no conhecido), 01 (ponto), 02 (linha ou
curva), 03 (polgono), 04 (coleo), 05 (multipontos), 06
(multilinhas) e 07 (multipolgonos);
SDO_SRID: utilizado para identificar o sistema de coordenadas, ou
sistema de referncia espacial, associado geometria;
SDO_POINT: definido utilizando um objeto do tipo
SDO_POINT_TYPE, que contm os atributos X, Y e Z para
representar as coordenadas de um ponto. Somente preenchido se
a geometria for do tipo ponto, ou seja, se os dois ltimos nmeros
do SDO_GTYPE forem iguais a 01;
SDO_ELEM_INFO: um vetor de tamanho varivel que armazena as
caractersticas dos elementos que compem a geometria. As
coordenadas de cada elemento so armazenadas em um vetor

303
8. SGBD com extenses espaciais

varivel chamado SDO_ORDINATES e so interpretadas atravs de


trs nmeros armazenados no SDO_ELEM_INFO:
o SDO_STARTING_OFFSET: indica qual a posio da primeira
coordenada do elemento no SDO_ORDINATES;
o SDO_ETYPE: indica o tipo do elemento;
o SDO_INTERPRETATION: indica como o elemento
deve ser interpretado juntamente com o SDO_ETYPE.
SDO_ORDINATES: um vetor de tamanho varivel que armazena os
valores das coordenadas da geometria.
Como exemplo, mostraremos os comandos em SQL para gerar tabelas
para armazenar os atributos e as geometrias:
Dos distritos de So Paulo, mostrados na Figura 8.1
CREATE TABLE DistritosSP (
cod NUMBER(32) NOT NULL ,
sigla VARCHAR2(20),
denominacao VARCHAR2(200),
spatial_data MDSYS.SDO_GEOMETRY,
PRIMARY KEY (cod))
Dos bairros de So Paulo, mostrados na Figura 8.2.
CREATE TABLE BairrosSP (
geom_id NUMBER(32) NOT NULL,
bairro VARCHAR2(200),
distr VARCHAR2(200),
spatial_data MDSYS.SDO_GEOMETRY,
PRIMARY KEY (geom_id))
Do mapa de drenagem, mostrado na Figura 8.3
CREATE TABLE DrenagemSP (
geom_id NUMBER(32) NOT NULL,
classe VARCHAR2(100) NULL,
spatial_data MDSYS.SDO_GEOMETRY,
PRIMARY KEY (geom_id))
As tabelas criadas anteriormente contm colunas de tipos bsicos
como NUMBER e VARCHAR2 para armazenar atributos, e uma coluna
do tipo SDO_GEOMETRY para armazenar geometrias. Note que no
preciso especificar, na criao, o tipo de geometria que ser armazenado.

304
Oracle Spatial

Mostramos a seguir alguns exemplos de comandos SQL para inserir


dados nessas tabelas criadas:
INSERT INTO DistritosSP (cod, sigla, denominacao,
spatial_data) VALUES (1, 'VMR', 'VILA MARIA'
MDSYS.SDO_GEOMETRY(2003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY( 1, 1003, 1 ),
MDSYS.SDO_ORDINATE_ARRAY(6,10, 10,1, 14,10, 10,14, 6,10)))

INSERT INTO DrenagemSP ( geom_id, classe, spatial_data)


VALUES (1, 'RIO',
MDSYS.SDO_GEOMETRY(2002, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY( 1, 2, 1 ),
MDSYS.SDO_ORDINATE_ARRAY(10,10, 10,14, 6,10, 14,10)))

INSERT INTO BairrosSP ( geom_id, bairro, distr, spatial_data)


VALUES ( 1, 'JARDIM SHANGRILA', 'GRAJAU'
MDSYS.SDO_GEOMETRY(2001, NULL,
MDSYS.SDO_POINT_TYPE(32.628, 736.944, NULL ), NULL, NULL))
Observe que para incluir uma geometria atravs de um comando SQL
preciso montar um objeto SDO_GEOMETRY. Atravs do atributo
SDO_GTYPE, podemos identificar qual o tipo da geometria contida no
SDO_GEOMETRY. A geometria inserida na tabela DistritosSP um polgono
(SDO_GTYPE=2003), na DrenagemSP uma linha (SDO_GTYPE=2002) e na
BairrosSP um ponto (SDO_GTYPE=2001), todos bidimensionais. Alm
disso, todas as geometrias so formadas por um nico elemento cujo tipo
pode ser identificado atravs dos atributos SDO_ETYPE e
SDO_INTERPRETATION.
A Tabela 8.3 apresenta os tipos de elementos possveis. Note que a
primeira coordenada de um polgono tem que ser igual ltima, e seus
anis externos (SDO_ETYPE=1003) devem estar no sentido anti-horrio, e
os internos (SDO_ETYPE=2003), no sentido horrio. Nesse exemplo no
estamos usando o sistema de coordenadas fornecido pela extenso
(SDO_SRID=NULL).
Atravs de um comando SQL simples, possvel recuperar o objeto
SDO_GEOMETRY. A seguir mostraremos uma consulta e o resultado
retornado pelo Spatial:
SELECT spatial_data FROM DistritosSP
WHERE denominacao = 'PARELHEIROS'

305
8. SGBD com extenses espaciais

Resultado:
SPATIAL_DATA
--------------------------------------------------------
SDO_GEOMETRY(2003, NULL, NULL,
SDO_ELEM_INFO_ARRAY(1, 1003, 1),
SDO_ORDINATE_ARRAY(370139,955, 7408390,5, 369854,277,
7407971,06, 370014,832, 7408419,18, 370139,955, 7408390,5,
369854,277, 7407971,06, 370014,832, 7408419,18, 370139,955,
7408390,5))

Tabela 8.3 Tipos de elementos espaciais


SDO_ SDO_ Descrio do tipo
ETYPE INTERPRETATION
0 Nenhum valor Tipo no suportado
1 1 Ponto
1 n>1 Conjunto de n pontos
2 1 Linha formada por vrtices conectados por
segmentos retos
2 2 Linha formada por vrtices conectados por
arcos circulares
1003 ou 1 Polgono simples composto por vrtices
2003 conectados por segmentos retos
1003 ou 2 Polgono simples composto por vrtices
2003 conectados por arcos circulares
1003 ou 3 Retngulo otimizado composto por dois
2003 pontos
1003 ou 4 Crculo formado por trs pontos da
2003 circunferncia
4 n>1 Linha composta por alguns vrtices
conectados por segmentos de reta e outros por
arcos
1005 ou n>1 Polgono composto por alguns vrtices
2005 conectados por segmentos de reta e outros por
arcos

306
Oracle Spatial

O modelo MDSYS apresenta dois conjuntos de tabelas de metadados


que so utilizadas por funcionalidades internas da extenso, como por
exemplo, nas consultas espaciais:
Tabelas de metadados sobre geometrias armazenadas, chamadas
USER_SDO_GEOM_METADATA e ALL_SDO_GEOM_METADATA.
Tabelas de metadados sobre indexao espacial, chamadas
USER_SDO_INDEX_METADATA e ALL_SDO_INDEX_INFO.
As tabelas de metadados sobre geometrias armazenam, para cada
tabela espacial: o seu nome (TABLE_NAME); o nome da coluna de tipo
geomtrico (COLUMN_NAME); todas as dimenses das geometrias, cada uma
com um mnimo retngulo envolvente e uma tolerncia (DIMINFO); e o
sistema de coordenadas (SRID).
Sua estrutura mostrada a seguir:
TABLE_NAME VARCHAR2(32),
COLUMN_NAME VARCHAR2(32),
DIMINFO SDO_DIM_ARRAY,
SRID NUMBER
Aps criar e inserir os dados em uma tabela espacial, o usurio deve
registrar seu metadado. A seguir, mostraremos um exemplo de um
comando em SQL para inserir o metadado referente tabela espacial
DistritosSP criada anteriormente.
INSERT INTO USER_SDO_GEOM_METADATA
VALUES ( 'DistritosSP' ,'spatial_data' ,
MDSYS.SDO_DIM_ARRAY(
MDSYS.SDO_DIM_ELEMENT('X',275.9670,429.567,0.0005),
MDSYS.SDO_DIM_ELEMENT('Y',833.0355,582.15,0.0005)),
NULL)
Note que as geometrias armazenadas na tabela DistritosSP
possuem duas dimenses X e Y, portanto, existem duas entradas no vetor
SDO_DIM_ARRAY, uma para cada dimenso contendo seu mnimo
retngulo envolvente e sua tolerncia.
8.4.2 Indexao espacial
Indexao espacial, como qualquer outro tipo de indexao, fornece
mecanismos para limitar o conjunto de busca, aumentando assim a
performance das consultas e da recuperao dos dados espaciais. O
Spatial fornece dois tipos de indexao espacial, R-tree e Quadtree,

307
8. SGBD com extenses espaciais

podendo ser utilizados simultaneamente. Porm, o Oracle recomenda


fortemente o uso de R-tree ao invs de Quadtree, por causa do seu
desempenho. Mais informaes sobre tipos de indexao espacial podem
ser encontrados no captulo 6.
O usurio pode criar uma R-tree utilizando os parmetros default do
MDSYS ou especificando cada parmetro como, por exemplo, o tamanho
da memria utilizada e o nmero de dimenses a serem indexadas. A
sintaxe de um comando em SQL pra gerar uma R-tree com parmetros
default do MDSYS :
CREATE INDEX index_name ON table_name (spatial_column_name)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;
Como exemplo, mostraremos os comandos em SQL usados para gerar
os ndices espaciais das tabelas criadas anteriormente:
CREATE INDEX DistritosSP_IDX ON
DistritosSP(SPATIAL_DATA) INDEXTYPE IS
MDSYS.SPATIAL_INDEX

CREATE INDEX DrenagemSP_IDX ON


DrenagemSP (SPATIAL_DATA)
INDEXTYPE IS MDSYS.SPATIAL_INDEX

CREATE INDEX BairrosSP_IDX ON BairrosSP(SPATIAL_DATA)


INDEXTYPE IS MDSYS.SPATIAL_INDEX
Ao inserir, remover ou modificar geometrias de uma tabela, a
performance do ndice espacial gerado inicialmente pode ser degradada.
Para isso, a extenso fornece um conjunto de funes para avaliar a
performance dos ndices, como a funo
SDO_TUNE.QUALITY_DEGRADATION, e para reconstru-lo, usando o
comando ALTER INDEX REBUILD.
Aps a criao de ndices espaciais, a extenso atualiza,
automaticamente, as tabelas de metadados sobre indexao citadas na
seo 8.2.1.1. Essas tabelas so mantidas pela extenso e no devem ser
alteradas pelos usurios.
8.4.3 Consultas espaciais
O Oracle Spatial utiliza um modelo de consulta baseado em duas etapas,
chamadas de primeiro e segundo filtro, como mostrado na Figura 8.12. O
primeiro filtro considera as aproximaes das geometrias, pelo critrio do

308
Oracle Spatial

mnimo retngulo envolvente (MBR), para reduzir a complexidade


computacional. Este filtro de baixo custo computacional e seleciona um
subconjunto menor de geometrias candidatas, que ser passado para o
segundo filtro. O segundo filtro trabalha com as geometrias exatas, por
isso computacionalmente mais caro e s aplicado ao subconjunto
resultante do primeiro filtro. Retorna o resultado exato da consulta.

Figura 8.12 Modelo de Consulta.

Para executar consultas e operaes espaciais, o Oracle Spatial fornece


um conjunto de operadores e funes que so utilizados juntamente com
a linguagem SQL.
Os operadores, alguns mostrados na Tabela 8.4, so usados na
clusula WHERE e utilizam indexao espacial. Portanto, s podem ser
executados sobre colunas espaciais j indexadas. As funes, algumas
mostradas na Tabela 8.5, so definidas como subprogramas em PL/SQL,
e utilizadas na clusula WHERE ou em subconsultas, podendo ser
executadas sobre colunas espaciais no indexadas. Devido ao fato dos
operadores sempre explorarem a indexao, recomendvel us-los, em
lugar de funes, quando possvel.

Tabela 8.4 Principais operadores espaciais


Operador Descrio
SDO_FILTER Implementa o primeiro filtro do modelo de
consulta, ou seja, verifica se os mnimos retngulos
envolventes das geometrias tm alguma interao
entre si.
SDO_RELATE Avalia se as geometrias possuem uma determinada

309
8. SGBD com extenses espaciais

relao topolgica.
SDO_WITHIN_ Verifica se duas geometrias esto dentro de uma
DISTANCE determinada distncia.
SDO_NN Identifica os n vizinhos mais prximos de uma
geometria

A sintaxe de cada operador mostrada a seguir:


SDO_FILTER (geometry1 SDO_GEOMETRY,
geometry2 SDO_GEOMETRY)

SDO_RELATE (geometry1 SDO_GEOMETRY,


geometry2 SDO_GEOMETRY,
param VARCHAR2)

SDO_WITHIN_DISTANCE (geometry1 SDO_GEOMETRY,


aGeom SDO_GEOMETRY,
params VARCHAR2);

SDO_NN (geometry1 SDO_GEOMETRY,


aGeom SDO_GEOMETRY, param VARCHAR2,
[, number NUMBER]);
Os operadores SDO_FILTER e SDO_RELATE recebem os parmetros em
comum:
geometry1: uma coluna do tipo SDO_GEOMETRY de uma tabela que
deve estar indexada.
geometry2: um objeto do tipo SDO_GEOMETRY. Esse objeto pode ser
uma instncia em memria ou estar armazenado em alguma tabela
espacial, que no precisa ser indexada.
Alm dos parmetros citados anteriormente, o SDO_RELATE recebe
ainda o tipo da relao topolgica a ser computada (param), que pode ser
EQUAL, DISJOINT, TOUCH, INSIDE, COVERS, COVERREDBY,
OVERLAPBDYINTERSECT, ON, CONTAINS, OVERLAPBDYDISJOINT e
ANYINTERACT. Este operador baseado no Modelo de 9-Intersees
mostrado no capitulo 2.
Os operadores SDO_WITHIN_DISTANCE e SDO_NN recebem os
parmetros em comum:

310
Oracle Spatial

geometry1: uma coluna do tipo SDO_GEOMETRY de uma tabela que


deve estar indexada.
aGeom: uma instncia do tipo SDO_GEOMETRY.

Alm dos parmetros em comum, os operadores


SDO_WITHIN_DISTANCE e SDO_NN recebem outros, como a distncia a ser
considerada e o nmero de vizinhos que devem ser retornados. A
extenso ainda fornece alguns operadores que no sero abordados neste
capitulo, como por exemplo, SDO_JOIN, SDO_TOUCH, SDO_INSIDE,
SDO_ON, dentre outros.
As funes fornecidas pelo Spatial podem ser agrupadas em:
Relao (verdadeiro/falso) entre duas geometrias:
RELATE e WITHIN_DISTANCE.
Validao:
VALIDATE_GEOMETRY_WITH_CONTEXT,
VALIDATE_LAYER_WITH_CONTEXT.
Operaes sobre uma geometria:
SDO_ARC_DENSIFY, SDO_AREA, SDO_BUFFER, SDO_CENTROID,
SDO_CONVEXHULL, SDO_LENGTH, SDO_MAX_MBR_ORDINATE,
SDO_MIN_MBR_ORDINATE, SDO_MBR, SDO_POINTONSURFACE.
Operaes sobre duas geometrias:
SDO_DISTANCE, SDO_DIFFERENCE, SDO_INTERSECTION,
SDO_UNION, SDO_XOR.

Tabela 8.5 Algumas funes espaciais


Funo Descrio
SDO_BUFFER Gera uma nova geometria ao redor ou dentro de
uma outra, considerando uma distncia passada
como parmetro.
SDO_AREA Calculam, respectivamente, a rea e o permetro
SDO_ LENGTH ou comprimento de uma geometria.

SDO_DISTANCE Calcula a distncia entre duas geometrias.

311
8. SGBD com extenses espaciais

SDO_INTERSECTION Geram uma nova geometria resultante da


SDO_UNION interseo, unio e diferena, respectivamente,
SDO_DIFFERENCE entre outras duas.

Para exemplificar o uso desses operadores e funes, mostraremos os


comandos em SQL para executar as consultas dos cenrios de 1 a 5,
apresentados no incio desse captulo.
Cenrio 1 Essa consulta realizada sobre as geometrias da tabela
espacial MunicipiosSP. Para respond-la, podemos usar tanto o operador
SDO_RELATE quanto o operador SDO_TOUCH na clusula WHERE da SQL:
SELECT t1.nomemunicp
FROM MunicipiosSP t1, MunicipiosSP t2
WHERE SDO_RELATE (t1.spatial_data,
t2.spatial_data, 'mask=TOUCH') = 'TRUE'
AND t2.nomemunicp = 'SAO PAULO'

SELECT t1.nomemunicp
FROM MunicipiosSP t1, MunicipiosSP t2
WHERE
SDO_TOUCH (t1.spatial_data, t2.spatial_data) =
'TRUE' AND t2.nomemunicp = 'SAO PAULO'

Resultado:
nomemunicp nomemunicp nomemunicp
COTIA JUQUITIBA CAIEIRAS
ITAPECERICA DA SERRA ITAQUAQUECETUBA SAO BERNARDO DO CAMPO
EMBU-GUACU EMBU DIADEMA
SANTANA DE PARNAIBA TABOAO DA SERRA SAO CAETANO DO SUL
SANTO ANDRE BARUERI MAUA
GUARULHOS CAJAMAR FERRAZ DE VASCONCELOS
MAIRIPORA OSASCO POA
(21 rows)
Cenrio 2 Essa consulta realizada sobre as geometrias de duas tabelas
espaciais distintas, MunicipiosSP e DistritosSP. Podemos usar tanto o
operador SDO_RELATE quanto o operador SDO_TOUCH na clusula WHERE:
SELECT t1.nomemunicp
FROM MunicipiosSP t1, DistritosSP t2
WHERE SDO_RELATE (t1.spatial_data, t2.spatial_data,
'mask= TOUCH') = 'TRUE'
AND t2.denominacao = 'ANHANGUERA'

312
Oracle Spatial

SELECT t1.nomemunicp
FROM MunicipiosSP t1, DistritosSP t2
WHERE SDO_TOUCH (t1.spatial_data, t2.spatial_data) = 'TRUE'
AND t2.denominacao = 'ANHANGUERA'

Resultado:
nomemunicp nomemunicp
BARUERI OSASCO
SANTANA DE PARNAIBA CAIEIRAS
CAJAMAR
(5 rows)
Cenrio 3 Essa consulta utiliza a funo de agregao COUNT
juntamente com o operador SDO_RELATE ou SDO_INSIDE.
SELECT COUNT(*)
FROM BairrosSP t1, DistritosSP t2
WHERE SDO_RELATE (t1.spatial_data, t2.spatial_data,
'mask=INSIDE') = 'TRUE'
AND t2.denominacao = 'GRAJAU'

SELECT COUNT(*)
FROM BairrosSP t1, DistritosSP t2
WHERE SDO_INSIDE (t1.spatial_data, t2.spatial_data) =
'TRUE' AND t2.denominacao = 'GRAJAU'

Resultado:
count
52
(1 row)
Cenrio 4 Para realizar essa consulta utilizamos dois operadores
espaciais, SDO_BUFFER e SDO_RELATE. Para gerar o buffer, o operador usar
a tolerncia definida na tabela de metadados. Observe que o operador
SDO_RELATE recebe como parmetro a combinao de trs relaes
topolgicas.
SELECT t1.denominacao
FROM DistritosSP t1, DreanagemSP t2,
user_sdo_geom_metadata m
WHERE SDO_RELATE (t1.spatial_data,
SDO_GEOM.SDO_BUFFER(t2.spatial_data, m.diminfo, 3000),
'mask=INSIDE+TOUCH+ OVERLAPBDYINTERSECT')
= 'TRUE'
AND m.table_name = ' DreanagemSP '

313
8. SGBD com extenses espaciais

AND m.column_name = 'spatial_data'


AND t2.geom_id = 55
Resultado:
denominacao denominacao denominacao
AGUA RASA JAGUARA SANTANA
ALTO DE PINHEIROS JAGUARE SAO DOMINGOS
BARRA FUNDA LAPA SE
BELEM LIMAO TATUAPE
BOM RETIRO MOOCA VILA FORMOSA
BRAS PARI VILA GUILHERME
CANGAIBA PENHA VILA LEOPOLDINA
CARRAO PERDIZES VILA MARIA
CASA VERDE PIRITUBA VILA MATILDE
CONSOLACAO REPUBLICA VILA MEDEIROS
FREGUESIA DO O RIO PEQUENO
JACANA SANTA CECILIA
(34 rows)
Cenrio 5 Esta consulta utiliza a funo SDO_DISTANCE na
clusula WHERE.
SELECT t1.BAIRRO
FROM BairrosSP t1, BairrosSP t2
WHERE SDO_GEOM.SDO_DISTANCE (t1.spatial_data,
t2.spatial_data, 0.00005) < 3000
AND t2.bairro = 'BOACAVA'

Resultado:
bairro bairro bairro
ALTO DA LAPA PINHEIROS VILA INDIANA
ALTO DE PINHEIROS SICILIANO VILA IPOJUCA
BELA ALIANCA SUMAREZINHO VILA LEOPOLDINA
BUTANTA VILA ANGLO VILA MADALENA
BRASILEIRA
JAGUARE VILA HAMBURGUESA VILA RIBEIRO DE
BARROS
LAPA VILA IDA VILA ROMANA
(18 rows)

8.5 Leituras suplementares


Alm das extenses apresentadas neste captulo, ainda temos o IBM DB2
Spatial Extender (IBM, 2002), o Informix Spatial e Geodetic Datablade
(IBM, 2003) e a extenso do MySQL (Yarger et al, 1999).

314
Leituras suplementares

A extenso espacial deste ltimo SGBD encontra-se em construo


(MySQL AB, 2003). O seu projeto segue as especificaes da SFSSQL, e
os nicos recursos disponibilizados at o momento so os tipos de dados
espaciais semelhantes aos fornecidos pelo PostGIS (Point, LineString,
Polygon, MultiLineString, MultiPolygon, MultiPoint e
GeometryCollection) e o mecanismo de indexao atravs de R-Tree.
O quadro abaixo apresenta um resumo comparativo entre os SGBDs
com suporte espacial:

Tabela 8.6 Quadro Comparativo entre os SGBDs com Suporte


Espacial.
Recurso Oracle PostgreSQL PostgreSQL MySQL
Spatial comTipos comPostGIS
Geomtricos
Tipos espaciais SFSSQL Tipos SFSSQL SFSSQL
simples
Indexao R-Tree R-Tree R-Tree sobre R-Tree
espacial e nativa GiST
QuadTree ou
R-Tree sobre
GiST
Operadores Matriz 9- No Matriz 9- Em desenv.
topolgicos Intersees Intersees
DE
Operadores de Sim No Sim Em desenv.
conjuntos
Operador de Sim No Sim Em desenv.
buffer region
Transformao Sim No Sim No
entre sistemas
de coordenadas
Tabelas de Sim No Sim No
metadados das (diferente do (conforme
colunas OGIS) OGIS)
geomtricas

315
8. SGBD com extenses espaciais

Referncias

HELLERSTEIN, J. M.; NAUGHTON, J. F.; PFEFFER, A. Generalized


search trees for databases systems. In: international Conference in VLDB,
21., set. 1995, Zurich, Switzerland. Proceeding. San Francisco: Morgan
Kaufman, 1995, 562-573.
IBM. IBM DB2 Spatial Extender: user's guide and reference. Disponvel em:
<http://www.ibm.com.br>. Acesso em: jun. 2002.
IBM. Working with the geodetic and spatial datablade modules. Disponvel
em: <http://www.ibm.com>. Acesso em: out. 2003.
KERNIGHAN, B. W.; RITCHIE, D. M. C: a linguagem de programao -
padro ANSI. Brasil: Campus, 1990.
LASSEN, A. R. O., J.; OSTERBYE, K., 1998, Object Relational Modeling,
Centre for Object Technology (COT).
MURRAY, C., 2003, Oracle Spatial Users Guide and Reference 10g Release 1
(10.1), Redwood City, Oracle Corporation, p. 602.
MySQL AB. MySQL reference manual. Disponvel em:
<http://www.mysql.com>. Acesso em: nov. 2003.
RAMSEY, P. PostGIS manual. Disponvel em:
<http://postgis.refractions.net/documentation>. Acesso em: jan. 2002.
RAVADA, S.; SHARMA, J. Oracle8i Spatial: experiences with extensible
databases. In: International Symposium on Spatial Databases, 6., jul. 1999,
Hong Kong, China. Proceedings. Berlin: Springer-Verlag, 1999, p. 355-359.
REFRACTIONS Inc. GEOS API documentation. Disponvel em:
<http://geos.refrcations.net>. Acesso em: nov. 2003.
STONEBRAKER, M.; ROWE, L. A.; HIROHAMA, M. The implementation
of Postgres. IEEE Transactions on Knowledge and Data Engineering, v. 2,
n. 1, p. 125-142, mar. 1990.
URMAN, S. Oracle 9i Programacao PL/SqL. Rio de Janeiro: Editora Campos,
2002. 552 p.
VIVID SOLUTIONS. JTS technical specifications. Disponvel em:
<http://www.vividsolutions.com/jts/jtshome.htm>. Acesso em: nov. 2003.
YARGER, R. J.; REESE, G.; KING, T. MySQL & mSQL. EUA: O'Reilly, 1999.

316
9 Integrao e interoperabilidade entre fontes de dados
geogrficos

Marco Antonio Casanova


Daniela Francisco Brauner
Gilberto Cmara
Paulo de Oliveira Lima Jnior

9.1 Introduo
Este captulo aborda inicialmente o problema bsico de intercmbio de
dados geogrficos. Em seguida, apresenta um breve resumo da
arquitetura e das tecnologias relacionadas a integrao e
interoperabilidade no contexto de dados geogrficos, ilustrado com
exemplos. Focaliza ento a definio de mapeamentos entre fontes de
dados. Um exemplo simples ilustra as dificuldades encontradas para criar
mapeamentos entre fontes que apresentem heterogeneidade nos dados,
tanto em formato e estrutura, quanto em interpretao ou significado.
Por fim, o captulo trata da construo de mediadores capazes de
distribuir consultas entre diversas fontes e combinar os resultados
devolvidos em uma nica resposta para o usurio.
O Captulo 10 tratar em detalhe as questes de interoperabilidade
especificas para o contexto da Internet, enquanto que o Captulo 11
resumir as propostas do Open Geospatial Consortium (OGC)
endereando interoperabilidade.
A motivao para este e os prximos dois captulos nasce do crescente
volume de fontes independentes de dados geogrficos, interligadas entre
si, fato que abre uma oportunidade nica para intercmbio de dados em
tempo hbil, reduzindo custos e agilizando processos de deciso. No
entanto, para tal, as aplicaes devem ser capazes de interpretar e
processar dados oriundos de diversas fontes, bem como localizar e acessar
as prprias fontes.
Intercmbio de dados geogrficos

Referncias para problemas especficos sobre integrao e


interoperabilidade entre fontes de dados geogrficos encontram-se ao
longo do texto e sugestes para leitura adicional, ao final do captulo.

9.2 Intercmbio de dados geogrficos

9.2.1 Problemas inerentes ao intercmbio de dados geogrficos


Entendemos por intercmbio de dados a capacidade de compartilhar e
trocar informaes e processos entre diferentes usurios de informao. O
grande desafio do intercmbio de dados enfrentar a diversidade de
modelos conceituais1 dos SIGs disponveis no mercado. Esta diversidade
faz com que muitas organizaes produtoras de informao
georreferenciada sigam regras conceituais vinculadas ao sistema por elas
utilizado. O resultado um ambiente heterogneo, onde cada
organizao tem sua maneira de organizar a informao espacial.
A falta de modelos conceituais comuns acarreta problemas na troca de
dados entre organizaes utilizando SIGs distintos. Estes problemas
incluem distoro de dados, perdas de qualidade da informao e de
definies de atributos e informao sobre georreferenciamento. A tarefa
de compartilhamento de dados geogrficos deve envolver processos para
garantir que a informao no seja perdida ou corrompida na
transferncia, e ferramentas para prevenir inconsistncias resultantes de
conjuntos de dados redundantes. Dada a variedade de usurios e
diversidade do uso do dado espacial e sistemas de computao,
conveniente dispor de mecanismos de intercmbio para compartilhar
dados entre diferentes sistemas de computao.
Em SIGs, realizar intercmbio de dados no uma tarefa simples,
devido a complexidade da informao geogrfica envolvida, ocorrendo
incompatibilidades em vrios nveis. O problema vem sendo estudado em
diferentes nveis, como a converso entre formatos de dados prprios de
cada SIG, a converso entre semnticas de bancos de dados distintos e o

1
Segundo Thom (1998) entende-se por modelos conceituais a semntica do
funcionamento de cada SIG, e a maneira como os dados devem estar organizados.

318
9. Integrao e interoperabilidade

desenvolvimento ou uso de modelos gerais de dados geogrficos


propostos por diferentes organizaes.

9.2.2 Converso sinttica de dados geogrficos


O armazenamento dos dados geogrficos em um SIG organizado em
estruturas prprias que descrevem caractersticas dos dados, por exemplo,
coordenadas dos pontos que formam um polgono representando
geometricamente uma dada entidade geogrfica. As entidades geogrficas
possuem uma representao geomtrica ou geometria e atributos
associados. A geometria vetorial baseada nas primitivas: ponto, linha e
polgonos, que podem ser derivadas para formar estruturas mais
complexas. A Figura 9.1 mostra exemplos de geometrias vetoriais.

Figura 9.1 Geometrias vetoriais usadas em SIGs.


Normalmente a organizao dos dados nos SIGs distribuda em
camadas (layers ou planos de informao), onde cada camada
contm uma varivel geogrfica distinta, por exemplo uma imagem de
satlite de uma regio, os municpios desta regio, a sua geomorfologia,
ou hidrologia. Cada camada representada internamente em estruturas
lgicas prprias de cada SIG e armazenada em arquivos distintos de
acordo com o formato prprio do sistema utilizado. Este esquema de
codificao e os arquivos de sistema ou de exportao possuem uma
sintaxe prpria para descrever as entidades (geometria e atributos), ou
seja, a forma de escrever o dado. Consideramos este esquema prprio de
cada sistema para armazenar e documentar seus dados, o nvel sinttico.
Tradicionalmente, muito do trabalho realizado em intercmbio de
dados geogrficos trata de transformaes estruturais (Gardels, 1996). A
abordagem mais bsica a converso sinttica direta de formatos, que
procura realizar a interpretao e traduo dos arquivos de informao
geogrfica em diferentes formatos, permitindo que um sistema

319
Intercmbio de dados geogrficos

compreenda os dados provenientes de outros sistemas. Isto eficiente


desde que o desenvolvedor da converso tenha conhecimento dos
formatos envolvidos para no comprometer a qualidade dos dados no
processo de converso. Cada sistema tem sua prpria definio e
nomenclatura para as diferentes formas de geometria. A Figura 9.2
mostra dois trechos de arquivos em diferentes formatos de exportao. O
lado esquerdo um fragmento de um arquivo com extenso .E00
proveniente do software Arc/Info o da direita um fragmento de um
arquivo de extenso .MIF proveniente do software MapInfo. Ambos
descrevem uma mesma entidade, com a mesma geometria e as mesmas
coordenadas, mas com uma sintaxe prpria.

Figura 9.2 Arquivos diferentes - E00 x MIF

Entendendo a estrutura especfica de um formato, possvel escrever


um cdigo que trata as caractersticas de cada sistema envolvido,
viabilizando a converso ou importao direta, atingindo desta forma um
grau de interoperabilidade no nvel sinttico.
Por fim, cabe salientar que, apesar dos avanos no uso de
gerenciadores de dados geogrficos, a primeira gerao de SIGs possui
suporte limitado a banco de dados e utiliza arquivos para
armazenamento e exportao de dados espaciais, o que torna possvel
encontrar um acervo relevante de dados espaciais em arquivos de

320
9. Integrao e interoperabilidade

diferentes formatos. Assim, a abordagem mais bsica para intercmbio de


dados geogrficos a converso sinttica direta, que procura realizar a
traduo dos arquivos de informao geogrfica entre diferentes
formatos.
Para permitir este tipo de converso, os SIGs trabalham com duas
alternativas:
Oferecer um formato de exportao ASCII de fcil legibilidade,
como DXF (Autocad), MID/MIF (MapInfo), E00 (Arc/Info) e
SPR (Spring);
Documentar as estruturas de dados internas, como o caso do
SHP (ArcView).

9.2.3 Uso de metadados


Metadados so dados sobre os dados, descrevem o contedo, condio,
histrico, localizao e outras caractersticas do dado, (FGDC, 2001). O
objetivo do seu uso ter um mecanismo para identificar qual dado existe,
a sua qualidade, como acess-lo e us-lo. Assim, os metadados tratam a
interoperabilidade em nvel de gerenciamento da informao, facilitando
a recuperao de uma informao contida em um banco de dados.
Por exemplo, uma base de dados contendo mapas com a informao
sobre aptido climtica ao plantio de vrias culturas pode incluir, em seus
metadados, uma descrio referente ao tipo de cultura contido nos
mapas, por exemplo: Aptido climtica ao plantio de abacaxi ou Aptido
climtica ao plantio de algodo, o que identifica o tipo de cultura a que o
dado se refere, facilitando a consulta ao banco.
H propostas de padres nos Estados Unidos e no Canad (FGDC,
2001), com o objetivo de fornecer terminologia e definies comuns para
conceitos relacionados aos metadados geogrficos. A seguir descrevemos
a proposta do FDGC, como exemplo de esquema de metadados.
O FGDC (Federal Geographic Data Committee) um comit entre
agncias para promover a coordenao do uso, troca e disseminao de
dados espaciais nos EUA. O FGDC (2001) prope um padro que
especifica os elementos necessrios para suportar os principais usos de
metadados: ajudar a manter um investimento interno em dado espacial,
pelas organizaes; prover informao sobre o domnio de dados de uma

321
Intercmbio de dados geogrficos

organizao; prover informao para processar e interpretar dados


transferidos de uma fonte externa.
O padro estabelece um conjunto comum de terminologia e
definies para a documentao do dado geogrfico, incluindo elementos
para os seguintes tpicos: identificao, qualidade do dado, organizao
espacial do dado, referncia espacial, informao sobre entidade e
atributo, distribuio e referncia do metadado (NSDI, 1997).
O padro permite ao usurio saber: qual dado est disponvel, se o
dado atende suas necessidades especficas, onde achar o dado e como
acessar o dado. Muitos dados esto disponveis com este formato de
metadados nos EUA onde, estados, governos locais ou do setor privado
so incentivados a adotar o padro para documentar seus dados.
O FGDC tambm patrocina a criao de uma Clearinghouse (National
Geospatial Data Clearinghouse) um Website que guia usurios ao melhor
dado espacial para seus projetos por meio de pesquisa a metadados. A
inteno no centralizar todos os dados geogrficos em um local, mas
prover links na Internet para distribuir Websites onde os dados so
produzidos e mantidos. Gerenciadores documentam e disponibilizam
seus dados, de acordo com o padro, para a Clearinghouse, assim usurios
podem achar facilmente uma informao, o que promove
interoperabilidade entre organizaes.
Como sua nfase na disponibilidade da informao, o padro
FGDC no especifica a maneira pela qual a informao est organizada
nem o processo de transferncia. Com exceo da parte de entidades e
atributos, que pode revelar parte do significado do dado, as demais partes
no descrevem a semntica da informao espacial.
O grande problema da proposta do FGDC, e do uso de metadados em
geral, a excessiva nfase em informaes que descrevem o processo de
produo dos dados. Com relao sintaxe, o padro limita-se a indicar
qual o formato em que os dados esto disponveis. No aspecto semntico,
suas informaes so muito limitadas, pois o FGDC no adota o
modelo padro de geoinformao (campos e objetos). Adicionalmente,
o padro do FGDC reflete os compromissos inevitveis do projeto de
comit, pois requer uma excessiva quantidade de informaes (de
aplicao questionvel), com dezenas de formulrios.

322
9. Integrao e interoperabilidade

Em resumo, a substancial burocracia envolvida em adotar o padro


FGDC no se traduz em benefcios proporcionais. Estes fatos talvez
expliquem porque sua adoo ainda est limitada e porque o consrcio
OpenGIS prope seu prprio formato para metadados.

9.2.4 Uso de ontologias


O grande fator limitante de converso de dados so as diferenas de
entendimento entre comunidades de usurios distintas. Diferentes vises
da realidade geogrfica sempre existiro por pessoas com culturas
diferentes, pois a prpria natureza complexa e leva a percepes
distintas. Neste caso seria interessante conviver com estas diferentes
formas de conhecimento sobre a realidade e tentar criar mecanismos para
implementar e combinar diferentes vises, ou seja, representar o
conhecimento geogrfico no computador buscando interoperabilidade
pela equivalncia semntica dos conceitos entre sistemas distintos. Neste
sentido, so propostos trabalhos relacionados a Ontologias e seu uso para
interoperabilidade e concepo de SIGs baseados em Ontologias
(Fonseca et al., 2000).
A Ontologia uma disciplina filosfica que vem desde o estudo feito
por Aristteles sobre as categorias e a metafsica, e pode ser definida como
o estudo do Ser e de suas propriedades. Para a comunidade de
Inteligncia Artificial, ontologias so teorias que especificam um
vocabulrio relativo a um certo domnio (Fonseca et al., 2000) e
descrevem uma dada realidade usando o conjunto de premissas de
acordo com o sentido intencional das palavras deste vocabulrio.
O uso de ontologias no desenvolvimento e uso de sistemas de
informao leva ao que chamamos de Sistemas de Informao baseados
em ontologias (Guarino, 1998). Fonseca et al.,(2000) prope um SIG
baseado em ontologias, composto por um editor de ontologias, por um
servidor de ontologias, por ontologias especificadas formalmente e por
classes derivadas de ontologias. A Figura 9.3 mostra o esquema de um
SIG baseado em ontologias.

323
Intercmbio de dados geogrficos

Figura 9.3 Esquema de SIG baseado em ontologias (Fonseca et al.,


2000).

Na viso apresentada acima, os especialistas especificam formalmente


seu conhecimento em ontologias, que so administradas por um servidor
de ontologias. As ontologias so traduzidas para componentes de
software por tcnicas de orientao a objetos, constituindo um conjunto
de classes, gerenciadas por desenvolvedores de classes, que formam uma
estrutura hierrquica representando o mundo geogrfico (Fonseca et al.,
2000). Desenvolvedores de aplicaes utilizam o conhecimento traduzido
em componentes de software (classes) para criar SIGs que tambm
podem ser usados para troca de informaes. O servidor permite o
folheamento de ontologias e comunica-se com SIGs por meio de
mediadores responsveis por extrair informaes destes e criar instncias
das classes que vo conter tal informao e o conhecimento extrado das
ontologias.
Segundo Fonseca et al. (2000) a interoperabilidade semntica poderia
ser resolvida atravs do uso de classes derivadas de ontologias, onde toda
a manipulao de informaes seria feita baseada nas definies das
entidades geogrficas presentes nas ontologias.

324
9. Integrao e interoperabilidade

A interoperabilidade plena requer no s uma equivalncia sinttica


entre as entidades representadas pelos sistemas, mas inclui tambm a
equivalncia de conceitos e significados destas entidades. Por exemplo,
duas comunidades de informao podem utilizar nomes diferentes para o
mesmo conceito (como no caso de rio e curso de gua). Ou ainda,
um nico conceito para uma comunidade (i.e., rio) pode ser expresso
com nveis maiores de detalhe por outra (i.e., rios perenes, rios
temporrios, riachos). Neste sentido, necessrio que os formatos de
intercmbio de dados disponham de um mecanismo que suporte o
conceito de Ontologias e comunidades de informao geogrfica. Com
isto, interpretaes diferentes de uma mesma realidade geogrfica
possam ser identificadas e facilmente trocadas.

9.3 Estratgias para integrao e interoperabilidade e exemplos

9.3.1 Estratgias para integrao e interoperabilidade


As estratgias para tratar dos problemas de integrao e
interoperabilidade entre sistemas de informao geogrfica podem ser
classificadas em quatro categorias principais (Gupta et al., 1999).
A abordagem mais simples consiste em definir catlogos de metadados
e dicionrios geogrficos. Um catlogo de metadados armazena descries
de colees de dados armazenadas em diversas fontes (Nebert, 2002),
oferecendo servios de localizao, consulta e gerncia de metadados,
assim como servios de solicitao de dados, que so repassados s fontes.
Um catlogo, no entanto, tipicamente no armazena os dados em si.
Um dicionrio geogrfico (gazetteer) (Atkinson, 2002) define um
vocabulrio consistindo do identificador, localizao e parte dos atributos
dos geo-objetos de interesse. Um dicionrio geogrfico tipicamente cobre
uma regio bem definida, como um pas, por exemplo.
A estratgia de federao (Sheth e Larson, 1990) assume que as fontes
de dados mantm autonomia, mas cooperaram para oferecer suporte a
operaes globais, que acessam dados em mais de uma fonte. Uma
federao fracamente acoplada se a responsabilidade de criar e manter a
federao dos usurios, no existindo controle centralizado. J uma

325
Estratgias para integrao e interoperabilidade e exemplos

federao fortemente acoplada quando existe controle centralizado para


acesso s fontes de dados.
A estratgia de armazm de dados (data warehouse) (Miller e Han, 2001)
consiste em: (1) extrair os dados das diversas fontes; (2) transformar os
dados extrados para um modelo comum; (3) armazenar os dados
transformados em um nico repositrio. Este enfoque vivel quando o
nmero de fontes pequeno e relativamente estvel, no necessitando
constantes atualizaes nos dados extrados. O processo de transformao
pode se tornar particularmente difcil face heterogeneidade dos dados,
conforme j discutido na Seo 9.2.
A estratgia de mediao (Gupta et al., 1999) baseia-se em uma
arquitetura de 3 nveis: camada de adaptao, com as fontes de dados
acessadas atravs de adaptadores; camada de aplicao, com as aplicaes
que desejam acessar as fontes; camada de mediao, com um ou mais
mediadores, que registra as fontes de dados conhecidas, e processa as
consultas produzidas pelas aplicaes. A estratgia de mediao ser
discutida em detalhe na Seo 9.5.
Por fim, a estratgia hbrida combina a estratgia de armazm de dados
com mediao. Por exemplo, a arquitetura descrita em (Voisard e
Schweppe, 1998) considera 4 camadas: a camada de aplicao, que
recebe requisies das aplicaes; a camada de servios virtuais, que
oferece um viso uniforme do sistema (um banco de dados virtual); a
camada de servios concretos, que gerencia as tarefas dos vrios
componentes; e a camada de servios de sistema, que trata de servios
internos do sistema.

9.3.2 Exemplo de catlogo de metadados e dicionrio geogrfico


O projeto da Alexandria Digital Library (ADL) (Smith e Frew, 1995;
Smith, 1996; Frew et al., 2000) exemplifica a construo combinada de
um catlogo de metadados e de um dicionrio geogrfico, disponvel na
Web.
Os metadados para informao geo-referenciada combinam
elementos dos padres de metadados USMARC e FGDC (USMARC,
1976; FGDC, 2001), j discutido na Seo 9.2.3. O primeiro o padro
de metadados adotado para bibliotecas convencionais do governo dos

326
9. Integrao e interoperabilidade

EUA, enquanto que o segundo define metadados primariamente para


catalogar objetos geogrficos em formato digital, e adotado pelas
agncias do governo dos EUA. A especificao completa dos metadados
mantidos pela ADL contm cerca de 350 campos.
O dicionrio geogrfico da ADL contm nomes e caractersticas de
acidentes geogrficos oriundos do US Geological Survey's Geographic
Names Information System e do US Board of Geographic Names. O
primeiro lista o nome de cerca de 1,8 milhes de acidentes geogrficos,
organizados hierarquicamente em 15 categorias. J o segundo contm os
nomes de cerca de 4,5 milhes de acidentes geogrficos, inclusive
acidentes submarinos.
A arquitetura da ADL (ver Figura 9.4) segue um modelo de 3 nveis:
servidores ADL gerenciam as colees de dados; mediadores ADL
implementam servios sobre as colees de dados; clientes ADL oferecem
os servios aos usurios finais.
Mais detalhadamente, um servidor ADL responsvel por manter
uma coleo de metadados descrevendo os objetos catalogados e por
implementar os mecanismos de consulta aos metadados, de acordo com
os servios definidos pela ADL. Uma entrada no catlogo pode incluir
referncias a representaes digitais do objeto, disponveis online ou
offline, ou a representaes no-digitais. Os servidores so autnomos,
desde que ofeream os servios definidos pela ADL. Assim, uma
instituio pode implementar um servidor ADL e publicar os seus dados
atravs de um mediador ADL.
Um cliente ADL responsvel por oferecer os servios ADL aos
usurios finais, quer sejam usurios humanos ou agentes de software.
Um cliente ADL deve manter o estado das sesses e suportar interaes
complexas com os usurios finais.
A pea central da arquitetura o mediador ADL, que esconde a
heterogeneidade dos servidores ADL atravs de uma coleo de servios
padronizados, oferecidos aos clientes ADL. Estes servios so o cerne do
projeto, pois expem a funcionalidade pretendida para o catlogo e o
dicionrio geogrfico da ADL.
Os servios do mediador ADL no mantm estados de sesses. Ou
seja, cada chamada a um servio do mediador tratada como uma

327
Estratgias para integrao e interoperabilidade e exemplos

transao por si s, e qualquer relacionamento entre duas chamadas deve


ser codificado nos seus parmetros. Esta deciso de projeto simplifica a
implementao do mediador, mas torna mais difcil implementar
consultas que so refinadas em sucessivas interaes com o usurio.

Cliente

HTTP
cliente sesso, consulta, contedo,
colees, metadados

Controle user ID Gerador


log record de acesso session ID de mapas
KNF

Query Retrieval
Mapping Mapping
mediador
Query Result
Fanout Merge
SQL

Log da Acesso BD do
sesso log record Banco usurio

ODBC/SQL
servidores
Query Retrieval Query Retrieval Query Retrieval
View Views View Views View Views

Dicionrio geogrfico Catlogo (Outras colees)

Figura 9.4 Arquitetura da ADL (Frew et al., 2000).

9.3.3 Exemplo de armazm de dados geogrficos


O Projeto TerraServer (Barclay, 2000) exemplifica a construo de um
armazm de dados geogrficos, combinado com um dicionrio
geogrfico. O TerraServer representa o maior repositrio pblico de

328
9. Integrao e interoperabilidade

imagens de sensoriamento remoto e mapas topogrficos disponvel na


Web.
O TerraServer foi projetado para atender simultaneamente a milhares
de acessos atravs da Web. Um usurio pode pesquisar o repositrio de
quatro formas diferentes:
1. Clicando em um mapa de baixa resoluo da Terra, que indica
onde h dados armazenados no repositrio.
2. Indicando o nome de um local.
3. Indicando as coordenadas de interesse.
4. Selecionando o nome de um local de uma lista de locais bem
conhecidos.
O repositrio do TerraServer foi criado a partir de quatro fontes:
USGS Digital Ortho-Quadrangles (DOQ): imagens areas em cinza ou
infravervelho na resoluo de 1m. As imagens foram orto-retificadas
de tal forma que 1 pixel corresponde a 1m2. Este acervo cobre
aproximadamente 40% do territrio dos EUA, correspondendo a 3
milhes de quilmetros quadrados.
USGS Digital Raster Graphics (DRG): verses digitalizadas dos mapas
topogrficos do USGS. As imagens foram re-amostradas de tal forma
que 1 pixel corresponda potncia de 2 mais prxima. Este acervo
cobre todo o territrio dos EUA, correspondendo a 10 milhes de
quilmetros quadrados.
Imagens do SPIN-2: imagens em cinza na resoluo de 1,56m,
originrias de satlites militares russos. As imagens foram
rotacionadas, com o norte para cima, mas no esto orto-retificadas;
foram re-amostradas de tal forma que 1 pixel corresponde a 2m2. Este
acervo cobre parte da Europa Ocidental, EUA e o Oriente,
correspondendo a 1 milho de quilmetros quadrados.
Encarta Shaded Relief: mapa em cores naturais do globo terrestre,
indicando o relevo, obtido do CD-ROM da Enciclopdia Encarta. A
imagem cobre continuamente o globo entre +80 e -80 de latitude,
em uma resoluo de aproximadamente 1km2 por pixel.
A arquitetura do TerraServer segue as trs camadas usuais:
Cliente: um navegador normal que suporte HTTP 1.1 e HTML 3.2.

329
Estratgias para integrao e interoperabilidade e exemplos

Aplicao: processa as requisies HTTP , repassando-as ao servidor de


banco de dados.
Servidor de banco de dados: armazena os dados, servindo as requisies da
aplicao.
A aplicao gera pginas dinamicamente, em HTML 3.2, e as envia
ao navegador. Um usurio pode realizar operaes de aproximao,
afastamento e deslocamento nas imagens recebidas, sem necessidade de
recursos especiais.
O banco de dados armazena mapas e imagens recortados em unidades
menores, chamadas de blocos (tiles) nesta seo. Os blocos so agrupados
logicamente em colees contguas, chamadas de cenas. Os blocos so
indexados por tema, resoluo, cena e localizao.
O banco de dados mantm uma tabela para cada tema e resoluo.
Cada linha de cada uma destas tabelas contm os metadados de um bloco
e um campo do tipo BLOB (binary long object), armazenando o prprio
bloco, no formato JPEG ou GIF.
Cada bloco armazenado no banco de dados, redundantemente, em
resolues mais baixas, formando uma pirmide de 7 nveis (ver Captulo
13 para detalhes de armazenamento piramidal). O acervo do
USGS/DOQ compatvel com resolues de 1 a 64m; o acervo do
USGS/DRG, de 2 a 128m; e o acervo do SPIN, de 1 a 64m.
O banco de dados tambm armazena um dicionrio geogrfico,
permitindo ao usurio localizar cenas por nome de locais. O dicionrio
contm cerca de 1,5 milhes de nomes, incluindo sinnimos, e relaciona
cada nome com o sistema de coordenadas utilizado pelo TerraServer. O
dicionrio contm ao todo 4 milhes de linhas e ocupa 3.3 GB.
O TerraServer entrou em operao em junho de 1998 e atualmente
est entre os 1000 Web sites mais visitados. A mdia diria situa-se em:
perto de 40 mil visitas; 3,6 milhes de acessos a blocos; 69GB
transferidos.

9.3.4 Exemplo de mediador


A Misso ao Planeta Terra (Mission to Planet Earth - MTPE) um
programa da NASA para estudar processos ligados a mudanas

330
9. Integrao e interoperabilidade

climticas, a partir de dados gerados por inmeros satlites orbitando o


planeta Terra. O EOS Data and Information System (EOSDIS) (Kobler,
1995) o componente responsvel por prover acesso fcil e rpido aos
dados gerados no contexto do MTPE.
O EOSDIS um sistema distribudo, organizado em trs segmentos
principais: o Flight Operations Segment (FOS) gerencia e controla os
satlites e instrumentos do EOS; o Communications and System
Management Segment (CSMS) fornece a infraestrutura de comunicao e
gerncia do sistema; e o Science Data Processing Segment (SDPS) trata do
armazenamento, processamento e distribuio dos dados.
Em mais detalhe, o SDPS o componente do EOS responsvel por:
aquisio de dados brutos; gerao de dados derivados a partir dos dados
brutos; arquivamento e distribuio dos dados derivados aos usurios. O
SDPS est organizado em sete subsistemas principais:
Aquisio: recebe dados brutos e dispara processos para arquiv-los e
process-los.
Servidor de dados: fornece servios de arquivamento fsico e distribuio
de dados, via FTP ou mdia removvel.
Planejamento. fornece servios para planejamento das atividades.
Processamento: executa os processos para gerao de dados derivados.
Cliente: fornece uma interface para pesquisar e recuperar dados.
Interoperabilidade: fornece servios para pesquisar e localizar servios de
dados.
Gerncia de dados: fornece servios para localizar e acessar dados.
O projeto Misso ao Planeta Terra gera vrios Terabytes de dados
diariamente e acumula um volume total de dados que chega a vrios
Petabytes, em formatos prprios, coletivamente chamados HDF-EOS.
Portanto, o armazenamento e disseminao dos dados gerados representa
um substancial desafio.
O projeto NASA HDF-EOS Web GIS Software Suite (NWGISS) (Di et
al., 2001) visa exatamente tornar os dados gerados pelo EOSDIS
disponveis a outras aplicaes que sigam as especificaes do OGC (ver
Captulo 11 para um resumo dos padres definidos pelo OGC e
mencionados nesta seo). A arquitetura do NWGISS (ver Figura 9.5)

331
Estratgias para integrao e interoperabilidade e exemplos

consiste de trs componentes principais: um servidor de mapas; um


servidor de geo-campos (coverage server); e um servidor de catlogo. O
NWGISS inclui ainda um cliente OGC WCS.

Cliente compatvel com OGC


Protocolos OGC

Interface integrada para servios OGC


Geo-campo Mapa Descrio Metadados

Servidor de Servidor de XML Servidor de


geo-campos mapas Capability catlogo

arquivos HDF-EOS Gerador de descries Catlogo

Figura 9.5 Arquitetura do NWGISS.

O servidor de mapas do NWGISS implementa os servios definidos


no OGC WMS para todos os tipos de dados do formato HDF-EOS. Em
particular, gera o geo-referenciamento do mapa em tempo de execuo,
se necessrio. Da mesma forma, o servidor de geo-campos do NWGISS
implementa os servios definidos no OGC WCS para trs formatos de
dados, HDF-EOS, NITF e GeoTIFF. O servidor re-amostra, recorta e
remonta geo-campos em tempo real, bem como transforma geo-campos
de formato.
O cliente de geo-campos do NWGISS implementa a especificao do
cliente OGC WCS. O cliente atua como um mediador para acessar geo-
campos, nos formatos HDF-EOS, NITF e GeoTIFF, armazenados em
servidores OGC WCS, no se limitando ao servidor OGC WCS
implementado pelo NWGISS. O cliente permite acessar, visualizar, geo-
retificar, re-projetar e reformatar geo-campos.

332
9. Integrao e interoperabilidade

Como mediador, o cliente NWGISS bastante limitado pois permite


apenas selecionar geo-campos de mais de uma fonte, utilizando seus
descritores, e visualiz-los em conjunto, entre outras operaes.

9.4 Mapeamentos entre fontes de dados

9.4.1 Estratgias para definio de mapeamentos


Para interpretar e processar dados obtidos de diversas fontes, as
aplicaes devem ser capazes de tratar dados heterogneos, tanto em
formato e estrutura, quanto em interpretao ou significado. De fato, a
heterogeneidade estrutural e semntica so problemas que bancos de
dados distribudos vem enfrentando desde longa data (zsu e Valduriez,
1999).
Uma primeira estratgia para resolver o problema de tratar dados
heterogneos consiste em gerar mapeamentos entre pares de fontes de
dados. Esta estratgia torna-se impraticvel quando o nmero de fontes
aumenta, ou quando no se conhece priori as fontes disponveis.
Uma segunda estratgia prope uma descrio comunitria dos dados,
chamada esquema global ou federado, esquema mediado ou esquema de
referncia, dependendo do enfoque adotado para atingir
interoperabilidade (ver Seo 9.3.1). A esta descrio comunitria so
ento mapeadas as descries das fontes de dados, chamadas de esquemas
locais ou esquemas exportados, novamente dependendo do enfoque
adotado. Esta estratgia simplifica o problema pois evita criar
mapeamentos dois-a-dois entre os esquemas locais, mas ainda requer
que as fontes sejam conhecidas priori.
Uma terceira estratgia, proposta mais recentemente, adota ontologias
para formalizar o esquema de referncia e os esquemas locais. Utiliza
ainda tcnicas de alinhamento entre ontologias para simplificar a gerao
dos mapeamentos (Wache et al., 2001) (Uschold e Grninger, 2001)
(Mena et al. 2000).
Por fim, a definio dos mapeamentos entre as descries locais e a
descrio comunitria pode se beneficiar de uma anlise dos metadados
das fontes. Porm, segundo Haas & Carey (2003), a inexistncia de
metadados um dos motivos para o fracasso de tentativas para atingir

333
Mapeamentos entre fontes de dados

interoperabilidade entre fontes de dados. Alm disso, metadados no


necessariamente garantem a no ambigidade dos termos, pois um
mesmo termo pode ser usado em diferentes contextos, em diferentes
lnguas ou at mesmo de forma errnea. Uma possvel soluo seria
enfatizar o uso, uniforme e rigoroso, de metadados para completar a
descrio dos conceitos pertinentes s fontes de dados. A prpria
descrio comunitria pode atuar como um vocabulrio compartilhado,
servindo de referencial priori para a definio dos esquemas locais
(Brauner, 2005).

9.4.2 Exemplo de definio de mapeamentos


Esta seo exemplifica questes compartilhadas pelas estratgias de
federao, armazm de dados e mediao no que diz respeito definio
de mapeamentos.
Usaremos os termos esquema de referncia para designar a descrio
comunitria das fontes de dados e esquema local para descrever os dados
visveis em cada fonte de dados. Assumiremos que as descries contero
definies de classes de objetos, denotando conjuntos, e de propriedades
dos objetos, denotando funes mapeando objetos em objetos ou objetos
em valores de dados.
Adotaremos a notao de teoria de conjuntos quando necessrio.
Desta forma, evitaremos escolher um particular modelo de dados para
descrever os esquemas locais e o esquema de referncia.
Um esquema local descreve as classes e propriedades dos dados que
uma fonte deseja compartilhar, e o esquema de referncia descreve as
classes e propriedades dos dados oferecidos aos usurios como uma viso
unificada das fontes. O esquema de referncia contm ainda
mapeamentos entre as classes e propriedades do esquema de referncia e
as classes e propriedades de cada fonte.
H dois problemas que devem ser tratados na definio dos
mapeamentos:
identificao de objetos: como definir uma forma universal de identificar
os objetos nas vrias fontes e, em particular, como identificar a
ocorrncia do mesmo objeto em fontes diferentes.

334
9. Integrao e interoperabilidade

transformao das propriedades: como re-mapear os valores das


propriedades oriundos de uma ou mais fontes para o esquema de
referncia, ou entre si.
Como exemplo, considere duas fontes de dados, FA e FB, descrevendo
aeroportos. Suponha que o esquema local EA da fonte FA contenha (onde
C o conjunto de caracteres adotado e denota o conjunto dos nmeros
reais):
(1) classes: Aeroporto
propriedades: Cdigo: Aeroporto C3
Cidade: Aeroporto C50
Loc: Aeroporto 2
e que o esquema local EB da fonte FB contenha:
(2) classes: Airport
propriedades: Code: Airport C3
Name: Airport C20
Coord: Airport 2
Considere que o esquema de referncia ER contenha:
(3) classes: R-Aeroporto
propriedades: R-Cdigo: R-Aeroporto C3
R-Loc: R-Aeroporto 2
R-Nome: R-Aeroporto C20
Suponha que as propriedades Cdigo, de EA, e Code, de EB, de fato
armazenem os cdigos universais dos aeroportos, com trs caracteres. O
mapeamento entre ER, EA e EB pode ento ser definido, por exemplo,
como:
(4) R-Aeroporto =
{xAeroporto / y(yAirport Cdigo(x) = Code(y))}
(5) (xAeroporto)(R-Cdigo(x) = Cdigo(x))
(6) (xAeroporto)(R- Loc(x) = Loc(x))
(7) (xAeroporto)( R-Nome(x) = n
(yAirport)(R-Cod(x) = Code(y) Name(y) = n))
Note que a sentena (4) indica que a classe R-Aeroporto de ER
definida com base na classe Aeroporto de EA. Assim, um aeroporto s

335
Mapeamentos entre fontes de dados

estar disponvel atravs do esquema de referncia se e somente se for um


aeroporto cadastrado na fonte FA, por fora da forma como o
mapeamento foi definido (ver sentena (4)). Portanto, um aeroporto
cadastrado na fonte FB que no existir na fonte FA no ser visvel atravs
de ER.
Assim, as sentenas (5) e (6) podem transferir diretamente as
propriedades de aeroportos definidas em EA para o esquema de referncia
ER. Note que, arbitrariamente, ER no contm a cidade do aeroporto. De
fato, em geral, o esquema de referncia no a unio dos esquemas
locais.
A sentena (7) mais complexa pois a fonte FB pode conter aeroportos
no cadastrados na fonte FA. Portanto, necessrio verificar se o
aeroporto existe na fonte FA ao transferir a propriedade Name de EB para
o esquema de referncia ER.
Assuma agora que as propriedades Cdigo e Code no representem os
cdigos universais dos aeroportos. Isto impediria identificar diretamente,
via o cdigo, quando dois aeroportos nas fontes FA e FB so o mesmo
aeroporto. No entanto, se assumirmos que as propriedades Loc e Coord
contm as coordenadas dos aeroportos no mesmo sistema de geo-
referenciamento, ento podemos substituir a sentena (7) por:
(8) (xAeroporto)( R-Nome(x) = n
(yAirport)(Prox(Loc(x),Coord(y)) Name(y) = n))
onde Prox uma relao de proximidade espacial que verdadeira se e
somente se dois pontos no espao tiverem as mesmas coordenadas dentro
de uma certa tolerncia.
De fato, a adoo de um sistema universal de geo-referenciamento
oferece tambm um sistema universal de identificao de objetos
geogrficos, ou pelo menos permite definir relacionamentos universais
entre objetos geogrficos.
Se assumirmos agora que as propriedades Loc e Coord contm as
coordenadas dos aeroportos em sistemas de geo-referenciamento
distintos, mas h suficiente informao nos metadados de Loc e Coord
sobre os sistemas adotados, ento devemos substituir a sentena (7) por:

336
9. Integrao e interoperabilidade

(9) (xAeroporto)( R-Nome(x) = n


(yAirport)(Prox(Remap(Loc(x)), Coord(y)) Name(y) = n))
onde Remap uma funo que re-mapeia as coordenadas dadas por Loc
para o sistema de geo-referenciamento adotado para Coord.
Este um exemplo simples do problema de transformao das
propriedades, no contexto de dados geogrficos. A Seo 9.3.3 apresenta
outros exemplos, quando discute a fase de transformao dos dados.

9.5 Construo de mediadores

9.5.1 Arquitetura de mediadores


Conforme adiantado na Seo 9.3.1, uma particular estratgia para
integrar um conjunto de fontes de dados heterogneas baseia-se na
construo de um sistema de mediao com uma arquitetura em 3
camadas (ver Figura 9.6):
Camada de Aplicao: compreende as aplicaes que desejam acessar as
fontes.
Camada de Mediao: contm um ou mais mediadores fornecendo servio
de mediao para fontes de dados. Um mediador centraliza
informaes fornecidas por adaptadores, criando um esquema mediado
das fontes de dados. O mediador tambm decompe as consultas
submetidas pelas aplicaes em consultas a serem executadas pelos
adaptadores, e rene os resultados parciais para formar a resposta
consulta original.
Camada de Adaptao: contm os adaptadores responsveis pelo acesso s
fontes de dados. Cada adaptador esconde a heterogeneidade da fonte
de dados, tornando o acesso fonte transparente para o mediador.
Para cada fonte de dados existe um adaptador que exporta algumas
informaes sobre a fonte, tais como: seu esquema, informaes sobre
seus dados e sobre seus recursos para processamento das consultas.
Ao participar de um sistema de mediao, uma fonte de dados, atravs
do seu adaptador, deve ser capaz de expor um esquema exportado,
descrevendo os dados que deseja tornar visveis. Deve tambm oferecer
servios que permitam: (1) processar consultas sobre o esquema
exportado; (2) transformar os resultados locais para os padres definidos

337
Construo de mediadores

para intercmbio de dados no sistema de mediao; e (3) aceitar


temporariamente dados externos, convertendo-os para o formato local.
Por sua vez, o sistema de mediao deve ser capaz de expor um
esquema mediado com a descrio comunitria dos dados, sobre o qual as
aplicaes definiro consultas ao sistema. O sistema deve ser capaz de
executar consultas definidas sobre o esquema mediado, aplicando as
transformaes necessrias sobre os dados geogrficos, alm dos servios
usuais para definio e controle da execuo de sub-consultas s fontes
de dados, combinao dos resultados e reestruturao dos dados
convencionais. Esta seo aborda estes pontos em separado, seguindo
(Gupta et al., 2000).

Camada de
Aplicao

MediadorB
Camada de
MediadorA Mediao

Adaptador1 Adaptador2 Adaptador3 Camada de


Adaptao
SGBD SGBD Sistema de
Relacional OO arquivos

Figura 9.6 Arquitetura mediador-adaptador (Gupta et al., 2000).

9.5.2 Servios de adaptao

Acesso ao esquema exportado


Uma fonte de dados, atravs do seu adaptador, deve ser capaz de expor
um esquema exportado, descrevendo os dados que deseja tornar visveis,

338
9. Integrao e interoperabilidade

e o mapeamento entre este esquema e o esquema mediado. No caso de


dados geogrficos, o esquema exportado deve conter substancialmente
mais informao para os atributos geogrficos, conforme discutido a
seguir.
Seja Q uma consulta sobre o esquema mediado. O mediador utiliza
os esquemas exportados e os mapeamentos existentes no esquema
mediado para selecionar fontes de dados e decompor Q em sub-consultas
a serem enviadas s fontes selecionadas.
O processo de escolha das fontes dever levar em considerao o custo
de converter os dados geogrficos armazenados em cada fonte para o
formato adequado para processar a consulta. Diferentemente de dados
convencionais, este custo poder ser bastante alto e variar
substancialmente de fonte para fonte, inclusive quanto preciso do
processo de converso. Portanto, cada esquema exportado e o esquema
mediado devem conter informao adicional sobre os atributos
geogrficos para subsidiar a deciso da escolha da fonte e da
transformao necessria.
Em geral, cada atributo geogrfico G deve estar associado a um
esquema de representao, semelhante noo de measurement framework
definida em (Chrisman, 1997). O esquema de representao de G pode
associar dois tipos de informao a G: (1) metadados, de forma
semelhante aos esquemas de metadados discutidos na Seo 9.2.3 em
outro contexto; (2) outros atributos cujos valores so necessrios para
interpretar o valor de G. O esquema de representao pode estar
diretamente associado a G, ou ser herdado do objeto O ao qual G se
aplica, ou da coleo de objetos a que pertence O. A Seo 9.5.4
apresenta exemplos do processamento de consultas em um mediador que
utiliza esquemas de representao.

Processamento de consultas sobre o esquema exportado


Uma fonte de dados, atravs do seu adaptador, deve ser capaz de
processar consultas sobre o esquema exportado, devolvendo os resultados
no formato definido pelo mediador.
O formato utilizado pelo mediador para passar uma consulta para o
adaptador deve ser especificado priori, quando o sistema de mediao

339
Construo de mediadores

criado. Por exemplo, o sistema de mediao pode adotar o padro WFS,


definido pela OGC (ver Captulo 11), que especifica como as consultas
devem ser passadas para as fontes de dados.

Transformao de dados
Uma fonte de dados, atravs do seu adaptador, deve ser capaz de aplicar
transformaes aos dados antes de envi-los ao mediador.
A transformao mais bsica consiste em converter os dados locais
para o formato de intercmbio de dados adotado pelo sistema de
mediao. Por exemplo, o sistema de mediao pode adotar o padro
GML, definido pela OGC (ver Captulo 11), que especifica um formato
de transporte para dados geogrficos.
De forma geral, uma transformao de dados qualquer funo
f: DnR em que os argumentos de f representam tanto dados
armazenados na fonte, quanto parmetros governando a transformao a
ser aplicada aos dados.
Junto com a interface da transformao, o adaptador deve expor um
modelo de custo, a ser utilizado pelo mediador ao montar o plano de
processamento de uma consulta. Em geral, o modelo de custo captura a
complexidade computacional da transformao, em funo dos
parmetros de entrada e de uma estimativa do volume de dados recebidos
como entrada e do volume de dados produzidos pela transformao.

9.5.3 Servios de mediao

Acesso ao esquema mediado


O mediador deve ser capaz de expor o esquema mediado s aplicaes, e
fornecer meios para mant-lo. Em particular, deve permitir o
cadastramento de uma nova fonte de dados, com seu esquema exportado
e mapeamento para o esquema mediado.
As questes levantadas pela exposio do esquema mediado s
aplicaes so semelhantes quelas relativas exposio do esquema
exportado. Em particular, o esquema mediado deve associar cada
atributo geogrfico G a um esquema de representao.

340
9. Integrao e interoperabilidade

Processamento de consultas sobre o esquema mediado


Um mediador deve ser capaz de processar consultas sobre o esquema
mediado, devolvendo os resultados nos formatos solicitados pelas
aplicaes.
O mediador executa os seguintes passos ao processar uma consulta Q
definida sobre o esquema mediado:

Seleo de fontes:
baseando-se nos mapeamentos armazenados no esquema mediado
e nos atributos utilizados na consulta, o mediador seleciona
conjuntos de fontes capazes de produzir o resultado da consulta.
Otimizao:
para cada conjunto de fontes, o mediador utiliza os mapeamentos
do esquema mediado para criar um plano, contendo sub-consultas
de tal forma que cada uma possa ser inteiramente processada por
uma fonte no conjunto, e que juntas produzam o resultado da
consulta original.
o mediador estima o custo de processamento de cada plano e
escolhe o de menor custo estimado.
Execuo:
o mediador controla a execuo do plano escolhido no passo de
otimizao.
Outras estratgias mais sofisticadas envolvendo transferncias
temporrias de dados de uma fonte para outra, por exemplo, podem ser
definidas de forma similar s estratgias de otimizao de consultas
utilizadas em um banco de dados distribudo (zsu e Valduriez, 1999).

Servios adicionais
Um mediador pode utilizar as informaes sobre as fontes de dados que
armazena para oferecer servios adicionais s aplicaes.
Um primeiro exemplo de servio adicional seria prover uma interface
abrangente para que os usurios ou aplicaes possam explorar o
esquema mediado, incluindo os metadados mantidos sobre as fontes de

341
Construo de mediadores

dados. Desta forma, o mediador atuaria de forma semelhante a um


catlogo de metadados, conforme ilustrado na Seo 9.3.2 e discutido em
detalhe (Brauner, 2005).
Um exemplo deste tipo de servio adicional, designado por
processamento cooperativo de consultas, consistiria em aplicar
transformaes nas consultas submetidas para: corrigir as consultas;
resolver ambigidades; gerar consultas alternativas, quando a consulta
submetida falha; fornecer explicaes sobre as respostas; complementar
as consultas fornecendo informao adicional explicitamente solicitada.

9.5.4 Exemplos de processamento de consultas sobre o esquema


mediado
Considere duas fontes de dados, FA e FB, descrevendo aeroportos.
Suponha que os esquemas sejam definidos da seguinte forma:
(10) Esquema exportado por FA:
classes: Aeroporto
propriedades: Cdigo: Aeroporto C3
Cidade: Aeroporto C50
Loc: Aeroporto 2
Rudo: Aeroporto 22
onde
Cdigo o cdigo universal de 3 letras identificando os aeroportos
nos diversos pases;
Rudo(x) associa um geo-campo vetorial a cada aeroporto x
representando o nvel de rudo no entorno do aeroporto, e
armazenado como uma grade regular de amostras pontuais
(indicado na funo apenas como um conjunto de pontos no 2 ,
assumindo que o espaamento da grade o mesmo para todos os
aeroportos);
(11) Esquema exportado por FB:
classes: Airport
propriedades: Code: Airport C3
Name: Airport C20
Coord: Airport 2
Noise: Airport (2)

342
9. Integrao e interoperabilidade

onde
Code um cdigo prprio da fonte FB (ou seja, no o cdigo
universal);
Noise(x) associa um geo-campo vetorial a cada aeroporto x
representando o nvel de rudo no entorno do aeroporto, e
armazenado como curvas de nvel (representadas como elementos
do conjunto (2));
(12) Esquema mediado EM :
classes: R-Aeroporto
propriedades: R-Cdigo: R-Aeroporto C3
R-Loc: R-Aeroporto 2
R-Nome: R-Aeroporto C20
R-Rudo: R-Aeroporto 22 ()
onde
R-Rudo(x) = (g,c) se e somente se g for a grade regular com
amostras de rudo do aeroporto x, dada pela fonte FA, e c for a
curva de nvel do rudo do aeroporto x, se este for cadastrado na
fonte FB, ou for o conjunto vazio, em caso contrrio:
Considere ainda os seguintes mapeamentos, idnticos aos da Seo
9.4.2:
(13) R-Aeroporto =
{xAeroporto / y(yAirport Cdigo(x) = Code(y))}
(14) (xAeroporto)(R-Cdigo(x) = Cdigo(x))
(15) (xAeroporto)(R- Loc(x) = Loc(x))
(16) (xAeroporto)(R-Nome(x) = n
(yAirport)(Prox(Remap(Loc(x)), Coord(y)) Name(y) = n))
e um ltimo mapeamento capturando o significado pretendido para R-
Rudo:
(17) (xAeroporto)(R-Rudo(x) = (Rudo(x),c)
((yAirport)(Prox(Remap(Loc(x)), Coord(y))) c = Noise(y)))
(yAirport)(c = )))

Considere a seguinte consulta:

343
Construo de mediadores

Q1 : Qual o nome e a localizao do aeroporto com cdigo GIG?


O mediador proceder ento da seguinte forma:
Seleo de fontes:
de (14), (15) e (16), o mediador necessita acessar as duas fontes.
Otimizao:
novamente de (14), (15) e (16), o mediador decompe Q1 em duas
sub-consultas, Q1A e Q1B, a serem enviadas a FA e FB,
respectivamente:
Q1A : Selecione a localizao p=Loc(x) do aeroporto x
tal que Cdigo(x)=GIG
Q1B : Selecione o nome n=Name(y) do aeroporto y
tal que Prox(p, (Coord(y)))
considere um nico plano:
P1 : Envie Q1A fonte FA;
Espere o resultado contendo a localizao p do aeroporto;
Re-mapeie a localizao p para o sistema adotado na fonte FB,
gerando uma nova representao p da localizao do
aeroporto.
Envie Q1B fonte FB;
Espere o resultado contendo o nome n do aeroporto;
Devolva a resposta (n,p);
Execuo:
o mediador executa o plano P1.
Esta breve descrio deixa em aberto um ponto importante.
necessrio que o mediador tenha acesso ao esquema de representao de
Loc e Coord para que possa re-mapear p do sistema de geo-
referenciamento de FA para o sistema de FB. Da mesma forma, o
adaptador da fonte FB, ou a prpria fonte FB, deve ter acesso ao esquema
de representao de Coord para poder computar apropriadamente o
relacionamento Prox.
Caso este segundo problema no possa ser resolvido por FB ou seu
adaptador, o mediador deve gerar um plano alternativo, substituindo a
qualificao Prox(p, (Coord(y))) por dist(p, (Coord(y))<k, onde o

344
9. Integrao e interoperabilidade

mediador decide o valor de k a partir dos esquemas de geo-


referenciamento de Loc e Coord.
Considere agora a seguinte consulta:
Q2 : Obtenha o nvel de rudo, em curvas de nvel, do aeroporto
na localizao p.
O mediador proceder ento da seguinte forma:
Seleo de fontes:
de (17), o mediador pode acessar qualquer uma das duas fontes.
Otimizao:
novamente de (17), h pelo menos 4 planos possveis.
O primeiro plano acessa a fonte FA atravs da consulta:
Q2A1 : Selecione o nvel de rudo C=Rudo(x) do aeroporto x
tal que Loc(x)=p
O plano consiste de:
P2A1 : Envie Q2A1 fonte FA;
Espere o resultado contendo o nvel de rudo C do aeroporto;
Transforme (no mediador) C para curvas de nvel C;
Devolva a resposta C;
O segundo plano acessa a fonte FA atravs da consulta, que j
inclui a transformao:
Q2A2 : Selecione o nvel de rudo C=Rudo(x) do aeroporto x
tal que Loc(x)=p, re-mapeando-o para curvas de nvel
O plano consiste de:
P2A2 : Envie Q2A2 fonte FA;
Espere o resultado contendo o nvel de rudo C do
aeroporto; Devolva a resposta C;
O terceiro plano acessa a fonte FB atravs da consulta:
Q2A1 : Selecione o nvel de rudo D=Noise(x) do aeroporto x
tal que Coord(x)=p
O plano consiste de:
P2B1 : Re-mapeie p para p no sistema adotado em FB;
Envie Q2B1 fonte FB;

345
Construo de mediadores

Espere o resultado com o nvel de rudo C do aeroporto;


Se existir, devolva C como resposta;
Caso contrrio, execute o plano P2A;
O quarto plano acessa a fonte FB atravs da consulta:
Q2A2 : Selecione o nvel de rudo D=Noise(x) do aeroporto x
tal que Coord(x)=Remap(p)
O plano consiste de:
P2B2 : Envie Q2B2 fonte FB;
Espere o resultado com o nvel de rudo C do aeroporto;
Se existir, devolva C como resposta;
Caso contrrio, execute o plano P2A1 (ou o plano P2A2);
o mediador deve estimar o custo de processar os planos e escolher
um deles.
Execuo:
execute o plano escolhido no passo de otimizao.
Novamente, a descrio deixa vrios pontos em aberto. Por exemplo,
os planos P2A1 e P2A2 diferem na capacidade do mediador e do adaptador
de FA transformarem o geo-campo armazenado em FA de uma grade
regular para curvas de nvel. Dependendo da capacidade de cada um
destes componentes, um dos dois planos prevalecer.
Alm disto, esta transformao pode ser muito mais cara do que tentar
acessar diretamente a curva de nvel armazenada em FB, mesmo correndo
o risco de no encontrar o aeroporto em FB e ter que recorrer a FA de
qualquer maneira. Portanto, os planos P2B1 e P2B2 podem ser muito mais
eficientes do que os primeiros dois planos.
Da mesma forma, os planos P2B1 e P2B2 diferem em qual componente
realizar a converso de p para o sistema de geo-referenciamento adotado
por FB.
Em qualquer um dos casos, novamente necessrio que o mediador
tenha acesso aos esquemas de representao de Rudo e Noise para
decidir qual dos planos vivel, ou de menor custo.

346
9. Integrao e interoperabilidade

9.6 Leituras Suplementares


Recomenda-se inicialmente um estudo da srie de padres relativos a
dados geogrficos publicados pela International Standards Organization
(ISO):
ISO 19115 Geographic Information Metadata standard
ISO 19107:2003 Geographic Information Spatial Schema
ISO 19109 Geographic Information Rules for Application
Schema
ISO 19110 Geographic Information Methodology for Feature
Cataloguing
ISO 19111:2003Geographic Information Spatial Referencing by
Coordinates
ISO 19112:2003 Geographic Information Spatial Referencing by
Geographic Identifier
Em particular, o ISO 19115 define um esquema de metadados para
descrever informao geogrfica e servios. O modelo em UML deste
padro est disponvel como o ISO TC211 Harmonized Model. Estes
padres podem ser encontrados sob forma de ontologias em Islam et. al.
(2004).
H vrias ontologias bastante interessantes definindo vocabulrios
geogrficos. Duas delas merecem destaque:
CYC Geographic Vocabulary, disponvel em:
http://www.cyc.com/cyc-2-1/vocab/geography-vocab.html
Alexandria Digital Library Feature Type Thesaurus, disponvel em:
http://www.alexandria.ucsb.edu/gazetteer/FeatureTypes/ver070302
/index.htm)
Descries de vrias arquiteturas e tecnologias para facilitar a
integrao e interoperabilidade entre fontes de dados geogrficos podem
ser encontradas na literatura.
Abordagens gerais para o problema de integrao e interoperabilidade
cobrem desde catlogos de dados geogrficos a mediadores capazes de
processar consultas a fontes distintas (Abel at al., 1998) (DeVogele et al.,
1998) (Bishr, 1998) (Laurini, 1998) (Jacobsen e Voisard, 1998)

347
Leituras Suplementares

(Bergmann et al., 2000) (Tanin et al., 2002). Enfoques baseados em


XML ou em Web services podem ser encontrados em (Gupta et al., 1999)
(Gupta et al., 2000) (Alameh, 2003) (Manpuria et al., 2003). H
inmeras iniciativas baseadas nos padres do OGC, como (Boucelma et
al., 2002) (Essid et al., 2004), para citar algumas referncias. Mais
recentemente, vrias abordagens para construo de mediadores baseadas
em ontologias foram propostas na tentativa de explorar o maior poder de
expresso das linguagens para descrever ontologias e as tecnologias para
alinhamento de ontologias (Mena et al., 2000; Wiegand e Zhou, 2001).
As reas de armazm de dados e minerao de dados espaciais
merecem ateno especial pelo potencial das aplicaes. Um ponto de
partida o livro texto de Miller e Han (2001).

348
9. Integrao e interoperabilidade

Referncias
ABEL, D. J.; OOI, B. C.; TAN, K.-L.; TAN, S. H. Towards integrated
geographical information processing. International Journal of Geographical
Information Science, v. 12, n.4, p. 353-371, 1998.
ALAMEH, N. Chaining Geographic Information Web Services. IEEE Internet
Computing archive, v. 7, n.5, p. 22-29, 2003.
ATKINSON, R. F., J., 2002, Gazetteer Service Profile of the Web Feature
Service Implementation Specification, Open Geoscience Consortium.
BARCLAY, T.; GRAY, J.; SLUTZ, D. Microsoft TerraServer: A Spatial Data
Warehouse. ACM SIGMOD Record, v. 29, n.2, p. 307-318, 2000.
BERGMANN, A.; BREUNIG, M.; CREMERS, A. B.; SHUMILOV, S.
Towards an Interoperable Open GIS. In: International Workshop on
Emerging Technologies for Geo-Based Applications. Ascona, Switzerland,
2000. p. 283-296.
BISHR, Y. Overcoming the semantic and other barriers to GIS interoperability.
International Journal of Geographical Information Science, v. 12, n.4, p.
299-314, 1998.
BOUCELMA, O.; LACROIX, Z. E. M. A WFS-Based Mediation System for
GIS Interoperability. In: 10th ACM international Symposium on Advances
in Geographic Information Systems. McLean, VA, USA, 2002. p. 23-28.
BRAUNER, D. F. Uma Arquitetura para Catlogos de Objetos baseados em
Ontologias. Rio de Janeiro: Pontifcia Universidade Catlica do Rio de
Janeiro, 2005.Departamento de Informtica., 2005.
CHRISMAN, N. Exploring Geographic Information Systems. New York:
John Wiley & Sons, 1997.
DEVOGELE, T. P., C.; SPACCAPIETRA, S. On spatial database integration.
International Journal Geographical Information Science, v. 12, n.4, p. 335-
352, 1998.
DI, L.; YANG, W.; DENG, M.; DENG, M.; MCDONALD, K. The prototype
NASA HDF-EOS Web GIS Software Suite (NWGISS). In: NASA Earth
Science Technologies Conference. Greenbelt, Maryland, USA, 2001. p.
ESSID, M.; BOUCELMA, O.; COLONNA, F. M.; LASSOUED, Y. Query
Processing in a Geographic Mediation System. In: 12th Annual ACM
International Workshop on Geographic Information Systems. ACM Press
New York, Washington DC, USA, 2004. p. 101-108.

349
Referncias

FEDERAL GEOGRAPHIC DATA COMMITTEE (FGDC). Content


Standard for Digital Geospatial Metadata WorkBook. Reston, VA.
Disponvel em: <http://www.fgdc.gov/metadata/constan.html>.
FONSECA, F.; EGENHOFER, M.; BORGES, K. Ontologias e
Interoperabilidade Semntica entre SIGs. In: Workshop Brasileiro em
Geoinformtica (GeoInfo2000), 2., So Paulo, 2000. Anais. So Jos dos
Campos: INPE, 2000. p. 45 - 52.
FREW, J.; FREESTON, M.; FREITAS, N.; HILL, L.; JANE, G.;
LOVETTE, K.; NIDEFFER, R.; SMITH, T.; ZHENG, Q. The Alexandria
Digital Library architecture. International Journal on Digital Libraries, v.
2, n.4, p. 259-268, 2000.
GARDELS, K. The Open GIS Approach to Distributed Geodata and
Geoprocessing. In: Third International Conference/Workshop on
Integrating GIS and Environmental Modeling. Santa Fe, NM, USA, 1996.
p. 21-25.
GUARINO, N. Formal ontology and information systems. Amsterdam,
Netherlands: IOS Press, 1998, p.3-15.
GUPTA, A.; MARCIANO, R.; ZASLAVSKY, I.; BARU, C. Integrating GIS
and Imagery through XML-Based Information Mediation. In: International
Workshop on Integrated Spatial Databases. Portland, ME, USA, 1999. p.
211.
GUPTA, A.; ZASLAVSKY, I.; MARCIANO, R. Generating Query Evaluation
Plans within a Spatial Mediation Framework. In: 9th International
Symposium on Spatial Data Handling. Beijing, China, 2000. p. 8a18-8a31.
HAAS, L.; CAREY, M. Will federated databases ever go anywhere? In: Lowell
Database Research Self-Assessment Meeting. Lowell, Massachusetts, USA,
2003.
ISLAM, A.S.; BERMUDEZ, L.; BERAN, B; FELLAH, S.; PIASECKI, M,
Ontologies for ISO Geographic Information Standards.
http://loki.cae.drexel.edu/~wbs/ontology/2004/09/bug/iso-19115/index.htm
JACOBSEN, A. H.; VOISARD, A. CORBA Based Open Geographic
Information Systems. In: European Conference on Parallel and Distributed
Systems. 1998. p.
KOBLER, B.; BERBERT, J.; CAULK, P.; HARIHARAN, P. C. Architecture
and design of storage and data management for the NASA Earth observing
system Data and Information System (EOSDIS). In: 14th IEEE
Symposium on Mass Storage Systems. Monterey, California, USA, 1995. p.
65.

350
9. Integrao e interoperabilidade

LAURINI, R. Spatial multi-database topological continuity and indexing: a step


towards seamless GIS data interoperability. International Journal of
Geographical Information Science, v. 12, n.4, p. 373-402, 1998.
MANPURIA, V.; ZASLAVSKY, I.; BARU, C. Web Services for Accuracy-Based
Spatial Query Rewriting in a Wrapper-Mediator System. In: Fourth
International Conference on Web Information Systems Engineering
Workshops (WISEW'03). Rome, Italy, 2003. p. 63-71.
MENA, E.; ILLARRAMENDI, A.; KASHYAP, V.; SHETH, A. OBSERVER:
An Approach for Query Processing in Global Information Systems based on
Interoperation across Pre-existing Ontologies. International Journal on
Distributed And Parallel Databases (DAPD), v. 8, n.2, p. 223-272, 2000.
MILLER, J. H.; HAN, J. Geographic Data Mining and Knowledge Discovery.
Bristol, PA, USA: Taylor & Francis, Inc., 2001.
NATIONAL SPATIAL DATA INFRASTRUCTURE (NSDI). Geospatial
Metadata. Disponvel em: <http://www.fgdc.gov/publications/documents/
metadata/metafact.pdf>.
NEBERT, D., 2002, Catalog Services Specification, Version 1.1.1, OpenGIS
Implementation Specification, Open Geoscience Consortium.
ZSU, M. T.; VALDURIEZ, P. Principles of distributed database systems.
Prentice-Hall, Inc., 1999.
SHETH, A.; LARSON, J. Federated database systems for managing
distributed, heterogeneous and autonomous databases. ACM Computing
Surveys, v. 22, n.3, p. 183-236, 1990.
SMITH, T. R. A Digital Library for Geographically Referenced Materials.
IEEE Computer, v. 29, n.5, p. 54-60, 1996.
SMITH, T. R.; FREW, J. Alexandria Digital Library. Communications of the
ACM, v. 38, n.4, p. 61-62, 1995.
TANIN, E.; BRABEC, F.; SAMET, H. Remote Access to Large Spatial
Databases. In: 10th ACM International Symposium on Advances in
Geographic Information Systems. McLean, Virginia, USA, 2002. p. 5-10.
THOM, R. Interoperabilidade em geoprocessamento: Converso entre
modelos conceituais de sistemas de informao geogrfica e comparao
com o padro OpenGIS. 1998. 196 f. (INPE-7266-TDI/708). Dissertao
(Mestrado em Computao Aplicada) Instituto Nacional de Pesquisas
Espaciais, 1998.
USCHOLD, M.; GRNINGER, M. Ontologies: Principles, methods and
applications. Knowledge Engineering Review, v. 11, n.2, p. 93 -155, 2001.

351
Referncias

USMARC, 1976, A MARC Format, in OFFICE, L. O. C. M. D., ed.,


Washington, D.C., Library of Congress Information Systems Office.
VOISARD, A.; SCHWEPPE, H. Abstraction and Decomposition in
Interoperable GIS. International Journal of Geographic Information
Science, v. 12, n.4, p. 315 - 333, 1998.
WACHE, H.; VGELE, T.; VISSER, U.; STUCKENSCHMIDT, H.;
SCHUSTER, G.; NEUMANN, H.; HBNER, S. Ontology-Based
Integration of Information A Survey of Existing Approaches. In: IJCAI-01
Workshop: Ontologies and Information Sharing. Seattle, WA, USA, 2001. p.
108 -117.
WIEGAND, N.; ZHOU, N. Ontology-Based Geospatial XML Query System.
In: 4th AGILE Conference on Geografical Information Science. 2001.

352
10 Disseminao de dados geogrficos na Internet

Clodoveu A. Davis Jr.


Ligiane Alves de Souza
Karla A. V. Borges

10.1 Introduo
Este captulo explora diversas possibilidades de disseminao de dados
geogrficos atravs da Internet. Apresenta inicialmente a arquitetura de
trs camadas, tpica de sistemas de informao baseados na Web. Em
seguida, discute as trs principais formas de disseminao de dados
geogrficos: (1) a disseminao direta, usando caractersticas grficas
tpicas dos browsers, complementadas ou no por ferramentas e recursos
adicionais; (2) as bibliotecas digitais de informaes geogrficas; e (3) uma
viso da emergente rea de infra-estruturas de dados espaciais. Por fim,
tece algumas consideraes finais, destacando principalmente o outro lado
da disseminao de dados geogrficos na Internet: os mecanismos de
busca voltados para localizao e dados geogrficos.
A Internet rapidamente se tornou o meio preferencial para
disseminao de dados. Sua (quase) universalidade, associada a custos de
acesso cada vez mais baixos, motivou o desenvolvimento de toda uma
nova classe de sistemas de informao, com uma arquitetura diferenciada
em relao a seus predecessores.
Esse movimento se estende aos dados geogrficos: atualmente, todos os
principais fornecedores de software para SIG dispem de alternativas para
acesso a dados geogrficos atravs da Web. Apesar dessa forte tendncia,
constata-se uma grande variedade de estilos de implementao, recursos
tecnolgicos e arquiteturas internas das solues, cada qual refletindo um
conjunto de preocupaes e voltada para um nicho de aplicao mais ou
menos especfico.
10. Disseminao de dados geogrficos na Internet

De forma coerente com a multiplicidade cultural da Internet, todas as


alternativas encontram-se em uso, cada qual em seu nicho; no se pode
apontar uma nica alternativa tecnolgica vencedora, ou preponderante
sobre todas as demais. Existe ainda muito espao para a expanso dessa
rea de conhecimento e do mercado dela decorrente.

10.2 Arquitetura de sistemas de informao baseados na Web


A arquitetura dos SGBD acompanhou, de modo geral, as tendncias de
descentralizao e modularizao observadas nas arquiteturas de hardware
(Elmasri e Navathe, 2004).
Na era dos mainframes, os SGBD eram igualmente monolticos,
incluindo todas as funes de acesso aos dados no mesmo ambiente em
que eram processadas as aplicaes e produzidas as telas de interface com
o usurio.
Com a queda dos preos dos equipamentos e ascenso dos
computadores pessoais, passamos a ter a possibilidade de transferir parte
do processamento para um equipamento que era, anteriormente, um
mero terminal burro. Isso levou ao desenvolvimento da arquitetura
cliente/servidor, inicialmente concebida no apenas para o gerenciamento
de dados, mas para que se pudesse dispor de mquinas capazes de prestar
qualquer tipo de servio especializado em uma rede de computadores, tais
como gerenciamento de impresso, de arquivos, de backup, entre outros
(Figura 10.1).
Nessa arquitetura, os processos relacionados com o acesso do usurio
aos servios so chamados processos cliente, enquanto os processos que
lidam com os recursos especializados so denominados processos servidor.
Observe que essa denominao frequentemente confundida com a
designao de computadores de maior ou menor porte o que s vezes se
justifica pois, na maioria dos casos, equipamentos encarregados de
executar processos servidores para uma grande quantidade de processos
cliente precisariam, em princpio, ser mais robustos e poderosos.

354
Arquitetura de sistemas de informao baseados na Web

Cliente Cliente Cliente Cliente

Rede Local

Servidor Servidor Servidor


de impresso de arquivos de backup

Figura 10.1 Arquitetura cliente/servidor (2 camadas). Fonte: adaptado de


(Elmasri e Navathe, 2004).

A arquitetura cliente-servidor adapta-se bem s necessidades de SGBD,


e est hoje totalmente incorporada aos produtos comerciais. Nesse caso, o
servidor de banco de dados prov, como servio, respostas a consultas
enviadas por processos cliente. Por esse motivo, em SGBD relacionais, o
servidor de banco de dados tambm denominado servidor de consultas, ou
servidor SQL (Elmasri e Navathe, 2004).
Assim, de acordo com a arquitetura cliente-servidor aplicada aos
SGBD, a camada do cliente fica com as funes de gerenciamento da
interface com o usurio, de dicionrio de dados, de interfaceamento com
linguagens de programao, entre outras, em um nvel mais alto.
A camada do servidor gerencia as funes de armazenamento em disco,
controle de concorrncia, backup e recuperao de dados, e outras funes
de mais baixo nvel (Figura 10.2).
Entre essas duas camadas, a comunicao ocorre por meio do
estabelecimento de uma conexo atravs da rede. Uma das alternativas
para essa conexo o uso de um padro de conectividade, denominado
Open Database Connectivity (ODBC), que neutraliza, por meio de uma
interface comum de programao (ou API, Application Programming
Interface), as diferenas entre os diversos programas envolvidos, desta
forma evitando a incompatibilidade. Um padro de conectividade

355
10. Disseminao de dados geogrficos na Internet

semelhante, denominado JDBC, foi criado para que clientes escritos na


linguagem Java pudessem tambm acessar os SGBD por meio de uma
interface padronizada.

Cliente Cliente Cliente Cliente

Rede Local

Servidor de Servidor de
Banco de Dados Banco de Dados

Figura 10.2 Arquitetura cliente/servidor aplicada a SGBD. Fonte: adaptado de


(Elmasri e Navathe, 2004).

A arquitetura cliente-servidor original tem sido denominada


arquitetura de duas camadas, j que seus componentes esto logicamente
distribudos entre dois nveis, o do cliente e o do servidor. A simplicidade e
a facilidade de adaptao de arquiteturas anteriores para o funcionamento
em duas camadas justificam sua grande popularidade. Por outro lado, sua
escalabilidade pode deixar a desejar, caso exista a necessidade de se ter um
nmero muito grande de clientes para um servidor. Isso levou
proposio e implementao da arquitetura de trs camadas, tipicamente
empregada em sistemas baseados na Web.
A arquitetura de trs camadas acrescenta, entre a camada do cliente e a
camada do servidor, uma camada intermediria, que recebe o nome de
middleware, ou servidor de aplicaes (application server) (Figura 10.3). Em
bancos de dados, essa camada responsvel por manter regras de negcio,
restries e outros elementos necessrios para a aplicao. Desta forma, a
as trs camadas so compostas, basicamente, de interface com o usurio

356
Disseminao direta

(cliente), regras de negcio (aplicao) e acesso a dados (servidor). Como


um servidor de aplicao pode tambm controlar o acesso de usurios aos
dados, e rotear as requisies para algum servidor selecionado por ele sem
a interferncia do usurio, a arquitetura de trs camadas possibilita
melhorar sensivelmente a escalabilidade dos sistemas de informao
apoiados em um SGBD.

Camada 1
Cliente: interface
humano-computador,
browser

Camada 2
Servidor de aplicao ou
servidor Web: programas
aplicativos, regras de
negcio, pginas Web

Camada 3
Servidor de bancos de
dados: SGBD,
armazenamento

Figura 10.3 Arquitetura de trs camadas. Fonte: adaptado de (Elmasri e


Navathe, 2004).

10.3 Disseminao direta


A World-Wide Web (Web) foi originalmente concebida, de forma bastante
despretensiosa para os padres atuais, para trabalhar com documentos
contendo texto, e eventualmente imagens (Berners-Lee et al., 1994). De
fato, alm da possibilidade de navegao usando hipertexto, os primeiros
clientes de servidores Web os hoje onipresentes browsers permitiam
apenas a apresentao de imagens simples, em formato GIF ou JPEG. O
protocolo HyperText Transfer Protocol (HTTP) e a linguagem de

357
10. Disseminao de dados geogrficos na Internet

marcao HyperText Markup Language (HTML), base do funcionamento


da Web, permitem a elaborao, o preenchimento online e o envio do
contedo de formulrios de cliente para servidor, provendo assim alguma
interatividade, embora bem mais limitada que os recursos usualmente
encontrados em aplicaes grficas convencionais.
Ao longo da evoluo da Web, algumas alternativas para acesso a dados
geogrficos foram sendo implementadas dentro dessas limitaes. A
evoluo dos padres ligados Internet, capitaneados pelo World-Wide
Web Consortium (W3C)1, acompanhados pela evoluo tecnolgica na
rea de sistemas distribudos, possibilitou uma enorme ampliao dessas
alternativas, em particular aps o surgimento da linguagem Java (Sun
Microsystems, 1994). Apresentamos, nas subsees a seguir, as principais
alternativas utilizadas histrica e atualmente para disseminao de dados
geogrficos atravs da Web.

10.3.1 Mapas estticos em formato de imagem


A forma mais bsica de disseminao de dados geogrficos na Web ,
naturalmente, a publicao de mapas estticos em formato de imagem,
embutidas em pginas Web. Apesar de a interatividade ser nula, possvel
produzir e manter disponveis, para consulta e referncia histrica,
grandes conjuntos de mapas temticos. A existncia de documentos
eletrnicos contendo mapas estticos possibilita o desenvolvimento de
esforos de preservao (Thomaz, 2004) independentes dos bancos de
dados de onde (espera-se) eles tenham se originado. A Figura 10.4
apresenta um exemplo de uso dessa alternativa.

1
http://www.w3c.org

358
Disseminao direta

Figura 10.4 Mapa esttico, publicado em formato JPEG. Fonte: Web site do
Ministrio dos Transportes (www.transportes.gov.br)

10.3.2 Mapas gerados a partir de formulrios


Muito adotada na segunda metade da dcada de 1990, esta alternativa
consiste em oferecer ao usurio um formulrio para preenchimento. Neste
formulrio so solicitadas informaes quanto regio geogrfica de
interesse (muitas vezes solicitando uma referncia explcita a um nmero
de mapa em uma coleo ou articulao), composio do mapa
(camadas que deveriam aparecer) e mesmo alguns elementos de
composio visual (cores, espessura de linhas, cores ou hachuras de
preenchimento). Quando o usurio termina o preenchimento do
formulrio, as informaes so transmitidas a um servidor, que recupera
os dados necessrios e converte o mapa final para um formato de imagem,
como GIF ou JPEG. Esta imagem ento inserida numa pgina Web
criada dinamicamente, e transmitida para o usurio.
Considerando um nvel mnimo de interatividade, esta alternativa
talvez a mais natural do ponto de vista dos browsers, uma vez que requer
apenas a apresentao de imagens. No entanto, uma alternativa
limitada, por diversos motivos. Em primeiro lugar, porque no permite
que o usurio navegue pelo mapa, interagindo diretamente com os objetos
apresentados, sem que haja a necessidade de re-gerao da imagem. Alm
disso, a transmisso de imagens apresenta um compromisso entre

359
10. Disseminao de dados geogrficos na Internet

tamanho, qualidade e resoluo, por um lado, e a velocidade de


transmisso, pelo outro. Por fim, existe o problema de sobrecarga no
servidor, que precisa construir o mapa em formato matricial, muitas vezes
a partir de dados vetoriais, e transmiti-lo para o cliente. Este ltimo fator
claramente reduz a escalabilidade dessa soluo. Observe que qualquer
operao simples, como zoom ou pan, exige a formao de um novo mapa-
imagem (sempre com processamento no servidor) e nova transmisso.
Um exemplo desse tipo de recurso est apresentado parcialmente na
Figura 10.5, referente a um gerador de mapas do United States Geological
Survey (USGS). Alm de prover as coordenadas de um retngulo
envolvente para a rea que deseja visualizar, o usurio deve decidir sobre
(1) acrescentar ou no uma borda ao redor da rea escolhida, (2) a
maneira de lanar pontos sobre o mapa, (3) a incluso ou no de dados
topogrficos, (4) o lanamento de texto sobre o mapa, indicando as
coordenadas onde faz-lo, (5) a incluso ou no de limites polticos, e (6) a
incluso ou no de rios. Apenas ento o usurio pode clicar um boto e
disparar o processo de montagem da imagem.

Figura 10.5 Mapa baseado em formulrio. Fonte:


http://stellwagen.er.usgs.gov/mapit/. O gerador de mapas baseado na
biblioteca de cdigo aberto GMT (http://gmt.soest.hawaii.edu/).

360
Disseminao direta

10.3.3 Navegao baseada em mapas-chave


Outra alternativa para acesso a dados geogrficos na Web a que
apresenta para o usurio um mapa chave, em formato de imagem. O
usurio deve indicar com o mouse uma regio de seu interesse, gerando
uma navegao para outro mapa ou imagem mais detalhado, ou clicar em
cones perifricos imagem para navegar para regies adjacentes,
mantendo a escala de visualizao. Eventualmente, podem existir cones
que ativam funes mais sofisticadas, como medio na tela, identificao
de elementos ou ativao/desativao de camadas.
Esta abordagem permite um grau um pouco maior de flexibilidade,
mas no resolve os problemas principais da alternativa anterior, ou seja,
custos de processamento e transmisso, alm de no resolver
completamente o problema de navegao. O grau de interatividade com o
usurio baixo, j que, nesse modelo, no h interao direta entre o
usurio e um banco de dados propriamente dito, apenas com o que seria a
materializao, em formato de imagem, de um instantneo (snapshot) de
parte do contedo do banco. No exemplo apresentado na Figura 10.6, a
barra de atividade que aparece no centro da tela indica que o servidor est
compilando o mapa em formato de imagem para envio ao cliente, na
prxima etapa da interao.

Figura 10.6 Navegao baseada em mapas-chave. Fonte: Web site do IBGE,


servidor de mapas (www.ibge.gov.br).

361
10. Disseminao de dados geogrficos na Internet

Outro exemplo apresentado na Figura 10.7, este o mapa digital do


municpio de Porto Alegre, desenvolvido usando o software gratuito e de
fonte aberto MapServer (mapserver.gis.umn.edu). A Figura 10.7a
apresenta uma tela inicial, em que o usurio informa parmetros para
uma consulta. O resultado aparece na Figura 10.7b.

(a) (b)
Figura 10.7 Mapa digital oficial de Porto Alegre, desenvolvido com MapServer.

10.3.4 Transmisso de dados vetoriais


Uma alternativa mais interessante do que a transmisso de imagens a
transmisso de objetos geogrficos com representao vetorial. Desta
maneira, o usurio fica livre para decidir a regio de interesse, bem como
para ativar ou desativar as camadas que deseja.
Os objetos vetoriais transmitidos so mantidos na memria da
mquina cliente, para que possam ser reaproveitados no caso de operaes
de zoom ou pan, ganhando tempo para aumentar a interatividade. O
usurio pode tambm interagir diretamente com os objetos do mapa,
consultando atributos e acessando funes de atualizao de dados.
Outra possibilidade interessante a aplicao ao mapa vetorial do
conceito de hipermapa, simulando nos smbolos e objetos vetoriais
disponveis a operao dos links de hipertexto comuns nas pginas da
Web. Por exemplo, bastaria clicar sobre o smbolo de um hospital num

362
Disseminao direta

mapa urbano para consultar seus atributos associados, ou para navegar


diretamente para a pgina do hospital na Internet.
A transmisso de dados geogrficos em formato vetorial pela Internet
tem um obstculo: nenhum dos browsers atuais est preparado
(nativamente) para receber e apresentar informaes neste formato. Para
que isso seja possvel, existem duas alternativas. A primeira, adotada por
alguns desenvolvedores de SIG, consiste em criar um plug-in, ou seja, um
programa que funciona no computador do usurio, conectado ao browser.
Este plug-in reconhece os dados vetoriais medida em que chegam,
geralmente agrupados em um arquivo com formato padronizado, ou
usando um formato especfico de codificao de objetos, e os exibe na tela.
Esta alternativa tem a desvantagem de exigir que o usurio faa o
download dos plug-ins a partir do site do desenvolvedor e os instale. Como
os plug-ins so especficos para os principais browsers do mercado, que
esto em constante evoluo, preciso atualiz-los periodicamente. Em
uma variao mais drstica desta alternativa, existem browsers completos,
desenvolvidos pelos fabricantes de software para SIG, construdos em
torno da transmisso de dados vetoriais. A Figura 10.8 apresenta um
exemplo.

Figura 10.8 Visualizao composta utilizando plug-in ActiveX de um software


comercial. Fonte: http://geo.sampa.prodam.com.br.

363
10. Disseminao de dados geogrficos na Internet

Outra alternativa consiste em criar uma aplicao (applet) na


linguagem Java (Fonseca e Davis, 1999), que transmitida no momento
do acesso e executada na mquina do usurio, dispensando procedimentos
complicados de instalao ou mesmo a ocupao de rea em disco. A
aplicao desaparece da mquina do usurio no momento em que
desativada. Assim, novas verses no precisam ser distribudas, pois
estaro disponveis instantaneamente a partir do momento de sua
instalao no servidor. Os dados so recebidos e tratados objeto por objeto,
facilitando a implementao de caches locais. Cada objeto precisa ser
transmitido uma nica vez, sendo que operaes posteriores de zoom ou
pan podem apenas utilizar os dados j presentes na cache.
Este tipo de arquitetura j foi inclusive proposta como modelo de
interoperabilidade (Fonseca e Davis, 1997) (Fonseca e Davis, 1999).
Atualmente, implementada por diversos produtos, dentre os quais o
ALOVmap, um publicador de mapas gratuito que pode funcionar tanto
isolado em um computador, quanto atravs de um servidor Web (Figura
10.9).

Figura 10.9 Mapa do Afeganisto apresentado pelo software ALOVmap.


Fonte: http://alov.org/Afgan/afgan.html.

364
Disseminao direta

Figura 10.10 JUMP: Java Unified Mapping Platform, um aplicativo para


visualizao e manipulao de dados geogrficos na Internet. Fonte:
www.jump-project.org.
Outro exemplo o projeto Java Unified Mapping Platform (JUMP),
um produto de fonte aberto para visualizao e manipulao de dados
geogrficos atravs da Internet, e que conta com suporte a alguns dos
principais padres do OGC (ver Captulo 11), como a linguagem GML e
o modelo de objetos (Figura 10.10).
Em 2004, o W3C (organismo de padronizao da WWW) aprovou a
especificao final da linguagem Simple Vector Graphics (SVG) (World-
Wide Web Consortium (W3C, 2000), atravs da qual possvel apresentar
grficos vetoriais usando um browser comum. Atualmente, esse tipo de
recurso exige a instalao de um plug-in, pois o padro muito recente e
ainda no foi incorporado s verses atualmente em uso dos browsers.
A linguagem SVG baseada em XML, assim como a linguagem
Geography Markup Language (GML), esta padronizada pelo OGC
(OpenGIS Consortium, 2004), conforme discutido no Captulo 11. A
combinao entre GML e SVG cria timas oportunidades para
disseminao de dados geogrficos na Internet. possvel, por exemplo,
transformar um conjunto de dados GML em um arquivo SVG para

365
10. Disseminao de dados geogrficos na Internet

visualizao na Web, determinando os parmetros dessa transformao


em um arquivo XSLT (eXtensible Stylesheet Language
Transformations)(W3C, 1999).
Um exemplo desse tipo de aplicao foi apresentado em (Mathiak,
Kupfer et al. 2004). possvel codificar apresentaes bastante complexas
usando SVG, contando inclusive com recursos de animao, som e um
refinado acabamento grfico, o que permite antever uma gama de tipos
diferentes de apresentao para dados geogrficos, com recursos que iro
muito alm dos tradicionais mapas estticos da cartografia.
A Figura 10.11 apresenta um exemplo de uso de SVG para
apresentao de dados.
Por fim, a Figura 10.12 sumariza as alternativas de acesso a bancos de
dados geogrficos atravs da Internet.

Figura 10.11 Visualizao usando SVG. Fonte:


www.atlasmercadologico.com.br.

366
Biblioteca digital de informaes geogrficas

Software cliente
especfico

Browser simples

Browser + Java Internet


Cliente conectado Servidor Web
Internet

Browser + plug-in
Firewall

Browser + SVG

Servidor de Bancos BD Geogrfico


de Dados Geogrficos

Figura 10.12 Disseminao de dados geogrficos atravs da Internet resumo


das alternativas.

10.4 Biblioteca digital de informaes geogrficas


Os SIG esto evoluindo para alm de sua comunidade de usurios
tradicionais e se tornando parte integrante da infra-estrutura de sistemas
de informao de muitas organizaes. Uma conseqncia positiva desse
fato o aumento significativo no nmero e no volume das fontes de dados
espaciais disponveis para acesso atravs de redes de computadores.
Essa evoluo representa um novo paradigma na forma de utilizao
da informao geogrfica, baseado no conceito de biblioteca digital de
informaes geogrficas (BDG), ou centros de dados geogrficos, que so
bibliotecas digitais especializadas em dados geo-referenciados, fornecendo
uma infra-estrutura para a criao, estruturao, armazenamento,
organizao, processamento, recuperao e distribuio de dados geo-
referenciados (Cmara et al., 1996) (Oliveira et al., 1999).
10.4.1 Alexandria Digital Library
O projeto da Alexandria Digital Library (ADL) (UCSB, 2005) j foi
discutido no Captulo 9 como um exemplo de um catlogo de metadados
combinado com um dicionrio geogrfico.
A ADL , principalmente, um dos mais importantes projetos de criao
de uma biblioteca digital de informaes geogrficas. A ADL fornece
acesso pblico a um acervo de mais de 15.000 itens digitais e no digitais

367
10. Disseminao de dados geogrficos na Internet

(mapas, imagens e dados espaciais) do Map and Imagery Laboratory (MIL)


da Universidade da Califrnia e tambm a outros acervos.
Recordando a discusso do Captulo 9, sua arquitetura segue o modelo
de trs camadas: servidores gerenciam as colees de dados espaciais, um
middleware implementa os servios de acesso s colees via protocolo
HTTP e clientes so utilizados pelos usurios da biblioteca para a consulta
e navegao pelas colees (Frew, et al. 2000).
Na interface de consulta Web da ADL (Figura 10.13), o usurio pode
utilizar um mapa para selecionar a rea de interesse da sua pesquisa e
tambm especificar, para a busca ao catlogo, um conjunto de palavras-
chave, o perodo, o tipo do objeto (se mapa, dado, imagem, etc.), seu
formato, a fonte original, e o mtodo de ranking utilizado na resposta. Os
dados sobre os itens localizados so ento exibidos, incluindo um link para
o dado espacial, se esse estiver disponvel.

Figura 10.13 Biblioteca Geogrfica Digital Alexandria.

368
Biblioteca digital de informaes geogrficas

10.4.2 Maine Library of Geographic Information


Nesta BGD, o estado norte-americano do Maine torna disponveis, para
acesso pblico, dados geogrficos em formato digital sobre seu territrio
(Maine Digital Geographic Library, 2005). Destaca-se a qualidade dos
metadados da biblioteca, de acordo com uma diviso em sete itens:
identificao, qualidade dos dados, organizao dos dados, sistema de
referncia utilizado, informaes dos atributos dos dados, informaes de
distribuio e referncia dos metadados.
A busca (Figura 10.14) pode ser feita com uso de palavras-chave ou
pela seleo de um dos cinco grupos temticos disponveis: cidades,
condados, quadrculas, unidades hdricas ou todo o estado. Cada um
desses grupos possui uma relao de dados digitais disponveis. A seleo
de um grupo mostra a lista dos dados acompanhada de seus respectivos
metadados e endereos para download dos dados, quase sempre em
formato shape.

Figura 10.14 Biblioteca Geogrfica Digital do Maine.

369
10. Disseminao de dados geogrficos na Internet

10.4.3 GeoConnections Discovery Portal


Mantida por um entidade canadense, formada por membros do governo e
da iniciativa privada, esta BDG tem por objetivo de longo prazo o
desenvolvimento de uma infra-estrutura para a divulgao de dados
espaciais, especialmente os que se referem ao territrio do Canad
(Natural Resources Canada, 2005). Esto disponveis tanto dados gratuitos
quanto com valor associado.
O sistema de busca capaz de localizar dados pesquisando por rea,
assunto, palavra-chave, perodo de tempo ou por qualquer combinao
desses itens. O resultado de uma consulta pode ser observado na Figura
10.15. Os metadados apresentam um bom nvel de detalhamento, e trazem
informaes sobre a identificao dos dados, sua distribuio e as
referncias dos metadados.

Figura 10.15 Geoconnections Discovery Portal.

370
Infra-estruturas de dados espaciais

10.5 Infra-estruturas de dados espaciais


O acesso informao tem sido uma das grandes dificuldades de todo
pesquisador, usurio, desenvolvedor ou especialista envolvido em temas
ligados representao computacional do espao. Inicialmente, nos
primrdios do geoprocessamento, o problema se concentrava na
construo dos bancos de dados geogrficos: fontes de dados, processos de
converso, tcnicas e tecnologias para levantamento de dados em campo
(Montgomery,e Schuch, 1993).
Com o aumento gradual do volume de informao digital disponvel
em meio digital, encontrar padres para facilitar o intercmbio de dados
passou a ser o problema (Lima, 2002) (Lima et al., 2002) (United States
Geological Survey, 2005) (Davis Jr., 2002), conforme discutido no
Captulo 9.
Rapidamente, no entanto, percebeu-se que o intercmbio puro e
simples dos dados no seria suficiente, se o receptor no tivesse como
avaliar se os dados atendem ou no s suas necessidades. Isso levou ao
estabelecimento de padres e ao incio de esforos de desenvolvimento de
metadados espaciais (Soares, 1999). Mas, mesmo com os metadados,
permaneciam ainda eventuais dvidas sobre aspectos semnticos ligados
aos dados, problemas esses resultantes de vises variadas do mundo por
pessoas de diferentes origens e formaes. Esse problema, juntamente com
o anterior, motivou o desenvolvimento de estudos de interoperabilidade
semntica (Fonseca et al. 2000) (Vckovski, 1998), j aludido no Captulo
9. Atualmente, mesmo sem haver concluses definitivas sobre os
problemas de semntica, existe um movimento para criar infra-estruturas
de dados espaciais (IDE) (Bernard, 2005) (Smits, 2002).
Diversas iniciativas tm buscado compreender melhor os processos
segundo os quais elementos da infra-estrutura espacial so desenvolvidos e
utilizados. Uma dessas iniciativas o projeto INSPIRE (Infrastructure for
Spatial Information in Europe) (Smits, 2002), que pretende tornar a
informao geogrfica digital mais acessvel e interopervel para uma
ampla gama de aplicaes, usando uma arquitetura baseada em servios.
Outra delas a Global Spatial Data Infrastructure Association (GSDI), uma
organizao que pretende promover o desenvolvimento de uma infra-
estrutura de dados espaciais em escala planetria, como suporte

371
10. Disseminao de dados geogrficos na Internet

conduo de aes de desenvolvimento sustentvel e impacto social,


econmico e ambiental (GSDI Association, 2005).
A idia principal das infra-estruturas de dados espaciais oferecer
servios de acesso informao geogrfica, com base em grandes catlogos
de acervos de informao, tornando indiferentes, aos olhos do cliente da
IDE, o local, meio e estrutura fsica de armazenamento. Como o acesso
aos dados realizado apenas atravs de servios, possvel encapsular a
estrutura fsica dos dados, seguindo um dos preceitos da orientao por
objetos. O usurio tambm no precisaria conhecer o local onde os dados
esto armazenados, pois cada provedor de dados se encarrega de registrar,
junto a um servio de catalogao, que dados possui, onde esto, como
esto organizados, e onde esto os metadados. Basta, ento, que o usurio
consulte um servio para determinar se os dados que procura esto
disponveis, consulte outro para avaliar detalhes sobre a fonte e o processo
de captura usando outro servio e, caso esteja satisfeito com as
caractersticas dos dados, acione um terceiro servio para recuper-los.
O foco no conceito de IDE uma conseqncia natural da evoluo da
Web e de sua arquitetura, diante das diretrizes que vm sendo traadas
por seu rgo normatizador, o W3C.
Em sua concepo inicial, o objetivo da Web era fornecer contedo
exclusivo para uso e interpretao humanos. Isso significa que, em sua
origem, o foco de desenvolvimento da Web restringiu-se a questes
relacionadas apresentao. O crescimento explosivo da Web, entretanto,
fez surgir uma enorme demanda por aplicaes que fossem capazes de
operar e interagir nesse ambiente. A apresentao deixou de ser a
preocupao central para dividir seu lugar com o contedo.
As primeiras abordagens para a interoperao entre aplicaes na Web,
porm, possuam um carter ad hoc e baseavam-se na explorao da
prpria infra-estrutura bsica da Internet. Muitas vezes, essa interoperao
era realizada atravs de APIs que incorporavam mdulos encarregados de
extrair o contedo de pginas Web (McIlraith et al., 2001).
Essa mudana de foco da apresentao para o contedo foi cristalizada
no conceito da Web Semntica, uma extenso da Web na qual a
informao possui um significado bem definido, possibilitando que

372
Infra-estruturas de dados espaciais

computadores e pessoas trabalhem em cooperao (Berners-Lee, 2001).


Alguns passos importantes em direo Web Semntica j foram dados,
como o uso crescente do padro XML para o intercmbio de dados e a
especificao de uma grande quantidade de servios Web. Percebe-se,
assim, que a rea de geoinformao tambm tem se movimentado em
direo Web Semntica, tanto por meio dos padres da OGC, quanto
por iniciativa da comunidade de pesquisa em geoinformao (Egenhofer,
2002).
O conceito de servio Web surgiu para prover uma arquitetura
sistemtica e mais ampla para a interao entre aplicaes, fundamentada
sobre os protocolos Web j existentes e o padro XML (Curbera et al.,
2002).
O funcionamento proposto para as IDE aproxima-se bastante da
arquitetura de servios do OpenGIS Consortium, abordados no Captulo
11. No modelo OGC (Figura 10.16), rgos pblicos, empresas e
instituies geradoras de informao espacial proveriam acesso aos seus
dados atravs de servios Web de diversas naturezas, conforme o tipo de
dado e as peculiaridades de seu uso. Cada servio registrado em um
servidor central, atravs do qual os usurios podero descobrir sobre a
existncia ou no de determinado dado ou servio, e obter o caminho de
acesso a servidores de metadados, atravs dos quais podero verificar se a
qualidade e demais caractersticas do dado atendem ou no s suas
necessidades. Podero tambm, eventualmente, escolher entre diversos
provedores do mesmo tipo de servio.
Observe que os servios podem ser ou no baseados em dados: servios
para transformao de coordenadas, por exemplo, podem prover apenas o
processamento de dados do usurio. Outros servios so totalmente
baseados em dados, porm no os fornecem diretamente para o usurio,
possibilitando assim que o administrador do servio tenha a liberdade de
estrutur-lo internamente da maneira que achar melhor.

373
10. Disseminao de dados geogrficos na Internet

OGC Services XML


Registry
Usurios

Metadados
sobre os
servios
XML / GML

Web Services OGC

Universidade ONG Governo Governo Governo Provedor


Federal Estadual Municipal Comercial
de Dados

Provedores de Informao Geogrfica

Figura 10.16 Arquitetura de servios OGC.

10.6 Leituras Suplementares


A grande variedade de alternativas para disseminao de dados geogrficos
pela Internet no deixa dvidas quanto enorme demanda que existe por
informao espacial simples de acessar, de obter e usar. A atual disposio
de pases desenvolvidos em promover a criao de infra-estruturas de
dados espaciais reflete essa demanda: trata-se do reconhecimento de que a
informao um bem da sociedade que, estando disponvel no tempo
certo, com qualidade adequada, de maneira livre e a baixo custo, pode
fomentar uma ampla gama de iniciativas, pblicas, privadas, individuais
ou do terceiro setor.
Sugerimos aos leitores um aprofundamento sobre infra-estruturas de
dados espaciais, seguindo projetos como o INSPIRE e outros, alm de um
maior aprofundamento nas propostas do OGC para arquiteturas de
sistemas geogrficos apoiadas em servios Web (OpenGIS Consortium,
2003 ).
Resta ainda comentar sobre o outro lado da disseminao cada vez mais
ampla de dados na Web: a necessidade de localizar esses dados. Existem

374
Leituras Suplementares

hoje muitas iniciativas no sentido de ampliar o escopo das busca


tradicionais, tais como Google, Yahoo ou Altavista. Os dois primeiros tm
em operao servios de busca apoiados em nomes de locais
(local.google.com e local.yahoo.com), que combinam buscas por palavra-
chave com um sistema de pginas amarelas.
Algumas iniciativas de extrair o contexto geogrfico presente no
contedo de uma pgina Web esto sendo conduzidas (Laender et al.,
2005), visando, entre outras coisas, produzir ndices espaciais para a
localizao de pginas Web (Jones et al., 2002) e constituindo uma rea
denominada recuperao da informao espacial (spatial information
retrieval). Por enquanto, sabe-se principalmente que o interesse em se
contar com uma Web local muito grande, e que isso s ser viabilizado
quando conseguirmos entender melhor a maneira segundo a qual as
pessoas relacionam-se com a geografia em seu dia-a-dia (Hiramatsu e
Ishida, 2001).

375
10. Disseminao de dados geogrficos na Internet

Referncias
BERNARD, L.; CRAGLIA, M. SDI: From Spatial Data Infrastructure to Service
Driven Infrastructure. In: Research Workshop on Cross-Learning between
Spatial Data Infrastructures (SDI) and Information Infrastructures
(II),2005,Enschede, Holanda.
BERNERS-LEE, T.; CAILLIAU, R.; LUOTONEN, A.; NIELSEN, H. F.;
SECRET, A. The World-Wide Web. Communications of the ACM, v. 37,
n.8, p. 76-82, 1994.
BERNERS-LEE, T.; HENDLER, J.; LASSILA, O. The Semantic Web.
Scientific American, v. 184, n.5, p. 34-43, 2001.
CMARA, G.; CASANOVA, M.; HEMERLY, A.; MAGALHES, G.;
BAUZER-MEDEIROS, C., 1996, Anatomia de Sistemas de Informao
Geogrfica, Curitiba, Sagres.
CURBERA, F.; DUFTLER, M.; KHALAF, R.; NAGY, W.; MUKHI, N.;
WEERAWARANA, S. Unraveling the Web Services Web: an introduction to
SOAP, WSDL and UDDI. IEEE Internet Computing, v. 6, n.2, p. 86-93,
2002.
DAVIS JR., C. A., 2002, Intercmbio de Informao Geogrfica: a experincia de
padronizao e cooperao em Minas Gerais. In: PEREIRA, G. C., ROCHA,
M. C. F., ed., Dados Geogrficos: aspectos e perspectivas: Salvador (BA),
Rede Baiana de Tecnologias da Informao Espacial (REBATE), p. 43-54.
EGENHOFER, M. Toward the semantic geospatial web. In: 10th ACM
international symposium on Advances in geographic information systems
table of contents, 2002, McLean, Virginia, USA.
ELSMARI, R.; NAVATHE, S. Fundamentals of Database Systems.
Pearson Education, 2004.
FONSECA, F. T.; DAVIS JR., C. A. Using the Internet to access geographic
information: an OpenGIS interface prototype. In: International Conference
on Interoperating Geographic Information Systems (Interop 97), 1997, Santa
Barbara (CA). NCGIA and OpenGIS Consortium (OGC), p. 283-293.
FONSECA, F.; DAVIS, C., 1999, Using the Internet to Access Geographic
Information: An OpenGis Prototype. In: GOODCHILD, M.;
EGENHOFER, M.; FEGEAS, R.; KOTTMAN, C., eds., Interoperating
Geographic Information Systems: Norwell, MA, Kluwer Academic Publishers,
p. 313-324.

376
Referncias

FONSECA, F.; EGENHOFER, M.; BORGES, K. Ontologias e


Interoperabilidade Semntica entre SIGs. In: Workshop Brasileiro em
Geoinformtica (GeoInfo2000), 2., So Paulo, 2000. Anais. So Jos dos
Campos: INPE, 2000. p. 45 - 52.
FREW, J.; FREESTON, M.; FREITAS, N.; HILL, L.; JANE, G.; LOVETTE,
K.; NIDEFFER, R.; SMITH, T.; ZHENG, Q. The Alexandria Digital
Library Architecture. International Journal on Digital Libraries, v. 2, n.4, p.
259-268, 2000.
GSDI ASSOCIATION, 2005, Global Spatial Data Infrastructure Web Site.
HIRAMATSU, K.; ISHIDA, T. An Augmented Web Space for Digital Cities. In:
IEEE Symposium on Applications and the Internet (SAINT 2001),2001,San
Diego (CA). p. 105-112.
JONES, C. B.; PURVES, R.; RUAS, A.; SANDERSON, M.; SESTER, M.; VAN
KREVELD, M.; WEIBEL, R. Spatial information retrieval and geographic
ontologies: an overview of the SPIRIT project. In: 25th Annual ACM SIGIR
Conference on Research and Development on Information Retrieval,2002,
Tampere, Finland.
LAENDER, A. H. F.; BORGES, K. A. V.; CARVALHO, J. C. P.; MEDEIROS,
C. M. B.; SILVA, A. S.; DAVIS JR., C. A., 2005, Integrating Web Data and
Geographic Knowledge into Spatial Databases. In: MANOLOPOULOS, Y.;
PAPADOPOULOS, A.; VASSILAKOPOULOS, M., eds., Spatial
Databases: technologies, techniques and trends: Hershey (PA), Idea Group
Publishing.
LIMA, P. GeoBR: Intercmbio Sinttico e Semntico de Dados Espaciais.So
Jos dos Campos: INPE, 2002.Dissertao de Mestrado, 2002.
LIMA, P.; CMARA, G.; QUEIROZ, G. R. GeoBR: Intercmbio Sinttico e
Semntico de Dados Espaciais. In: IV Simpsio Brasileiro de
GeoInformtica (GeoInfo 2002),2002,Caxambu (MG). p. 139-146.
MAINE DIGITAL GEOGRAPHIC LIBRARY, 2005.
MATHIAK, B.; KUPFER, A.; NEUMANN, K. Using XML languages for
modeling and Web-visualization of geographical legacy data. In: GeoInfo
2004,Campos do Jordo (SP). Sociedade Brasileira de Computao (SBC).
MCILRAITH, S. A.; SON, T. C.; ZENG, H. Semantic Web Services. IEEE
Intelligent Systems, v. 16, n.2, p. 46-53, 2001.
MONTGOMERY, G. E.; SCHUCH, H. C. GIS Data Conversion Handbook.
John Wiley & Sons,1993.
NATURAL RESOURCES CANADA, 2005, GeoConnections Discovery Portal.

377
10. Disseminao de dados geogrficos na Internet

OLIVEIRA, J. L.; GONALVES, M. A.; MEDEIROS, C. M. B. A framework


for designing and implementing the user interface of a geographic digital
library. International Journal on Digital Libraries, p. 190-206, 1999.
OPENGIS CONSORTIUM, 2003, OpenGIS Reference Model.
OPENGIS CONSORTIUM, 2004, Geography Markup Language (GML) 3.1.0.
SMITS, P., 2002, INSPIRE Architecture and Standards Position Paper,
Architecture and Standards Working Group.
SOARES, V. G.; SALGADO, A. C. Consultas visuais em sistemas de
informaes geogrficas baseadas em padres de metadados espaciais. In: I
GeoInfo 1999,Campinas (SP).
SUN MICROSYSTEMS, 1994, The Java language: a white paper.
THOMAZ, K. P. A preservao de documentos eletrnicos de carter
arquivstico: novos desafios, velhos problemas.Belo Horizonte: UFMG,
2004.Tese de Doutorado, Escola de Cincia da Informao, 2004.
UCSB, 2005, The Alexandria Digital Library.
UNITED STATES GEOLOGICAL SURVEY, 2005, USGS Spatial Data
Transfer Standard Information Site.
VCKOVSKI, A. Interoperable and Distributed Processing in GIS. CRC
Press,1998.
WORLD-WIDE WEB CONSORTIUM (W3C), 1999, XSL Transformations
(XSLT) Version 1.0.
WORLD-WIDE WEB CONSORTIUM (W3C), 2000, Scalable Vector Graphics
(SVG) 1.0 Specification.

378
11 O Open Geospatial Consortium

Clodoveu A. Davis Jr.


Karla A. V. Borges
Ligiane Alves de Souza
Marco Antonio Casanova
Paulo de Oliveira Lima Jnior

11.1 Introduo
Este captulo resume o modelo conceitual, o formato de intercmbio de
dados e os servios propostos pelo Open Geospatial Consortium (OGC).
O Open Geospatial Consortium (OGC, 2005a) um consrcio com
mais de 250 companhias, agncias governamentais e universidades,
criado para promover o desenvolvimento de tecnologias que facilitem a
interoperabilidade entre sistemas envolvendo informao espacial e
localizao (Gardels, 1996) (Percivall, 2003). Os produtos do trabalho do
OGC so apresentados sob forma de especificaes de interfaces e
padres de intercmbio de dados.

11.2 Modelo conceitual


O modelo conceitual do OGC baseado em uma classe abstrata
denominada feature. Uma feature considerada pelo OpenGIS uma
abstrao de um fenmeno do mundo real; uma feio geogrfica se
associada com uma localidade relativa Terra.
A classe abstrata FEATURE tem duas especializaes FEATURE
WITH GEOMETRY, que almeja capturar o conceito de geo-objetos, e
COVERAGES, que pretende capturar o conceito de geo-campos.

377
11. O Open Geospatial Consortium

Figura 11.1 Subtipos de feature, adaptado de (OGC, 1999).

Figura 11.2 Relao entre Feature e Coverage, adaptado de (OGC,


1999).

O padro OpenGIS relaciona diretamente cada tipo de coverage com


uma geometria particular, num relacionamento de especializao. Isto
faz com que o contedo semntico de uma coverage, ou seja, os tipos de
dados geogrficos representados, sejam confundidos com seu contedo
sinttico, a estrutura de dados utilizada. Esta relao incoerente com a
definio proposta pelo padro OpenGIS para coverage, que fala em
funo, domnio e intervalo.

378
Geography Markup Language

Figura 11.3 Subtipos de Coverage, adaptado de (OGC, 1999).

11.3 Geography Markup Language


Seguindo a tendncia do uso de padres para intercmbio de dados, o
OpenGIS usa o padro XML (eXtensible Markup Language) para
definir uma forma de codificar dados geogrficos. Para isso especificou a
linguagem GML (Geography Markup Language) (Cox, 2003). A GML
(Geography Markup Language) foi especificada para o transporte e
armazenamento de informao geogrfica, incluindo propriedades
espaciais e no espaciais das feies geogrficas (OGC, 1999).
O objetivo da GML oferecer um conjunto de regras com as quais
um usurio pode definir sua prpria linguagem para descrever seus
dados. Para tanto, a GML baseada em esquemas XML (XML
Schema). O esquema XML define os elementos (tags) usados em um
documento que descreve os dados. Sua verso 3.0 inclui esquemas que
contm os modelos de geometria, feies (features) e superfcies. Os
esquemas esto publicados nas especificaes do OGC (Cox, 2003) os
principais so os seguintes:
BasicTypes: que engloba uma srie de componentes simples e
genricos para representao arbitraria de atributos, nulos ou no.
Topology: o qual especifica as definies do esquema geomtrico
dos dados, bem como sua descrio.

379
11. O Open Geospatial Consortium

CoordinateReference Systems: para sistemas de referncia de


coordenadas.
Temporal Information and Dynamic Feature: Este esquema
estende aos elementos caractersticas temporais dos dados
geogrficos e suas funes dinamicamente definidas.
Definitions and Dictionaries: definies das condies de uso
dentro de documentos com certas propriedades ou informaes de
referentes propriedade padro.
Metadata: Este esquema utilizado para definir as propriedades
dos pacotes de dados que podem ser utilizados atravs de outros
dados j existentes.
De posse destes esquemas, um usurio pode definir o seu prprio
esquema para sua aplicao. Mas h algumas exigncias a seguir para
obter conformidade:
Desenvolvedores de esquemas de aplicao devem assegurar que
seus tipos so subtipos dos correspondentes tipos da GML:
gml:AbstractFeatureType ou gml:AbstractFeatureCollectionType
para feies e gml:AbstractGeometryType ou
gml:GeometryCollectionType para a geometria.
Um esquema de aplicao no pode mudar o nome, definio ou
tipo de dado dos elementos obrigatrios da GML;
Definies de tipos abstratos podem ser livremente estendidas ou
restritas;
Esquema de aplicao deve estar disponvel a qualquer um que
receba o dado estruturado por aquele esquema;
Os esquemas relevantes devem especificar um namespace que
no deve ser http://www.opengis.net/gml.
Desta forma um desenvolvedor de esquemas pode criar seus prprios
tipos e tags e uma aplicao GML poder fazer uso dos dados. Por
exemplo, consideramos dois arquivos, um para o esquema (exemplo.xsd)
e outro com os dados (exemplo.xml):

380
Geography Markup Language

Figura 11.4 Trecho de um esquema de aplicao.

A Figura 11.4 um fragmento de um arquivo exemplo.xsd que define


um esquema de aplicao, mostrando a criao de um tipo, no caso
hidrografia. Seguindo as regras, a linha 3 faz com que hidrografia seja
subtipo de gml:AbstractFeatureType. Este tipo pode ser usado na
criao de uma tag, por exemplo:

Figura 11.5 Criao de uma tag.

O fragmento mostrado na Figura 11.5 parte do mesmo esquema e


define a criao de uma tag <rio> do tipo hidrografia que pode ser
usada para descrever um determinado rio no arquivo exemplo.xml.
Tambm definido que o elemento tem o atributo substitutionGroup
igual a gml:_Feature, o que garante a uma aplicao a leitura dos
dados. O ex em ex:hidrografia indica que o nome hidrografia do
domnio ex, declarado no incio do arquivo:

381
11. O Open Geospatial Consortium

Figura 11.6 Exemplo de namespace.

No incio do arquivo foi definido o namespace ex, como mostra a


linha 4 da Figura 11.6. Um fragmento do arquivo contendo os dados
ilustrado pela Figura 11.7:

Figura 11.7 Fragmento de um arquivo de dados em XML.


As tags <gml:description> (linha 2) e <gml:name> (linha 3) da
Figura 11.7 no foram criadas no esquema de aplicao, mas sim
herdadas do tipo AbstractFeatureType, j que hidrografia deste tipo e
<rio> foi definido como hidrografia. Para a transferncia de dados
necessria a transferncia do arquivo com o esquema tambm, s assim
uma aplicao que procura por <_Feature> poder saber que <rio>
<_Feature>.
Os esquemas da GML sozinhos no so adequados para criar uma
instncia de documento. Estes devem ser estendidos pela criao de
esquemas de aplicao para domnios especficos, seguindo as regras

382
Descrio dos servios

descritas na especificao. Isto exige um investimento na elaborao de


esquemas.
A GML possui pontos, linhas, polgonos e colees geomtricas
(MultiPoint, MultiPolygon) definidos por coordenadas cartesianas uni,
bi ou tridimensionais associados a eventuais sistemas de referncia
espacial. Mas as localizaes espaciais so definidas apenas por
coordenadas cartesianas, coordenadas projetivas no esto previstas.
Uma vantagem no uso de XML a flexibilidade oferecida para criar
tags que expressam o significado do dado descrito, obtendo-se um
documento rico semanticamente. Mas, considere a seguinte situao:
dois usurios de domnios diferentes representam uma determinada
entidade, pela GML, como <rio> e <curso_de_agua>. Em uma troca
de dados entre os usurios, os esquemas tambm devem ser
compartilhados, pois s assim uma aplicao poder saber que <rio> ou
<curso_de_agua> so da classe <_Feature> definida pelo esquema
Feature.xsd da GML, e ento process-los adequadamente. Desta forma
o problema de acesso aos dados resolvido. Mas no h como saber que
<rio> <curso_de_agua> e vice-versa. O aspecto semntico no
considerado de forma efetiva a promover a interoperabilidade. Para
amenizar este problema, pode-se acrescentar tags que descrevem as
entidades e suas relaes, ou que identifiquem sinnimos.

11.4 Descrio dos servios


11.4.1 Framework arquitetural dos servios
As especificaes do OGC baseiam-se em um framework arquitetural,
chamado de OpenGIS Services Framework (Percivall, 2003), que
especifica o escopo, objetivos e comportamento de uma srie de
componentes. Neste sentido, o framework representa uma arquitetura de
referncia para desenvolvimento de aplicaes geogrficas, no esprito da
ISO 19119.
A definio dos componentes segue o paradigma de Web services e,
portanto, est sujeita a restries conceituais e de implementao. As
restries conceituais endeream funcionalidade e incluem orientao a
servios, auto-descrio dos servios e operao sem estados persistentes
(stateless operation). As restries de implementao endeream questes

383
11. O Open Geospatial Consortium

relativas a interoperabilidade, incluindo a adoo de formatos de


intercmbio em XML, utilizao de protocolos comuns Internet.
Porm, convm salientar que os servios originalmente especificados
pelo OGC no seguem as recomendaes do W3C para definio de
servios Web, como SOAP para intercmbio de dados, WSDL para
descrio dos servios e UDDI para registro dos servios. Apenas, mais
recentemente, a srie de propostas de especificao conhecidas
coletivamente como OpenGIS Web Service 2 initiative (Sonnet, 2004)
definiram interfaces que utilizam os padres do W3C. Porm, tais
especificaes ainda so tratadas como propostas de mudana. Ainda,
recentemente, a OGC iniciou um experimento em larga escala para
testar o conceito de Web semntica geospacial (OGC, 2005b).
Brevemente, o OpenGIS Services Framework compreende (ver Figura
11.8):
Padres de Codificao: especificaes de formatos de intercmbio e
armazenamento de dados geogrficos, incluindo descries de
sistemas de geo-referenciamento, geometria, topologia, e outras
caractersticas. O Geography Markup Language (GML) um formato
de documentos XML para intercmbio de dados geogrficos.
Servios do cliente: componentes que, do lado do cliente, interagem com
os usurios e que, do lado do servidor, interagem com os servidores de
aplicao e de dados.
Servios de registro: componentes que oferecem mecanismos para
classificar, registrar, descrever, pesquisar, manter e acessar informao
sobre os recursos na rede. Incluem o Web Registry Service (WRS).
Servios de processamento de workflow: componentes que oferecem
mecanismos para composio de servios que operam sobre dados e
metadados geogrficos. Incluem o Sensor Planning Service (SPS) e o
Web Notification Service (WNS).
Servios de visualizao: componentes que oferecem suporte especfico
para visualizao de dados geogrficos, resultando em produtos como
mapas, vises em perspectiva do terreno, imagens anotadas, vises
dinmicas de dados espao-temporais. Incluem o Web Map Service

384
Descrio dos servios

(WMS), o Coverage Portrayal Service (CPS) e o Style Management


Service (SMS).
Servios de dados: componentes que oferecem os servios bsicos de acesso
aos dados geogrficos. Incluem o Web Object Service (WOS), o Web
Feature Service (WFS), o Sensor Collection Service (SCS), o Image
Archive Service (IAS) e o Web Coverage Service (WCS).

O resto desta seo resume os servios definidos pelo OGC. Para


maiores detalhes, recomenda-se uma visita ao Website do OGC (OGC,
2005a).

Discovery Map Viewer Imagery Value-Add SWE Symbol


Localiza Client Client Exploitation Client Client Management Acessa
Client Client
Servios do cliente

GML Style SLD


(2.1 and 3.0) Metadata

Service SensorML Obs


Metadata & Meas
Sensor Sensor Service Sensor Other Other
Image
Type Instance Type Instance Type Instance Padres Metadata
Registry Registry Registry Registry Registry Registry
Servios de registro

Publica

SCS WFST WCS WMS CPS SPS WNS

Servios de
WOS
Servios Servios de
IAS SMS
dados de visual. processamento

= OGC/IP Interface

Figura 11.8 Componentes do OGC Web Service Framework.

385
11. O Open Geospatial Consortium

Cliente Servidor

requisio <GetCapabilities>

documento <WFS_Capabilities>

requisio <DescribeFeatureType>

documento <schema>

requisio <Transaction>

documento <WFS_TransactionResponse>

Figura 11.9 Exemplo de execuo do servio WFS.

11.4.2 Web Feature Service


A especificao OpenGIS Web Feature Service (WFS) define um servio
para que clientes possam recuperar objetos (features) espaciais em
formato GML de servidores WFS. O servio pode ser implementado pelo
servidor em duas verses: bsica, onde apenas operaes de consulta
ficam disponveis, ou transacional, que implementa o servio completo,
que inclui operaes de insero, excluso, atualizao, consulta de
objetos (features) geogrficos.
As seguintes operaes so definidas para o servio:
getCapabilities: descreve as caractersticas do servidor.
describeFeatureType: descreve a estrutura dos tipos de objeto que
podem ser servidos.
getFeature: retorna instncias dos objetos disponveis na base de
dados. O cliente pode selecionar quais objetos deseja por critrios
espaciais ou no.
transaction: utilizado para a execuo de operaes de modificao
dos objetos (insero, excluso e atualizao).
lockFeature: bloqueia uma ou mais instncias durante uma
transao.

386
Descrio dos servios

A Figura 11.9 ilustra uma seqncia de execuo tpica do servio


WFS. Como em todos os demais servios, tanto as requisies quanto as
respostas so documentos XML.
11.4.3 Web Coverage Service
Para o acesso a dados que representam fenmenos com variao
contnua no espao, o consrcio OpenGIS criou a especificao
OpenGIS Web Coverage Service (WCS). O servio especfico para o
tratamento de dados modelados como geo-campos, em complementao
ao servio WFS, que trata de dados modelados como geo-objetos, isto ,
que representam entidades espaciais discretas e bem definidas.
importante mencionar que o servio no retorna imagens das
coverages como resposta das requisies, mas sim dados sobre a semntica
dos fenmenos representados.
Trs operaes so implementadas no servio:
getCapabilities: fornece uma descrio do servidor e informaes
bsicas acerca das colees de dados disponveis.
describeCoverage: recupera uma descrio completa das coverages.
getCoverage: recupera uma coverage (valores e propriedades de um
conjunto de localizaes geogrficas) no servidor.
11.4.4 Web Map Service
A especificao OpenGIS Web Map Service (WMS) define um servio
para a produo de mapas na Internet. Neste sentido, o mapa uma
representao visual dos dados geogrficos e no os dados de fato. Os
mapas produzidos so representaes geradas em formatos de imagem,
como PNG, GIF e JPEG, ou em formatos vetoriais, como o SVG.
Quando o cliente requisita um mapa utilizando o servio, um
conjunto de parmetros deve ser informado ao servidor: as camadas
desejadas, os estilos que devem ser aplicados sobre as camadas, a rea de
cobertura do mapa, a projeo ou sistema de coordenadas geogrficas, o
formato da imagem gerada e tambm o seu tamanho.
O servio possui as seguintes operaes:
getCapabilities: obtm os metadados do servidor, que descrevem
o contedo e os parmetros aceitos.

387
11. O Open Geospatial Consortium

getMap: obtm a imagem do mapa que corresponde aos parmetros


informados.
getFeatureInfo: recupera informaes sobre um elemento (feature)
particular de um mapa.
11.4.5 Catalog Service
A Internet possui uma vasta quantidade de informao geoespacial
distribuda em vrios formatos e mantida por inmeras instituies. A
organizao dessa informao com base na construo de catlogos
uma forma de facilitar sua distribuio, localizao e acesso.
A especificao OpenGIS Catalog Services (OCS) introduz um servio
para a publicao e busca em colees de informaes descritivas
(metadados) de dados espaciais e objetos relacionados. Os metadados de
um catlogo representam as caractersticas dos recursos que podem ser
pesquisados e apresentados para a avaliao e processamento tanto de
homens quanto de mquinas.
Na especificao, definida uma linguagem de consulta comum a
todas as interfaces do servio, a Common Catalog Query Language, que
possui uma sintaxe semelhante a uma clusula Where do SQL. Um
esquema de metadados bsico (core metadata schema), baseado na norma
ISO19115 - Geographic Information Metadata, proposto para facilitar a
interoperabilidade dos catlogos. Assim, uma mesma consulta pode ser
executada em diferentes catlogos. Um conjunto de atributos mnimo
definido para as consultas e tambm para as respostas das consultas.
As operaes disponveis no servio so as seguintes:
getCapabilities: permite que um cliente recupere metadados
descrevendo as caractersticas do servidor.
query: operao que executa uma consulta no catlogo e retorna
um conjunto de zero ou mais referncias que satisfazem
consulta.
present: recupera os metadados de uma ou mais referncias.
describeRecordType: retorna a definio do tipo de uma ou mais
referncias.

388
Descrio dos servios

getDomain: retorna a domnio (tipos de valores possveis) de um


atributo.
initialize: utilizado para iniciar uma sesso interativa, para a qual
um identificador nico gerado.
close: encerra uma sesso interativa.
status: recupera a situao de uma operao iniciada
anteriormente, ainda em execucao ou j encerrada.
cancel: permite que um cliente cancele uma operao.
transaction: utilizada para que um cliente solicite um conjunto de
aes de insero, remoo ou alterao de itens do catlogo.
harvestResource: operao que tenta recuperar recursos de uma
localizao especfica e que pode ser reprocessada de tempos em
tempos.
order: permite que um cliente execute uma operao de compra de
um recurso, negociando preo e outros fatores.
11.4.6 Web Terrain Service
A especificao OpenGIS Web Terrain Service (WTS) , na verdade, uma
especializao do WMS que incorpora modelos de elevao de terreno,
com perspectiva e renderizao tridimensional de mapas. O resultado
produzido, assim como no WMS, uma representao pictrica dos
dados geogrficos.
As operaes getCapabilities e getMap seguem a definio do WMS. A
diferena fica por conta da incluso da operao getView:
getView: obtm uma cena 3D, que uma viso de um lugar a partir
do ponto de vista de um observador. A operao exige o
fornecimento de alguns parmetros para a composio da cena: o
ponto de interesse, a distncia e o ngulo entre o ponto de interesse
e o observador da cena, o ngulo representando o campo de viso e
o azimute.
11.4.7 Web Coordinate Transformation Service
Este servio especifica uma interface para a converso de dados de um
sistema de coordenadas espaciais (CRS - coordinate reference system) para
outro. O servio recebe como entrada objetos geogrficos digitais, que

389
11. O Open Geospatial Consortium

podem ser objetos vetoriais (features) ou matriciais (coverages), que esto


georreferenciados em um CRS e retorna os mesmos objetos em outro
CRS especificado.
O OpenGIS Web Coordinate Transformation Service (WCTS) define
sete operaes que podem ser requisitadas pelos clientes.
getCapabilities: como em todos os outros servios Web do OpenGis,
esta operao retorna as propriedades do servidor.
transform: requisio para a transformao de coordenadas de um
conjunto de objetos. O CRS dos objetos deve ser informado, assim
como o novo CRS desejado.
isTransformable: o retorno dessa requisio indica se o servidor
WCTS consegue processar a transformao entre dois CRS
especificados e tambm se podem ser processados tanto features
quanto coverages.
getTransformation: utilizada para que um cliente consulte as
definies das transformaes que o servidor pode processar de um
CRS para outro.
describeTransformation: esta requisio recupera a definio de uma
ou mais transformaes pelo seu identificador.
describeCRS: um cliente pode recuperar a definio de um ou mais
CRS com essa requisio.
describeMethod: recupera uma ou mais definies de mtodos das
operaes.
11.4.8 Geolinking Service
Um geolink ocorre quando a geometria de um objeto espacial no
armazenada juntamente com seus dados alfanumricos, mas apenas um
identificador geogrfico para a geometria (por exemplo, o nome de uma
cidade). O identificador geogrfico se refere, portanto, a uma geometria
armazenada em outro banco de dados. O servio de Geolinking tem por
objetivo executar um join entre os atributos alfanumricos e as geometrias
que compartilham uma chave em comum (o identificador geogrfico).
Os identificadores geogrficos podem incluir nomes de lugares,
cdigos postais, cdigos de rea telefnicos e outros. Muitos bancos de

390
Descrio dos servios

dados corporativos possuem dados dessa natureza, mas no utilizam seu


potencial geogrfico. O OpenGIS Geolinking Service uma alternativa
para o georreferenciamento dessas bases de dados. A especificao ainda
est em fase de discusso.
As operaes do servio so:
getCapabilities: recupera informaes gerais sobre o servidor.
geoLink: usado para instruir o servidor a acessar um conjunto de
dados especfico para o geolink e processar o join solicitado.
11.4.9 Web Gazetteer Service
Esta especificao adiciona ao protocolo WFS alguns recursos especficos
para a implementao de interfaces para consulta, insero e atualizao
de objetos armazenados em gazetteers digitais (Souza et al., 2004).
Os recursos explorados que vo alm do WFS so: o acesso aos
relacionamentos hierrquicos entre os termos do gazetteer, baseado nos
conceitos de termo mais geral (BT broader term), termo mais especfico
(NT narrower term) e termo relacionado (RT related term); e a
recuperao de propriedades especficas de gazetteers, tais como o tipo
dos lugares. Trata-se de outro servio ainda em fase de discusso. Os
operaes so as mesmas do WFS, com pequenas modificaes.
11.4.10 Web Registry Service
Um problema derivado da aceitao e implementao pela comunidade
dos servios Web propostos pelo OpenGIS passa a ser a localizao dos
servidores espalhados pela rede. A soluo encontrada para o problema
foi a especificao de mais um tipo de servio Web.
O objetivo da especificao OpenGIS Web Registry Service (WRS)
propor um servio capaz de fornecer uma estrutura para a localizao dos
servidores na Web. Os administradores dos servidores os registrariam em
um ou mais servidores WRS para que esses pudessem ser encontrados. O
catlogo do WRS fornece a localizao e as caractersticas dos servidores
OpenGIS nele registrados. No seria necessrio sequer executar a
operao getCapabilities em cada servidor, j que o WRS informa aos
clientes as caractersticas de cada servidor cadastrado. Essa especificao
ainda se encontra em fase de discusso.

391
11. O Open Geospatial Consortium

Eis as operaes do servio:


getCapabilities: retorna as caractersticas do servidor.
getDescriptor: retorna os servidores registrados que atende
consulta.
registerService: registra um servidor OpenGIS no servidor WRS.

11.5 Leituras complementares


O documento OpenGIS Reference Model (Percivall, 2003) oferece um
bom resumo da proposta de trabalho do OGC. Para detalhes sobre os
servios, recomenda-se uma visita ao website do OGC (OGC, 2005a).

392
Referncias

Referncias
COX, S.; DAISEY, P.; LAKE, R.; PORTELE, C.; WHITESIDE, A. (ed),
2003. OpenGIS Geography Markup Language (GML) Implementation
Specification. Open Geospatial Consortium, Inc.
GARDELS, K., 1996. The Open GIS Approach to Distributed Geodata and
Geoprocessing. In: Third International Conference/Workshop on
Integrating GIS and Environmental Modeling. Santa Fe, NM, USA, 1996.
p. 21-25.
OGC, 1999. The OpenGIS Abstract Specification Topic 6: The Coverage
Type and its Subtypes. Open Geospatial Consortium, Inc.
OGC, 2005a, OpenGIS Consortium Inc.
OGC, 2005b, OGC to Begin Geospatial Semantic Web Interoperability
Experiment. Press Release, 12/04/2005. http://www.opengeospatial.org/
press/? page=pressrelease&year=0&prid=222
PERCIVALL, G. (ed), 2003. OpenGIS Reference Model. Document number
OGC 03-040 Version: 0.1.3. Open Geospatial Consortium, Inc.
SONNET, J. (ed), 2004. OWS 2 Common Architecture: WSDL SOAP UDDI.
Discussion Paper OGC 04-060r1, Version: 1.0.0. Open Geospatial
Consortium, Inc.
SOUZA, L. A.; DELBONI, T.; BORGES, K. A. V.; DAVIS JR., C. A.;
LAENDER, A. H. F. Locus: Um Localizador Espacial Urbano. In: VI
Simpsio Brasileiro de GeoInformtica (GeoInfo 2004),2004,Campos do
Jordo (SP). Sociedade Brasileira de Computao (SBC), p. 467-478.

393
12 Descrio da TerraLib

Lbia Vinhas
Karine Reis Ferreira

12.1 Introduo
Esse captulo descreve a biblioteca TerraLib em seus aspectos mais
relevantes em termos de bancos de dados geogrficos, incluindo o modelo
conceitual do banco de dados, o modelo de armazenamento de
geometrias e dados descritivos, e os mecanismos de manipulao do
banco em diferentes nveis de abstrao.
A TerraLib um projeto de software livre que permite o trabalho
colaborativo entre a comunidade de desenvolvimento de aplicaes
geogrficas, servindo desde prototipao rpida de novas tcnicas at o
desenvolvimento de aplicaes colaborativas. Sua distribuio feita
atravs da Web no site www.terralib.org.
TerraLib uma biblioteca de classes escritas em C++ para a
construo de aplicativos geogrficos, com cdigo fonte aberto e
distribuda como um software livre. Destina-se a servir como base para o
desenvolvimento cooperativo na comunidade de usurios ou
desenvolvedores de SIGs Sistemas de Informao Geogrfica.
TerraLib fornece funes para a decodificao de dados geogrficos,
estruturas de dados espao-temporais, algoritmos de anlise espacial
alm de propor um modelo para um banco de dados geogrficos
(Cmara et al. 2002). A arquitetura da biblioteca mostrada na Figura
12.1. Existe um mdulo central, chamado kernel, composto de estruturas
de dados espao-temporais, suporte a projees cartogrficas, operadores
espaciais e uma interface para o armazenamento e recuperao de dados
espao-temporais em bancos de dados objeto-relacionais, alm de
12. Descrio da TerraLib

mecanismos de controle de vizualizao. Em um mdulo composto de


drivers a interface de recuperao e armazenamento implementada.
Esse mdulo tambm contm rotinas de decodificao de dados
geogrficos em formatos abertos e proprietrios. Funes de anlise
espacial so implementadas utilizando as estruturas do kernel.
Finalmente, sobre esses mdulos podem ser construdas diferentes
interfaces aos componentes da TerraLib em diferentes ambientes de
programao (Java, COM, C++) inclusive para a implementao de
servios OpenGIS como o WMS Web Map Server (OGIS, 2005).

Interface Interface COM Interface C++ Servios OGIS

Funes

Kernel

Controle de Estruturas Acesso a


Visualizao Espao- Arquivos e
temporais SGDBs

Driver E/S

Arquivos
Externos SGDB

Figura 12.1 Arquitetura da TerraLib.


Uma das caractersticas mais importantes da TerraLib a sua
capacidade de integrao a sistemas de gerenciamento de bancos de
dados objeto-relacionais (SGBD-OR) para armazenar os dados
geogrficos, tanto sua componente descritiva quanto sua componente
espacial. Essa integrao o que permite o compartilhamento de grandes
bases de dados, em ambientes coorporativos, por aplicaes customizadas
para diferentes tipos de usurios. A TerraLib trabalha em um modelo de
arquitetura em camadas (Davis e Cmara, 2001), funcionando como a
camada de acesso entre o banco e a aplicao final.
Como exemplo de um aplicativos geogrfico construdo sobre a
TerraLib, podemos citar o TerraView (INPE/DPI, 2005). Na Figura 12.2
ilustramos como o TerraView utiliza a TerraLib como camada de acesso

396
Modelo conceitual

a um banco de dados sob o controle de um SGDB-OR como o MySQL


(MYSQL, 2005), por exemplo.

Arquitetura em camadas Exemplo TerraView

Aplicativo TerraView

Camada de
Acesso TerraLib

SGDB MySQL

Figura 12.2 Exemplo de uso da TerraLib como camada de acesso ao banco de


dados.
Enquanto biblioteca de software, a TerraLib compilada em um
ambiente multiplataforma, Windows e Linux, e em diferentes
compiladores C++. A TerraLib usa extensivamente os mecanismos
mais atuais da linguagem C++, como a STL Standard Template
Libray, classes parametrizadas e programao multi-paradigma
(Stroustroup, 1997 ).
Esse captulo ilustrado com trechos de cdigo C++ que utilizam a
TerraLib. Vale lembrar, que esses exemplos, por questo de clareza,
contm apenas os trechos mais relevantes para ilustrar a informao
sendo destacada. Maiores detalhes sobre as classes, estruturas de dados e
funes da biblioteca, usadas nos exemplos, podem ser obtidos na
documentao de cdigo da TerraLib disponvel em www.terralib.org.

12.2 Modelo conceitual


A TerraLib prope no somente um modelo de armazenamento de
dados geogrficos em um SGBD-OR, mas tambm um modelo
conceitual de banco de dados geogrfico, sobre o qual so escritos seus
algoritmos de processamento. As entidades que formam o modelo
conceitual so:

397
12. Descrio da TerraLib

Banco de Dados representa um repositrio de informaes contendo


tanto os dados geogrficos quanto o seu modelo de organizao. Um
banco de dados pode ser materializado em diferentes SGDBs Sistemas
Gerenciadores de Bancos de Dados, comerciais ou de domnio pblico.
O nico requisito da TerraLib que o SGDB possua a capacidade de
armazenar campos binrios longos, ou uma extenso prpria capaz de
criar tipos abstratos espaciais, e que possa ser acessado por alguma
camada de software.
Layer um layer representa uma estrutura de agregao de um
conjunto de informaes espaciais que so localizadas sobre uma regio
geogrfica e compartilham um conjunto de atributos, ou seja, um layer
agrega coisas semelhantes. Como exemplos de layers podem ser citados os
mapas temticos (mapa de solos, mapa de vegetao), os mapas
cadastrais de objetos geogrficos (mapa de municpios do Distrito
Federal) ou ainda dados matriciais como cenas de imagens de satlites.
Independentemente da representao computacional adotada para tratar
o dado geogrfico, matricial ou vetorial, um layer conhece qual a projeo
cartogrfica da sua componente espacial.
Layers so inseridos no banco de dados atravs da importao de
arquivos de dados geogrficos em formatos de intercmbio como
shapefiles, ASCII-SPRING, MID/MIF, GeoTiff, JPEG ou dbf. A
biblioteca fornece as rotinas de importao desses arquivos. Layers
tambm podem ser gerados a partir de processamentos executados sobre
outros layers j armazenados no banco.
Representao trata do modelo de representao da componente
espacial dos dados de um layer e pode ser do tipo vetorial ou matricial.
Na representao vetorial, a TerraLib distingue entre representaes
formadas por pontos, linhas ou reas e tambm outras representaes
mais complexas formadas a partir dessas como clulas e redes.
Para representaes matriciais, a TerraLib suporta a representao de
grades regulares multi-dimensionais.
A TerraLib permite que um mesmo geo-objeto de um layer possua
diferentes representaes vetoriais (ex. um municpio pode ser
representado pelo polgono que define os seus limites, bem como pelo
ponto onde est localizado em sua sede). A entidade representao da

398
Modelo conceitual

TerraLib guarda informaes como o seu menor retngulo envolvente ou


a resoluo horizontal e vertical de uma representao matricial.
O termo representao espacial, no contexto da TerraLib, muitas
vezes usado de maneira anloga ao termo geometria.
Projeo Cartogrfica serve para representar a referncia geogrfica
da componente espacial dos dados geogrficos. As projees cartogrficas
permitem projetar a superfcie terrestre em uma superfcie plana.
Diferentes projees so usadas para minimizar as diferentes
deformaes inerentes ao processo de projeo de um elipside em um
plano. Cada projeo definida a partir de certo nmero de parmetros
como o Datum planimtrico de referncia, paralelos padro e
deslocamentos (Snyder, 1987).
Tema serve principalmente para definir uma seleo sobre os dados
de um layer. Essa seleo pode ser baseada em critrios a serem
atendidos pelos atributos descritivos do dado e/ou sobre a sua
componente espacial.
Um tema tambm define o visual, ou a forma de apresentao grfica da
componente espacial dos objetos do tema. Para o caso de dados com uma
representao vetorial a componente espacial composta de elementos
geomtricos como pontos, linhas ou polgonos. Para os dados com uma
representao matricial, sua componente espacial est implcita na
estrutura de grade que a define, regular e com um espaamento nas
direes X e Y do plano cartesiano.
Os temas podem definir tambm formas de agrupamento dos dados de
um layer, gerando grupos, os quais possuem legendas que os
caracterizam.
Vista serve para definir uma viso particular de um usurio sobre o
banco de dados. Uma vista define quais temas sero processados ou
visualizados conjuntamente. Alm disso, como cada tema construdo
sobre um layer com sua prpria projeo geogrfica, a vista define qual
ser a projeo comum para visualizar ou processar os temas que agrega.
Visual um visual representa um conjunto de caractersticas de
apresentao de primitivas geomtricas. Por exemplo, cores de
preenchimento e contorno de polgonos, espessuras de contornos e

399
12. Descrio da TerraLib

linhas, cores de pontos, smbolos de pontos, tipos e transparncia de


preenchimento de polgonos, estilos de linhas, estilos de pontos, etc.
Legenda uma legenda caracteriza um grupo de dados, dentro de um
tema, apresentados com o mesmo visual, quando os dados do tema so
agrupados de alguma forma.
As entidades que formam o modelo conceitual esto representadas
tanto nas classes que compe a biblioteca quanto em um conjunto de
tabelas no banco de dados. A seo seguinte mostra como as entidades
do modelo conceitual so representadas nas classes da TerraLib.

12.3 Classes do modelo conceitual


O conceito de um banco de dados TerraLib independente do SGDB
onde ser fisicamente armazenado e implementado em uma classe
abstrata chamada TeDatabase. Essa classe abstrata contm os mtodos
necessrios para criar, popular e consultar um banco de dados. A classe
TeDatabase derivada em classes concretas, chamadas drivers, que
resolvem para diferentes SGDBs comerciais e de domnio pblico, as
particularidades de cada um de forma que as aplicaes possam criar
bancos de dados em diferentes gerenciadores. A TerraLib fornece alguns
drivers em sua distribuio padro, como mostrado na Figura 12.3.
Drivers para outros gerenciadores podem ser criados atravs da
implementao dos mtodos virtuais definidos na classe.

Figura 12.3 Drivers para bancos de dados fornecidos pela TerraLib.


Tipicamente, as aplicaes que usam a TerraLib processam ponteiros
para a classe TeDatabase, inicializados com instancias concretas de
algum driver como mostrado no Exemplo 12.1.

400
Classes do modelo conceitual

TeDatabase* myDb = 0;
if (op == ado)
myDb = new TeAdo(); // Usa ACCESS atravs da biblioteca
ADO
else
myDb = new TeMySQL(); // Usa MySQL

Exemplo 12.1 A classe TeDatabase.


Um Layer existe em memria como uma instncia da classe TeLayer.
Um exemplo de criao de um layer atravs da importao de um arquivo
de dados em formato MID/MIF mostrado no Exemplo 12.2. O arquivo
contm os dados de um cadastro de municpios de um estado e a rotina
de importao vai criar um layer no banco de dados com as geometrias e
atributos dos municpios descritos no arquivo.
TeLayer* lmun =
TeImportMIF("../data/Municipios.mid",myDb,"Municipios");

Exemplo 12.2 Importao de um arquivo de dados.


Uma Representao existe em memria como uma instncia da
estrutura TeRepresentation. Cada layer possui a informao de quais as
representaes geomtricas (ou geometrias) possui. Assim, aps a
execuo do cdigo acima podemos recuperar algumas informaes sobre
a representao geomtrica dos municpios como o seu menor retngulo
envolvente (ver Exemplo 12.3).
TeRepresentation* munPol = lmun-
>getRepresentation(TePOLYGONS);
// recupera o menor retngulo envolvente das geometrias do
tipo
// polgono do layer de municpios
TeBox = mumPol->box_;
Exemplo 12.3 A classe TeRepresentation.
Uma Projeo existe em memria como uma instncia da classe
TeProjection.
A TerraLib tambm fornece uma classe para descrever

401
12. Descrio da TerraLib

um datum planimtrico chamada de TeDatum. A TeProjection uma


classe abstrata que define mtodos para converter coordenadas de uma
projeo para coordenadas geogrficas (latitude e longitude) e vice-versa.
A TerraLib fornece em sua distribuio um conjunto de
especializaes da classe TeProjection representando as projees mais
comuns como UTM, Mercator ou Policnica. O Exemplo 12.4 mostra
como converter coordenadas entre uma projeo UTM, Datum SAD69 e
uma projeo Policnica, Datum WGS84.
TeDatum dSAD69 = TeDatumFactory::make("SAD69");
TeDatum dWGS84 = TeDatumFactory::make("WGS84");
TeUtm* pUTM = new TeUtm(dSAD69,-45.0*TeCDR);
TePolyconic* pPolyconic = new TePolyconic(dWGS84,-45.0*TeCDR);

TeCoord2D pt1(340033.47, 7391306.21); // em projeo UTM


// Converso de UTM para policnica
pUTM->setDestinationProjection(pPolyconic);
// Converte uma coordenada de UTM para coordenada geogrfica
TeCoord2D ll = pUTM->PC2LL(pt1);
// Converte de geogrfica para policnica
TeCoord2D pt2 = pPolyconic->LL2PC(ll);
// Converte uma coordenada de policnica para coordenada UTM
pPolyconic->setDestinationProjection(pUTM);
ll = pPolyconic->PC2LL(pt2);
pt1 = pUTM->LL2PC(ll);

Exemplo 12.4 Converso de coordenadas para diferentes projees.


A classe TeLayer possui a indicao de qual a sua projeo
cartogrfica como mostrado no Exemplo 12.5.
TeProjection* munProj = lmun->projection();

Exemplo 12.5 Recuperao da projeo de um layer.


Temas existem em memria como instncias da classe TeTheme e
Vistas como instncias da classe TeView. O Exemplo 12.6 mostra como
criar uma nova vista e um novo tema a partir do layer criado no Exemplo
12.2.

402
Modelo do banco de dados

// Cria uma vista com a mesma projeo do layer


TeView* view = new TeView("Municipios ", user);
view->projection(munProj);
// salva a vista no banco de dados
myDb->insertView(view))
// cria um tema com todos os objetos do layer
TeTheme* theme = new TeTheme("t_municipios ", lmun);
view->add(theme);

Exemplo 12.6 Criao de um Tema.


Uma ilustrao que resume o relacionamento entre as principais
classes que formam o modelo conceitual da TerraLib mostrado na
Figura 12.4. Um banco TerraLib formado por um conjunto de layers,
cada layer possui uma projeo cartogrfica. Em um banco podem ser
criadas n vistas e cada vista possui sua prpria projeo cartogrfica. Cada
vista pode conter n temas sendo que cada tema criado a partir de um
layer.

Figura 12.4 Relacionamento entre as classes do modelo conceitual de


TerraLib.

12.4 Modelo do banco de dados


Fisicamente, um banco de dados TerraLib formado por um conjunto
de tabelas em um SGBD-OR, onde so armazenados tanto os dados
geogrficos (suas geometrias e seus atributos) quanto um conjunto de

403
12. Descrio da TerraLib

informaes sobre a organizao desses dados no banco, ou seja, o


modelo conceitual da biblioteca. Essas tabelas podem ser divididas em
dois tipos:
1. Tabelas de Metadados: possuem nome e formato pr-definido e so
usadas para guardar o modelo conceitual da TerraLib;
2. Tabelas de Dados: so usadas para guardar os dados em si, tanto
em sua componente espacial quanto descritiva.
As tabelas de metadados so automaticamente criadas quando se cria
um novo banco TerraLib. Para acessar bancos de dados j existentes, as
aplicaes abrem conexes a eles, uma aplicao pode manter conexes a
mais que um banco de dados ao mesmo tempo. Ao criar ou abrir uma
conexo a um banco de dados as aplicaes devem informar os
parmetros exigidos pelo SGDBOR onde est armazenado o banco,
como mostra o Exemplo 12.7. Ao final da execuo da aplicao todas as
conexes devem ser fechadas.
// Criando um novo banco TerraLib
TeDatabase* db = new TeMySQL();
db->newDatabase(dbname, user, password, host);
// Acessando um banco de dados j criado
db->connect(host,user,pass,dbname,0);
//... processamento

// Fecha a conexo
db->close();

Exemplo 12.7 Criao e conexo a um banco TerraLib.


As tabelas de metadados servem para armazenar os conceitos descritos
na Seo 12.2. Cada layer criado no banco gera um registro na tabela
chamada TE_LAYER, o campo layer_id contm a identificao nica de
cada layer no banco de dados. Os outros campos dessa tabela
armazenam o nome e o mnimo retngulo envolvente do layer, ou seja, o
mnimo retngulo envolvente de todas as geometrias associadas ao layer.

404
Modelo do banco de dados

Cada representao geomtrica associada a um layer gera um registro


na tabela TE_REPRESENTATION. Cada tabela de atributos associada a um
layer gera um registro na tabela TE_LAYER_TABLE.
Cada vista criada no banco de dados gera um registro em uma tabela
chamada de TE_VIEW. Cada instncia de projeo cartogrfica
armazenada no banco na tabela TE_PROJECTION. Layers e vistas possuem
referncia a um registro da tabela de projees. Cada tema criado gera
um registro na tabela TE_THEME. Cada tema possui uma referncia para
vista no qual est definido.
Para compreender melhor as tabelas do modelo de metadados e os
relacionamentos entre elas interessante observar o contedo dessas
tabelas aps a execuo de uma seqncia tpica de operaes:
Criar um banco de dados;
Importar um dado geogrfico de um arquivo para um layer do
banco de dados;
Criar uma vista;
Criar um tema usando o layer criado e inseri-lo na vista.
A Figura 12.5 mostra as tabelas do modelo conceitual e seus
relacionamentos aps a execuo da seqncia de operaes. Por
questes de simplicidade apenas alguns campos das tabelas so
mostrados.As tabelas de dados sero descritas mais adiante aps falarmos
sobre o modelo de geometrias e de atributos de TerraLib.

405
12. Descrio da TerraLib

Figura 12.5 Principais tabelas do modelo conceitual da TerraLib.

12.5 Modelo de geometrias


Conforme descrito na Seo 12.2, na TerraLib os dados geogrficos so
agregados em layers. Layers so formados por conjuntos de objetos, onde
cada objeto possui uma identificao nica, um conjunto de atributos
descritivos e uma representao geomtrica. Essa seo descreve o
modelo de classes de geometria da TerraLib.
A classe base da qual derivam todas as geometrias de TerraLib
chamada de TeGeometry. Cada geometria possui uma identificao
nica, a referncia ao seu menor retngulo envolvente e sua projeo e
a identificao do objeto geogrfico que representa. As geometrias
vetoriais de TerraLib so construdas a partir de coordenadas bi-
dimensionais representadas na classe chamada de TeCoord2D. Essas
geometrias so:
Pontos: representados na classe TePoint, implementada como uma
instncia nica de uma TeCoord2D;
Linhas: composta de um ou mais segmentos so representadas na
classe TeLine2D, implementada como um vetor de duas ou mais
TeCoord2D;
Anis: representados pela classe TeLinearRing, so linhas fechadas,
ou seja, a ltima coordenada igual a primeira. A classe

406
Modelo de geometrias

TeLinearRing implementada como uma instncia nica de uma


TeLine2D que satisfaz a restrio de que a primeira coordenada seja
igual a ltima;
Polgonos: representados pela classe TePolygon, so delimitaes de
reas que podem conter nenhum, um ou mais buracos, ou filhos.
So implementados como um vetor de TeLinearRing. O primeiro
anel do vetor sempre o anel externo enquanto que os outros
anis, se existirem, so buracos ou filhos do anel externo.
A fim de otimizar a manuteno das geometrias em memria as
classes de geometrias de TerraLib so implementadas segundo o padro
de projeto handle/body onde a implementao separada da interface
(Gamma et al., 2000). Alm disso, as implementaes so referncias
contadas, ou seja, cada instncia de uma classe de geometria guarda o
nmero de referncias feitas a ela, inicializado com zero quando a
instncia criada. Cada vez que uma cpia dessa instncia solicitada
apenas o seu nmero de referncias incrementado e, cada vez que uma
instncia destruda, o nmero de referncias a ela decrementada. A
instncia efetivamente destruda apenas quando esse nmero chega ao
valor zero.
Outro aspecto importante das classes de geometria da TerraLib que
elas so derivadas ou da classe TeGeomSingle ou da classe
TeGeomComposite, representando, respectivamente, que so geometrias
com um nico elemento menor (como um TePoint) ou que podem ser
compostas de outros elementos menores (como o caso de TePolygon,
TeLine2D e TeLinearRing). Esse padro de compostos de elementos
menores (Gamma et al., 2000) aplicado tambm em classes que
formam conjuntos de pontos, linhas, polgonos e so representados nas
classes TePointSet, TeLineSet, e TePolygonSet. Os padres de projeto
so implementados com o recurso de classes parametrizadas como
mostrado na Figura 12.6, o que torna o cdigo mais reutilizvel.
As geometrias matriciais so representadas na classe TeRaster, que
ser descrita por completo no Captulo 13.

407
12. Descrio da TerraLib

Figura 12.6 Diagrama das principais classes de geometria da TerraLib


(adaptado de Queiroz, 2003)
Um exemplo de criao de geometrias em memria mostrado no Exemplo
12.8.

// Cria um conjunto de linhas


TeLine2D reta;
reta.add(TeCoord2D(500,500));
reta.add(TeCoord2D(600,500));
reta.add(TeCoord2D(700,500));
reta.objectId("reta");

TeLine2D ele;
ele.add(TeCoord2D(700,700));
ele.add(TeCoord2D(800,600));
ele.add(TeCoord2D(900,600));
ele.objectId("ele");

TeLineSet ls;
ls.add(reta);
ls.add(ele);

// Cria um conjunto de polgonos

408
Modelo de geometrias

// Um polgono simples
TeLine2D line;
line.add(TeCoord2D(900,900));
line.add(TeCoord2D(900,1000));
line.add(TeCoord2D(1000,1000));
line.add(TeCoord2D(1000,900));
line.add(TeCoord2D(900,900));

TeLinearRing r1(line);
TePolygon poly1;
poly1.add(r1);
poly1.objectId("spoli");

// Um polgono com um filho


TeLine2D line2;
line2.add(TeCoord2D(200,200));
line2.add(TeCoord2D(200,400));
line2.add(TeCoord2D(400,400));
line2.add(TeCoord2D(400,200));
line2.add(TeCoord2D(200,200));
TeLinearRing r2(line2);

TeLine2D line3;
line3.add(TeCoord2D(250,250));
line3.add(TeCoord2D(250,300));
line3.add(TeCoord2D(300,300));
line3.add(TeCoord2D(300,250));
line3.add(TeCoord2D(250,250));
TeLinearRing r3(line3);
TePolygon poly2;
poly2.add(r2);
poly2.add(r3);
poly2.objectId("cpoli");
TePolygonSet ps;
ps.add(poly1);

409
12. Descrio da TerraLib

ps.add(poly2);

// Cria um conjunto de pontos


TePoint p1(40,40);
p1.objectId("ponto1");
TePointSet pos;
pos.add(p1);

Exemplo 12.9 Criao de geometrias vetoriais em memria.


A TerraLib implementa uma estrutura de dados de espaos celulares,
que juntamente com o suporte para predicados temporais atende s
necessidades de implementao de modelos dinmicos baseados em
espaos celulares. Espaos celulares podem ser vistos ou como uma
estrutura matricial generalizada onde cada clula armazena mais que um
valor de atributo ou como um conjunto de polgonos que no se
interceptam. Essa estrutura traz como uma vantagem a possibilidade de
armazenar conjuntamente, numa nica estrutura, todo o conjunto de
informaes necessrias para descrever um fenmeno espacial complexo,
o que beneficia aspectos de visualizao e interface. Todas as
informaes podem ser apresentadas da mesma forma que objetos
geogrficos com representao vetorial. Para atender a essa necessidade, a
TerraLib prope mais uma geometria chamada TeCell, que representa
uma clula em um espao celular materializado na classe TeCellSet.
O Exemplo 12.10 mostra como criar um espao celular a partir de um
layer armazenado em um banco.
// Recupera o layer de municpios
TeLayer* municipios = new TeLayer("Municipoios");
db_->loadLayer(municipios);
// Cria um espao celular sobre a extenso do layer
// de municpios, onde cada clula tem 100 x 100 metros
TeLayer* espaco_cel = TeCreateCells(CellsMunic, municipios,
100, 100);

Exemplo 12.10 Criao de um espao celular.

410
Modelo de armazenamento de geometrias

Cada clula possui uma identificao nica e uma referncia a sua


posio dentro do espao celular, a qual podem ser associados diferentes
atributos conforme o modelo dinmico sendo construdo.

12.6 Modelo de armazenamento de geometrias


A proposta da TerraLib, conforme mostramos na Figura 12.2, trabalhar
em bancos de dados geogrficos que podem armazenar tanto atributos
descritivos como atributos geomtricos (como pontos, linhas, polgonos e
dados matriciais). Esses bancos de dados podem ser construdos em
SGDBs que possuem extenses espaciais, ou seja, possuem a capacidade
de criar tipos espaciais e manipul-los como tipos bsicos e fornecem
mecanismos eficientes de indexao e consulta (Shekkar e Chawla,
2002). Podem tambm ser construdos em SGDBs que oferecerem
somente a capacidade de criar tabelas com campos do tipo binrio longo.
Na TerraLib esses dois tipos de SGDBs so usados de maneira
transparente atravs da classe abstrata TeDatabase.
O modelo de armazenamento de geometrias em um banco leva em
conta questes relativas eficincia no seu armazenamento e na sua
recuperao, e tambm a existncia ou no de um tipo espacial no
SGDB. Todas as tabelas que armazenam as geometrias possuem os
campos:
geom_id: do tipo inteiro, que armazena a identificao nica da
geometria;
object_id: do tipo texto, que armazena a identificao nica do
objeto geogrfico ao qual a geometria est relacionada;
spatial_data: armazena o dado geomtrico. O tipo desse campo
depende do SGDB onde est armazenado o banco. Para SGDBs
com extenso espacial o tipo fornecido pela extenso. Para
SGDBs sem a extenso espacial um binrio longo.
Para os SGDBs sem extenso espacial as tabelas de geometrias do
tipo linhas e polgonos possuem outros campos para armazenar o
mnimo retngulo envolvente da geometria (lower_x, lower_y,
upper_x, upper_y todos do tipo real). Esses campos so indexados pelos
mecanismos fornecidos pelo SGBD e sero usados pelas rotinas de
recuperao como os indexadores espaciais do dado. Para os SGDBs

411
12. Descrio da TerraLib

com extenso, a coluna com o dado espacial indexada espacialmente


pelo mecanismo oferecido pela extenso.
A Figura 12.7 mostra a diferena entre uma tabela de geometria do tipo
polgono criada em um banco sem extenso espacial e em um banco com
extenso espacial. No segundo caso o tipo GEOMETRY representa o
tipo espacial fornecido pela extenso. No caso das geometrias do tipo
polgono, o modelo de armazenamento em campos longos, prev que
cada anel do polgono armazenado em um registro da tabela. O anel
externo contm a informao sobre o nmero de filhos que o polgono
possui e os anis internos guardam a identificao de seu pai, ou seja, do
anel externo no qual esto contidos. Essa forma de armazenamento
permite a recuperao parcial de polgonos com um grande nmero de
filhos (por exemplo, uma operao de zoom em um mapa em uma rea
grande como a Amaznia legal, em uma escala pequena). Como so
armazenados os retngulos envolventes de cada filho possvel recuperar
somente o pai e os filhos que esto dentro do retngulo envolvente
definido pelo zoom. Isso representa uma otimizao no processamento
desse dado.

Tabela de polgonos em SGDBs sem Tabela de polgonos no Oracle


extenso espacial Spatial

Figura 12.7 Modelo de armazenamento de geometrias do tipo polgonos


(adaptado de Ferreira, 2003).
A Figura 12.8 mostra como so as tabelas que armazenam geometrias
do tipo linhas e a Figura 12.9 as tableas para geometrias do tipo pontos.

412
Atributos descritivos

Tabela de linhas em SGDBs sem extenso Tabela de linhas no Oracle


espacial Spatial

Figura 12.8 Modelo de armazenamento de geometrias do tipo linhas.

Tabela de pontos em SGDBs sem extenso Tabela de pontos no Oracle


espacial Spatial

Figura 12.9 Modelo de armazenamento de geometrias do tipo pontos.

12.7 Atributos descritivos


Os atributos descritivos dos objetos de um layer so representados em
tabelas relacionais onde cada campo representa um atributo do objeto.
Um dos campos deve conter a identificao do objeto e seus valores so
repetidos nas tabelas de geometria permitindo assim a ligao entre os
atributos descritivos e a geometria do objeto.
Cada layer pode ter uma ou mais tabelas de atributos e ao serem
inseridos no banco de dados cada tabela de atributo registrada na tabela
de metadados chamada te_layer_table. Nessa tabela registrada
tambm o nome do campo que a chave primria e identificador do
objeto. Esse campo serve de ligao entre atributos e geometrias. Ao
serem criados, os temas selecionam quais tabelas do layer iro usar.

413
12. Descrio da TerraLib

Quando a tabela de atributos no possui nenhuma informao


temporal e cada registro representa os atributos de um objeto diferente, a
tabela chamada de tabela esttica. Essas classificao semntica das
tabelas de atributos uma caracterstica da TerraLib e tem por objetivo
definir funes e processamentos dependentes desses tipos. Isso ficar
mais claro adiante quando falarmos do processamento de dados espao-
temporais.
Algumas tabelas de atributos, chamadas tabelas externas, no
representam nenhum objeto definido em um layer, mas podem possuir
algum campo com valores coincidentes com os valores de um campo de
uma tabela esttica de um layer. Atravs de uma operao de juno por
esses campos coincidentes uma tabela externa pode acrescentar
informaes aos objetos de um layer. Por isso, tabelas externas podem ser
incorporadas ao banco e registradas como tal, ficando disponveis para
serem usadas em todos os temas do banco.
Em memria, as tabelas de atributos so instncias da classe TeTable.
Essa classe sabe qual o nome, qual o tipo, quais so os campos e pode
conter tambm o seu contedo. No Exemplo 12.11 mostramos como
criar uma instncia da classe TeTable em memria e como adicionar
alguns registros a essa tabela.

// Cria a lista de atributos da tabela


TeAttributeList attList;
TeAttribute at;
at.rep_.type_ = TeSTRING;
at.rep_.numChar_ = 16;
at.rep_.name_ = "IdObjeto";
at.rep_.isPrimaryKey_ = true;
attList.push_back(at);

at.rep_.type_ = TeSTRING; // um atributo do tipo string


at.rep_.numChar_ = 255;
at.rep_.name_ = "nome";
at.rep_.isPrimaryKey_ = false;

414
Atributos descritivos

attList.push_back(at);

at.rep_.type_ = TeREAL; // um atributo do tipo real


at.rep_.name_ = "val1";
at.rep_.isPrimaryKey_ = false;
attList.push_back(at);

// Cria uma instncia da tabela em memria


TeTable attTable("teste2Attr",attList,"IdObjeto","IdObjeto");
row.push_back("reta");
row.push_back("L reta");
row.push_back("11.1");
attTable.add(row);
row.clear();
row.push_back("ele");
row.push_back("L ele");
row.push_back("22.2");
attTable.add(row);
row.clear();
row.push_back("spoli");
row.push_back("Pol simples");
row.push_back("33.3");
attTable.add(row);
row.clear();
row.push_back("ponto1");
row.push_back("Um ponto");
row.push_back("55.5");
attTable.add(row);
row.clear();
row.push_back("cpoli");
row.push_back("Pol buraco");
row.push_back("44.4");
attTable.add(row);
row.clear();

415
12. Descrio da TerraLib

Exemplo 12.11 Criao de uma tabela de atributos em memria.


As sees anteriores tiveram por objetivo explicar o modelo conceitual
de um banco de dados geogrfico TerraLib e o modelo fsico de
persistncia desse modelo conceitual e dos dados geogrficos. As sees
seguintes trataro do acesso ao banco em diferentes nveis de abstrao:
no nvel do layer (TeLayer), no nvel da banco de dados (TeDatabase) e
no nvel de objetos geogrfico (TeQuerier).

12.8 Acesso ao banco de dados atravs do layer


As rotinas de importao que inserem um arquivo de dados geogrfico so
escritas usando os mtodos da classe TeLayer (ver Exemplo 12.2). Essa classe
fornece mtodos para a insero de geometrias e atributos. Atravs desses
mtodos os registros nas tabelas do modelo conceitual so preenchidos
corretamente, fazendo as referncias ao identificador do layer quando
necessrio.
O Exemplo 12.12 deve ser lido como uma seqncia do Exemplo 12.10 e
do Exemplo 12.11 e mostra como criar um layer e como usar seus mtodos
para inserir no banco de dados as geometrias e atributos criados em memria.
// Cria a definio da projeo do layer
TeDatum mDatum = TeDatumFactory::make("SAD69");
TeProjection* pUTM = new TeUtm(mDatum,0.0);
// Cria um novo layer chamado "teste"
// myDb_ um ponteiro para um banco de dados j conectado
TeLayer *layer1 = new TeLayer("teste",myDb_,pUTM);
layer1->addGeometries(TeLINES,"tabelaLinhas");
// Insere as linhas criadas em memria
layer1->addLines(ls);
// Insere os polgonos criados em memria
layer1->addPolygons(ps);
// Insere os pontos criados em memria
layer1->addPoints(pos);
// cria a tabela de atributos criada em memria
layer1->createAttributeTable(attTable);
// salva a tabela de atributos no aco de dados
layer1->saveAttributeTable(attTable))

416
Acesso ao banco de dados atravs do layer

Exemplo 12.12 Insero de geometrias e atributos no banco atravs da classe


TeLayer.
O Exemplo 12.12 mostra como controlar a insero de cada tipo de
geometria (pontos, linhas ou polgonos) podendo inclusive especificar o
nome para as tabelas de geometrias (como no caso da insero de linhas).
interessante verificar o contedo do banco de dados aps a execuo
do Exemplo 12.12. Devem ser notados o contedo das tabelas de
metadados e as referncias feitas aos nomes das tabelas de geometrias, aos
nomes das tabelas de atributos, ao identificador do layer, e o registro dos
nomes de colunas usados para relacionar geometrias e atributos. Na
Figura 12.10 so representados os contedos essas tabelas e seus
relacionamentos. Para efeito de clareza nem todos os campos das tabelas
so representados. As linhas contnuas representam relacionamentos
fsicos entre os campos das tabelas e as linhas pontilhadas representam
relacionamentos em termos de contedo. Por exemplo, o nome da tabela
de atributos e o nome do campo que faz o seu relacionamento com as
tabelas de geometrias so registrados na tabela TE_LAYER_TABLE.

417
12. Descrio da TerraLib

TE_LAYER TE_REPRESENTATION
Layer_id name repres_id layer_id geom_type geom_table

1 teste2 1 1 TePOINTS Points1

2 1 TeLINES tabelaLinhas

3 1 TePOLYGONS Polygons1

TE_LAYER_TABLE
Table_id layer_id attr_table unique_id attr_link

1 1 teste2Attr IdObjeto IdObjeto

TESTE2ATTR POLYGONS1
IdObjeto nome val1
geom_id object_id spatial_data
Reta L reta 11.1
1 spoli bbbbbbbbb
Ele L ele 22.2
2 cpoli bbbbbbbbb
Spoli Pol simples 33.3 TABELALINHAS
Ponto1 Um ponto 55.5 geom_id object_id spatial_data
Cpoli Pol buraco
1 reta bbbbbbbbb

2 ele bbbbbbbbb

POINTS1
geom_id object_id x y

1 ponto1 40 40

Figura 12.10 Contedo do banco aps a execuo do Exemplo 10.

A recuperao dos dados armazenados no banco, tambm pode ser


feita diretamente atravs da classe TeLayer. Essa classe fornece alguns
mtodos para recuperar as geometrias de um determinado tipo como
mostrado no Exemplo 12.13.

TePolygonSet ps2;
layer1->getPolygons(ps2);

418
A interface TeDatabase

cout << "Numero de objetos com geometria do tipo poligono: "


<< ps2.size();
ps2.clear();
// recupera somente os polgonos associados ao objeto com o
// identificador spoli
layer1->loadGeometrySet("spoli");

Exemplo 12.13 Recuperao de geometrias atravs do layer.


Os mtodos para recuperao de geometrias e atributos atravs da
classe TeLayer so poucos, mas a classe TeDatabase uma interface
completa de acesso ao banco de dados, essa interface ser descrita a
seguir.

12.9 A interface TeDatabase


A classe TeDatabase uma interface completa de manipulao do banco
de dados atravs da qual possvel inserir, alterar e recuperar as
entidades do modelo conceitual e os dados geogrficos. Ela contm todos
os mtodos para criar as tabelas de metadados, as tabelas de geometrias
bem como uma tabela de atributos como ilustrado no Exemplo 12.14.
Esse exemplo mostra tambm como recuperar um layer do banco e
posteriormente como remov-lo. A remoo do layer implica que todos os
seus dados e metadados so fisicamente removidos do banco bem como
todas as outras entidades do modelo conceitual que fazem referncia a
ele. Por exemplo, ao remover um layer do banco todos os temas criados
sobre esse layer devem ser removidos tambm.
db->createConceptualModel(); // cria todo o modelo conceitual
// cria uma tabela que armazena geometrias do tipo polgono
db->createPolygonGeometry(TabelaPoligonos);

// cria uma tabela de atributos descritivos


TeAttributeList meusAttributos;
db->createTable(TabelaAtributos, meusAttributos);

// cria uma nova coluna em uma tabela j existente


TeAttributeRep novaColuna;

419
12. Descrio da TerraLib

novaColuna.type_ = TeSTRING;
novaColuna.name_ = "novaCol";

novaColuna.numChar_ = 10;
db->addColumn(TabelaAtributos, novaColuna);
// recupera um layer do banco
TeLayer *layer = new TeLayer("Distritos");
// carrega todas as informaes sobre o layer chamado
Distritos
db->loadLayer(layer);
// remove o layer
db->deleteLayer(layer->id());

Exemplo 12.14 Mtodos de criao e modificao de tabelas da classe


TeDatabase.
A classe TeDatabase tambm fornece mtodos para a insero de
geometrias e atributos nas tabelas do banco de dados como mostra o
Exemplo 12.15.
TePolygonSet polyset;
db->insertPolygonSet(tabPoligono, polyset);

TeLineSet lineset;
db->insertLineSet (tabLine, lineset);

TePointSet pointset;
db->insertPointSet(tabPoint, pointset);

TeTable tabAttributes;
insertTable(tabAttributes);

Exemplo 12.15 Inseres no banco atravs da classe TeDatabase.


A classe TeDatabase tambm capaz de submeter ao banco comandos
escritos em SQL Structured Query Language como mostrado no
Exemplo 12.16. Apesar da SQL ser considerada padro para SGDBs
relacionais, podem existir algumas variaes em termos da capacidade de
execuo de um comando SQL. O mtodo TeDatabase::execute retorna

420
A classe TeDatabasePortal

verdadeiro ou falso caso o comando foi executado com sucesso ou no,


respectivamente. A classe TeDatabase armazena o erro retornado pelo
SGDB resultante do ltimo comando executado sobre o banco.

string sql = UPDATE TabelaAtributos SET novaCol = xxx ;


if (db->execute(sql))
cout << Comando executado com sucesso!;
else
cout << Erro: << db->errorMessage();

Exemplo 12.16 Execuo de um comando SQL.


Note que o mtodo TeDatabase::execute no deve ser usado para
comandos que representam consultas ao banco, ou seja, que retornam
valores ou registros, mas somente para comandos que alteram as tabelas e
registros do banco.

12.10 A classe TeDatabasePortal


A classe TeDatabase fornece um mecanismo mais flexvel de consulta ao
banco de dados do que apenas atravs dos mtodos da classe TeDatabase.
Esse mecanismo implementado pela classe TeDatabasePortal. Os
portais de consultas so criados a partir de qualquer instncia da classe
TeDatabase que possua uma conexo aberta. Os portais podem submeter
consultas SQL ao banco e disponibilizar os registros resultantes da
consulta para a aplicao processar. Um banco pode criar quantos portais
forem necessrios, porm aps serem consumidos os resultados todo
portal deve ser destrudo. O Exemplo 12.17 mostra o uso tpico de um
portal.

// Abre um portal no banco de dados


TeDatabasePortal* portal = db->getPortal();
if (!portal)
return;

// Submete uma consulta sql a uma tabela

421
12. Descrio da TerraLib

string sql = SELEC * FROM TabelaAtributos;


if (!portal->query(sql))

{
cout << No foi possvel executar... << db-
>errorMessage();
delete portal;
return;
}
// Consome todos os registros resultantes
while (portal->fetchRow())
{
cout << Atributo 1: << portal->getData(0) << endl;
cout << Atributo 2: << portal->getData(nome) << endl;
cout << Atributo 3: << portal->getDouble(2) << endl;
}
// Libera os portal para fazer uma nova consulta
portal->freeResult();

// Submete uma nova consulta


sql = SELECT SUM(val1) FROM TabelaAtributos WHERE val1 >
33.5;
if (portal->query(sql) && portal->fetchRow())
cout << Soma: << portal->getDouble(0);
delete portal;

Exemplo 12.17 Uso do TeDatabasePortal.


Analisando o exemplo vemos que aps a chamada do mtodo
TeDatabasePortal::query os registros ficam disponveis para serem
consumidos em seqncia. Um ponteiro interno posicionado em uma
posio anterior ao primeiro registro. A cada chamada ao mtodo
TeDatabasePortal::fetchRow o ponteiro interno incrementado e o
valor verdadeiro retornado quando o ponteiro est em um registro
vlido ou falso caso contrrio. Dessa forma possvel fazer o loop em
todos os registros retornados.

422
A classe TeDatabasePortal

Os campos de um registro do portal podem ser acessados de duas


formas: pela ordem do campo na seleo expressa na SQL (iniciando em
zero), ou diretamente pelo nome do campo. O valor do campo pode ser
obtido como uma string de caracteres atravs do mtodo
TeDatabasePortal::getData independentemente do tipo do campo ou
atravs dos mtodos que especificam o tipo de retorno (getDouble,
getInt, getDate ou getBlob). Na segunda forma necessrio que a
aplicao conhea o tipo do campo sendo acessado.
A classe TeDatabasePortal tambm pode executar consultas sobre
uma tabela de geometrias e acessar os campos resultantes como os tipos
geomtricos da TerraLib, como mostrado no Exemplo 12.18.
// Submete uma consulta sobre uma tabela de geometrias
string q =" SELECT * FROM Poligons11 WHERE object_id=cpoli;
q += " ORDER BY parent_id, num_holes DESC, ext_max
ASC";

if (!portal->query(q) || !portal->fetchRow()))
{
delete portal;
return false;
}
bool flag = true;
do
{
TePolygon poly;
flag = portal->fetchGeometry(poly);
// usa o polgono retornado
} while (flag);
delete portal;

Exemplo 12.18 Uso de um portal para recuperar geometrias.


Essa seo mostrou como utilizar a interface TeDatabase para
construir e consultar um banco de dados. As consultas expressas at agora
foram sempre baseadas em critrios a serem atendidos sobre atributos
descritivos porm, parte importante de um banco de dados geogrfico a

423
12. Descrio da TerraLib

consulta por critrios espaciais. A seo seguinte mostra como as


operaes espaciais so tratadas na TerraLib.

12.11 Operaes espaciais


A TerraLib oferece um conjunto de operaes espaciais sobre geometrias
vetoriais e matriciais (uma reviso da literatura e descrio mais detalhada
sobre operaes espaciais pode ser encontrada em Ferreira, 2003). As
operaes espaciais implementadas na TerraLib podem ser divididas em:
Determinao de relacionamentos topolgicos entre geometrias
vetoriais: so baseados na matriz de 9-interseces dimensionalmente
estendidas onde so formalizadas relaes como toca, intercepta,
cobre, disjunto ou -coberto-por, como mostrado no captulo 5.
Funes mtricas: como clculo de reas e comprimentos e buffers de
distncia;
Gerao de novas geometrias: como a gerao de centrides e
geometrias convexas;
Operaes que combinam geometrias: como diferena, unio e
interseco e diferena simtrica;
Operaes zonais e focais sobre geometrias matriciais: como a
obteno de medidas estatsticas sobre uma regio de um dado
matricial e operaes de recorde de uma regio do dado matricial.
As operaes espaciais esto implementados em um conjuntos de
mtodos da classe TeDatabase que funcionam como uma Interface Genrica
de Operaes Espaciais. Essa interface genrica porque, atravs da classe
TeDatabase, esses mtodos podem ser chamados da mesma maneira em
drivers para SGDBs com extenso espacial ou sem extenso espacial. Drivers
para SGDBs com extenso espacial implementam a interface de operaes
especiais usando as funes da extenso espacial. Drivers que no possuem a
extenso implementam a interface atravs de funes espaciais bsicas
escritas sobre as classes de geometria, aps a sua recuperao do banco de
dados. Na Figura 12.12 mostramos a diferena de execuo de uma
operao espacial, clculo de rea de um objeto, executada em um driver
sem extenso espacial (p. ex. ACCESS) e um driver com extenso espacial
(p. ex. Oracle Spatial).
As operaes sobre dados matriciais foram implementadas somente
usando as classes da TerraLib, uma vez que as extenses espaciais ainda no

424
Operaes espaciais

fornecem as operao sobre dados matriciais. Uma descrio completa da


interface genrica de operaes espaciais em um banco de dados geogrfico
pode ser encontrada em Ferreira (2003).

(a) Banco sem extenso espacial (b) Banco com extenso espacial
Figura 12.11 Representao da operao de clculo de rea
(adaptado de Ferreira, 2003).
O Exemplo 12.19 mostra a execuo de operaes espaciais unrias sobre
uma tabela de geometrias do tipo polgono, que representam objetos que so
municpios do estado de So Paulo, identificados pelo nome do municpio.
Sobre um objeto escolhido (o municpio de So Paulo) so calculados um
valor de rea e um buffer de distncia de 1000 metros do objeto. O resultado da
operao um conjunto com dois polgonos onde o primeiro o buffer
externo e o segundo o buffer interno.
string polyTable = Poligons11; // tabela de polgonos
// Consulta 1: calcular a rea do municpio de So Paulo
// Chama uma funo unria sobre a tabela de polgonos
vector<string> spId; // identificadores dos
objetos
spId.push_back(So Paulo);
double area;
db->calculateArea(polyTable, TePOLYGONS, spId, area);
// Consulta 2: calcular um buffer de distncia de 1000 metros
do municpio de So Paulo
// Chama uma funo unria sobre a tabela de polgonos

425
12. Descrio da TerraLib

TePolygonSet& bufferSet;
db->Buffer(polyTable, TePOLYGONS, spId, bufferSet, 1000.0);
Exemplo 12.19 Operaes espaciais unrias.
O Exemplo 12.20 mostra a execuo de operaes espaciais
envolvendo mais uma tabela de geometrias, que contm geometrias do
tipo linhas representando estradas estaduais. Essas operaes so
baseadas em consultas sobre relaes topolgicas entre geometrias, no
primeiro caso entre geometrias de uma mesma tabela e no segundo entre
geometrias de duas tabelas diferentes. interessante notar que o
resultado retornado em um portal de forma que a aplicao possa
consumir cada geometria resultante uma a uma.
string lineTable = Lines12; // tabela de linhas
TeDatabasePortal result = db->getPortal(); // portal
// Consulta 3: quais os municpios que tocam So Paulo?
// Chama uma funo binria sobre a tabela de polgonos
if (db->spatialRelation(polyTable, TePOLYGONS, spId, result,
TeTOUCHES)) {
bool flag = true;
do {
TePolygon poly;
flag = result->fetchGeometry(poly); // polgono
retornado
} while (flag);
}
result->freeResult();
// Consulta 4: quais as estradas que cruzam So Paulo?
// Funo binria entre a tabela de polgonos e de linhas
if (db->spatialRelation(polyTable, TePOLYGONS, spId,
lineTable, TeLINES, result, TeINTERSECTS)) {
bool flag = true;
do {
TeLine line;
flag = result->fetchGeometry(line); // linha retornada
} while (flag);
}

426
Operaes espaciais

Exemplo 12.20 Operaes Espaciais para a consulta de relacionamentos


topolgicos.
O Exemplo 12.21 mostra as operaes Zonal e Recorte de um dado
matricial. Na operao zonal, um conjunto de estatsticas (por exemplo
soma, valor mximo, valor mnimo, contagem, mdia, varincia, etc.)
calculado sobre a regio do dado matricial contida dentro de um
polgono que representa a zona de interesse. O resultado fornecido em
uma estrutura prpria que armazena as estatsticas calculadas em cada
dimenso do dado matricial.
Na operao de recorte o dado matricial recortado pela zona de
interesse, o resultado um novo layer no banco de dados. A
implementao dessa funo foi feita usando o conceito de iterador sobre
uma representao matricial, ou seja, um ponteiro que percorre todos os
elementos do dado matricial. No caso da operao de recorte, foi usada
uma especializao do conceito de iterador sobre dados matriciais, de
forma que esse percorra somente os elementos que possuam uma certa
relao com a regio de interesse. As relaes possveis so que a rea do
elemento esteja toda dentro da regio, que a rea do elemento esteja toda
fora da regio, que o centro do elemento esteja dentro da regio ou que o
centro do elemento esteja fora da rea de interesse.
string rasterTable = RasterLayer12; // tabela de linhas
TePolygon reg;
TeStatisticsDimensionVect result;

// Consulta 5: Calcular as estatsticas do dado matricial


usando como regio de interesse
// o polgono defindo em reg
db->Zonal(rasterTable, reg, result);

// Consulta 5: Recortar o dado matricial usando como regio de


interesse o polgono
// definido em reg
TeStrategicIterator st = TeBoxPixelIn;
db->Mask(rasterTable, reg, Recorte, st);

Exemplo 12.21 Operaes sobre dados matriciais.

427
12. Descrio da TerraLib

As rotinas que implementam as operaes espaciais sobre as estruturas


geomtricas tambm esto disponveis para serem usadas diretamente
pelas aplicaes. Essas rotinas so funes parametrizadas de forma a
poder serem chamadas com a mesma assinatura, tomando como
parmetros as diferentes classes de geometrias vetoriais, como mostrado
no Exemplo 12.22. Uma descrio completa da das operaes espaciais
da TerraLib est em Queiroz (2003).
TeLine line1;
TeLine line2;
bool res = TeOverlaps(line1, line2);
TePolygon pol1;
TePolygon pol2;
res = TeOverlaps(pol1, pol2);

Exemplo 12.22 Chamada de operaes espaciais sobre geometrias.

12.12 Dados espao-temporais


A TerraLib tem uma proposta de trabalhar com dados geogrficos espaciais
e temporais, ou seja, de considerar a componente temporal dos dados
geogrficos, quando houver. Como exemplos de dados espao-temporais
podemos identificar:
Eventos: ocorrncias independentes no espao e no tempo, que
possuem um rtulo temporal de quando o evento ocorreu. Esse o
caso de crimes que ocorrem em uma determinada localizao de
uma cidade em uma determinada data e hora. Cada objeto espacial
associado a um associado a um evento ter uma nica identificao
no banco de dados;
Objetos Mutveis: os quais possuem uma geometria fixa ao longo
do tempo, porm seus atributos descritivos podem variar. Um
exemplo desse tipo de objeto so os dados manipulados por modelos
dinmicos baseados em espaos celulares, ou estaes fixas de
coletas de dados;
Objetos em Movimento: os quais possuem limites e localizaes, ou
seja, geometrias que podem variar no tempo assim como seus
atributos descritivos. Esse o caso quando se acompanha a evoluo

428
Dados espao-temporais

de dos lotes de uma cidade, ou dos polgonos de desmatamento de


uma regio.
No modelo de banco de dados geogrfico proposto pela TerraLib os
dados so registrados semanticamente em funo da sua natureza
temporal com o objetivo de possam ser construdas funcionalidades
especficas relativas a essa natureza temporal. Entre essas funcionalidades
esto includos os algoritmos de agrupamento temporal, visualizao de
animaes ou criao de temas com restries temporais e ferramentas de
modelagem dinmica. Assim, quando uma tabela de atributos, associada
a um layer, inserida em um banco de dados, uma das informaes
registradas na tabela de metadados TE_LAYER_TABLE qual o seu tipo, e
dependendo desse tipo outras informaes so necessrias. Alm das
tabelas estticas e externas descritas anteriormente (ver Seo 12.7) os
outros tipos de tabelas so:
Eventos: uma tabela de atributos de eventos. preciso registrar
qual de seus campos possui a identificao nica do evento (e que
faz a ligao com sua geometria) e quais de seus campos possuem
a informao temporal da ocorrncia do evento. A informao
temporal normalmente um intervalo (tempo inicial e tempo
final), mas para rtulos temporais pontuais o tempo inicial igual
ao tempo final;
Atributos Variveis: uma tabela de atributos relacionada a dados do
tipo objetos mutveis. preciso identificar quais o campo possui a
identificao nica do objeto no banco (e que faz a ligao com
sua geometria), qual campo identifica de maneira nica cada
verso, ou instncia de atributos associada ao objeto, e quais
campos possuem a informao temporal que determina o
intervalo de validade dessa instncia.
O modelo de armazenamento dos objetos em movimento ainda est
sendo desenvolvido na TerraLib, uma vez que esse o caso mais
complexo. Alm de se considerar a variao no tempo associado aos
atributos dos objetos preciso considerar a variao associada s suas
geometrias. Cada geometria tem que armazenar um intervalo (ou
instante) de validade e necessrio propor um mecanismo de associao,

429
12. Descrio da TerraLib

em um determinado instante ou intervalo, entre a geometria e os


atributos do objeto.
Nas classes da TerraLib o modelo de tratamento de dados espao-
temporais est distribudo nas classes TeSTInstance, TeSTElement,
TeSTElementSet e TeQuerier.
A classe TeSTInstance da representa uma instncia, ou verso, no
tempo de um elemento ou objeto geogrfico. Uma instncia contm o
identificador do elemento ou objeto ao qual pertence, um intervalo de
tempo de validade, suas geometrias e seus de atributos. Todas as
instncias de um mesmo elemento ou objeto geogrfico so representadas
pela classe TeSTElement. A classe TeQuerier implementa um mecanismo
flexvel de consulta ao banco de dados e recuperao de objetos e suas
instncias, dinmicos ou esttico no tempo. No segundo tipo cada objeto
tem apenas uma nica instncia.
// Recupera o layer de estaes de coletas, ou armadilhas
TeLayer* armadilhas = new TeLayer("LAYER_ARMADILHAS");
db_->loadLayer(armadilhas);
// Preenche os parmetros da consulta
// carregar todos os atributos dos objetos
bool loadAllAttributes = true;
// no carregar as geometrias dos objetos
bool loadGeometries = false;
TeQuerierParams querierParams(loadGeometries,
loadAllAttributes);

// carregar as instncias dos objetos do layer


querierParams.setParams(armadilhas);

// Cria uma consulta a partir dos parmetros


// Carrega as instncias de objetos do banco que atendem aos
critrios da consulta
TeQuerier querier(querierParams);
querier.loadInstances();

430
Dados espao-temporais

// Retorna a lista dos atributos descritivos carregados e


mostra seus nomes
unsigned int i;

TeAttributeList attrList = querier.getAttrList();

for (i=0; i<attrList.size(); ++i)


cout << attrList[i].rep_.name_ << endl;
// Percorre as instncias selecionadas uma a uma
TeSTInstance sti;
while(querier.fetchInstance(sti)) {
cout << " Object: " << sti.objectId() << endl << endl;
// Mostra o nome e valor de cada atributo da instncia
TePropertyVector vec = sti.getPropertyVector();
for (i=0; i<vec.size(); ++i) {
string attrName = vec[i].attr_.rep_.name_;
string attrValue = vec[i].value_;
cout << attrName << " : " << attrValue << endl;
}
}

Exemplo 12.23 Aplicao de um TeQuerier para recuperar as instncias


dos objetos de um layer.
A classe TeQuerier contm uma srie de parmetros que definem
quais instncias de quais objetos e quais atributos desses objetos devem
ser recuperados. Uma vez definidos os parmetros do TeQuerier e
aplicada a seleo, as aplicaes podem processar as instncias retornadas
uma a uma. O Exemplo 12.23 mostra como criar um TeQuerier para
recuperar todas os objetos de um layer e processar todas as instncias
desses objetos.
O layer utilizado no exemplo agrega objetos armadilhas para a coleta
de ovos de um determinado inseto, causador de uma doena. A cada
semana as armadilhas so visitadas e o nmero de ovos na armadilha e
outros parmetros da so observados e inseridos no banco. Esse dado do
tipo geometrias fixas e atributos variveis no tempo. A armadilha no
muda, mas seu atributo quantidade de ovos varia a cada semana.

431
12. Descrio da TerraLib

Um TeQuerier tambm pode carregar todos objetos definidos em um


tema, lembrando que um tema pode definir um subconjunto dos objetos
de um layer. A seleo expressa no TeQuerier vai levar em conta as
restries definidas no tema sendo recuperado. O Exemplo 12.24 mostra
uma consulta para recuperar todas as instncias, atributos e geometrias
dos objetos pertencentes s armadilhas do tipo A.

// Recupera o tema com somente as armadilhas do tipo A


TeTheme* armadilhasTipoA = new TeTheme("Armadilhas_A");
db_->loadTheme(bairros);
// Preenche os parmetros da consulta
// carregar todos os atributos dos objetos
bool loadAllAtt = true;
// carregar as geometrias dos objetos
bool loadGeom = true;
// carregar as instncias dos objetos do tema
TeQuerierParams querierParams(loadGeom, loadAllAttr);
querierParams.setParams(armadilhasTipoA);

// Cria uma consulta e carrega as instncias


// de objetos do banco que atendem aos critrios da consulta
TeQuerier querier(querierParams);
querier.loadInstances();
// Percorre as instncias selecionadas uma a uma
TeSTInstance sti;
while (querier.fetchInstance(sti)) {
if (sti.hasPoints()) {
TePointSet ponSet;
sti.getGeometry(ponSet);
for (unsigned int i=0; i<ponSet.size(); ++i) {
cout << " Point : " << ponSet[i].location().x() << ",
";
cout << ponSet[i].location().y() << endl;
}
}

432
Dados espao-temporais

}
Exemplo 12.24 Aplicao de um TeQuerier para recuperar as instncias dos
objetos de um tema.
O Exemplo 12.25 mostra como incluir uma restrio espacial nos
parmetros da consulta a ser expressa no TeQuerier, mostra tambm
como selecionar apenas alguns atributos dos objetos. O exemplo
seleciona somente as instncias das armadilhas que esto dentro do
polgono que delimita certo bairro, e para cada instncia de armadilha
seleciona somente o atributo nro_ovos.
TePolygonSet limiteBairro;
// Preenche os parmetros da consulta
vector<string> attributes;
attributes.push_back ("ARMADILHAS. NRO_OVOS");
bool loadGeom = true; // carregar as geometrias dos
objetos
TeQuerierParams querierParams(loadGeom, attributes);
querierParams.setParams(armadilhas); // carregar as instncias
dos objetos do tema
querierParams.setSpatialRest(limiteBairro);

Exemplo 12.25 Definio de uma consulta com restrio espacial e com


seleo de somente um atributo.
A classe TeQuerier tambm pode expressar agrupamentos de valores
de atributos de as instncias por objeto, por restrio espacial ou ainda
por unidades (chronons) de tempo. O Exemplo 12.16 mostra como
agrupar por armadilha todas as instncias do seu atributo nro_ovos
atravs de uma operao de soma.
// Cria uma definio de agrupamento do atributo nro_ovos
// atravs da operao de soma
TeGroupingAttr attributes;
pair<TeAttributeRep,TeStatisticType>
attr1(TeAttributeRep("ARMADILHAS.NRO_OVOS"), TeSUM);
attributes.insert(attr1);
// Opo 1: Consulta de instncias agrupadas por objeto
// Resultado vai ser uma nica instncia por objeto

433
12. Descrio da TerraLib

TeQuerierParams querierParams(loadGeom, attributes);


querierParams.setParams(armadilhas);

Exemplo 12.26 Consulta de instncias agrupadas por objetos.


Os Exemplo 12.25 e 12.26 mostram como usar a classe TeQuerier para
expressar uma seleo de objetos e suas instncias no tempo. Uma
caracterstica importante que atravs desse mecanismo no necessrio
armazenar em memria todas as instncias selecionadas, j que essas
podem ser processadas e descartadas uma a uma. Cada instncia
carregada para a memria somente quando requisita atravs do mtodo
TeQuerier::fetchInstance. Uma alternativa para carregar para a
memria todas as instncias de todos os objetos de uma seleo atravs
da classe TeSTElementSet. Essa classe funciona como uma estrutura de
agregao que armazena em memria as instncias dos objetos com suas
geometrias e atributos descritivos, fornecendo mecanismos para o seu
percorrimento. A TerraLib fornece algumas funes de preenchimento
da estrutura TeSTElementSet como mostramos no Exemplo 12.27.
// Recupera o layer de estaes de coletas
TeLayer* armadilhas = new TeLayer("LAYER_ARMADILHAS");
db_->loadLayer(armadilhas);
// Cria um STElementSet para os objetos do layer de armadilhas
TeSTElementSet steSet(armadilhas);

// Carrega STElementSet carregando cada instncia com todos os


seus atributos e sua geometria
TeSTOSetBuildDB(&steSet, true, true);
cout << "Nmero de elementos no conjunto: " <<
steSet.numElements() << endl;

// Percorre elementos e suas intncias atravs de iteradores


TeSTElementSet::iterator it = steSet.begin();
while ( it != steSet.end()) {
TeSTInstance st = (*it);
cout << " Id do objeto : " << st.objectId() << endl;
if (sti.hasPoints()) {
TePointSet ponSet;

434
Funes de processamento de dados geogrficos

sti.getGeometry(ponSet);
for (unsigned int i=0; i<ponSet.size(); ++i) {

cout << " Point : " << ponSet[i].location().x() << ",


";

cout << ponSet[i].location().y() << endl;


}
}
++it;
}

Exemplo 12.27 Criao de um TeSTElementSet.


Essa seo mostrou os mecanismos para tratar dados espao-temporais
da TerraLib. Esses mecanismos so baseados no registro da caracterstica
temporal das tabelas de atributos no banco de dados e expresso dos
conceitos de objetos com uma identidade nica e persistente ao longo do
tempo e de instncias no tempo de atributos e geometrias desses objetos.

12.13 Funes de processamento de dados geogrficos


Essa Seo descreve resumidamente algumas das funes de
processamento oferecidas pela TerraLib, implementadas usando as
estruturas e mecanismos descritos nas sees anteriores.
Matriz de Proximidade Generalizada: e uma extenso da matriz de
proximidade usada em muitos mtodos de anlise espacial (Souza et. al,
2003). A TerraLib oferece as funes para gerar matriz de proximidade
seguindo diferentes critrios, como por exemplo adjacncia ou distncia
mnima, e para ponderar e fatiar a matriz segundo algum atributo. Alm
disso, uma matriz de proximidade pode ser gerada a partir de um
TeSTElementSet.
Algoritmos de anlise espacial: incluem algoritmos para gerao de
superfcies de kernel, ndices de correlao espacial como LISA, Moran e
Bayesiano local e global. Para saber mais sobre anlise espacial de dados
geogrficos consulte Bayley e Gatrell, 1995.
Operaes Geogrficas: combinam temas para gerar novos layers
gerando novos atributos e novas geometrias vetoriais. Essas funes
incluem a agregao de objetos por atributos, por exemplo, a agregao

435
12. Descrio da TerraLib

de municpios pelo atributo estado, gerando um layer de estados a partir


de um layer de municpios. Incluem tambm funes de associao de
dados por localizao, por exemplo, atribuindo ao layer de municpios
valores de atributos calculados a partir de todas as ocorrncias de crime
que acontecem dentro do municpio.
Geocodificao de endereos: implementa o processo de associar uma
coordenada geogrfica a um evento tendo por base um layer que
contenha os endereos que se deseja encontrar. Deste modo, uma vez
associado a uma localizao, o endereo pode ser usado para visualizao
dos eventos sobre um mapa ou utilizado para anlises.
Atualmente comeam a ser integrados na TerraLib funes de
processamento de imagens como segmentao e classificao, e
interpolao de superfcies a partir de amostras.

436
Funes de processamento de dados geogrficos

Referncias
BAILEY, T.; GATRELL, A. Interactive Spatial Data Analysis. London:
Longman Scientific and Technical,1995.
CMARA, G.; SOUZA, R. C. M.; PEDROSA, B.; VINHAS, L.; MONTEIRO,
A. M. V.; PAIVA, J. A.; CARVALHO, M. T.; GATTASS, M. TerraLib:
Technology in Support of GIS Innovation. In: II Simpsio Brasileiro em
Geoinformtica, GeoInfo2000, 2000, So Paulo.
DAVIS, C.; CMARA, G. Arquitetura de Sistemas de Informao Geogrfica.
In: CMARA, G.; DAVIS, C.; MONTEIRO, A. M. V. (Org.). Introduo
cincia da geoinformao. So Jos dos Campos: INPE, out. 2001. cap. 3.
FERREIRA, K. R. Interface para Operaes Espaciais em Banco de Dados
Geogrficos.So Jos dos Campos: INPE - Instituto Nacional de Pesquisas
Espaciais, 2003. Dissertao de Mestrado, Computao Aplicada, 2003.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLSSIDES, J. Design Patterns -
Elemens of Reusable Object-Oriented Software. Reading, MA: Addison-
Wesley,1995. 395 p.
INPE-DPI. O aplicativo TerraView. Disponvel em:
<http://www.dpi.inpe.br/terraview>. Acesso em: maio 2005.
MySQL AB. MySQL reference manual. Disponvel em:
<http://www.mysql.org>.Acesso em: abril 2005.
Open GIS Consortium. Web Map Service Version 1.13. Disponvel em:
<http://www.opengeospatial.org>. Acesso em: maio 2005.
QUEIROZ, G. R. Algoritmos Geomtricos para Banco de Dados geogrficos:
da teoria prtica na TerraLib.So Jos dos Campos, SP: INPE - Instituto
Nacional de Pesquisas Espaciais, 2003. Dissertao de Mestrado,
Computao Aplicada, 2003.
SHEKHAR, S.; CHAWLA, S. Spatial Databases: A Tour. Prentice Hall,2002.
SNYDER, J. P. Map Projections A Working Manual. Washington, DC,
USA: United States Government Printing Office,1987.
SOUZA, R. C.; CMARA, G.; AGUIAR, A. P. D. Modeling Spatial Relations
by Generalized Proximity Matrices. In: V Simpsio Brasileiro de
Geoinformtica, 2003, Campos do Jordo. Anais do GeoInfo 2003. So Jos
dos Campos : SBC, 2003.
STROUSTROUP, B. C++ Programming Language - 3rd Edition. Reading,
MA: Addison-Wesley,1997. 911 p.

437
12. Descrio da TerraLib

438
13 Tratamento de dados matriciais na TerraLib

Lbia Vinhas
Ricardo Cartaxo Modesto de Souza

13.1 Introduo
Esse captulo descreve a soluo adotada na biblioteca TerraLib (Cmara
et al., 2000) para o tratamento de dados matriciais incluindo a
decodificao de diferentes formatos e o seu armazenamento e
recuperao em bancos de dados objeto-relacionais.
Os bancos de dados geogrficos ainda possuem um desafio: o
tratamento eficiente de dados matriciais, mais especificamente de dados
de imagens de satlites. As imagens de sensoriamento remoto so uma
das mais procuradas fontes de informao espacial para pesquisadores
interessados em fenmenos geogrficos de larga escala. A variedade de
resolues espectrais e espaciais das imagens de sensoriamento remoto
grande, variando desde as imagens pancromticas do satlite IKONOS,
com resolues espaciais de um metro, at as imagens polarimtricas de
radar que em faro parte da nova gerao de satlites RADARSAT e
JERS. Os recentes avanos da tecnologia de sensoriamento remoto, com
o desenvolvimento de novas geraes de sensores, tm trazido
considerveis avanos nas aplicaes de monitoramento ambiental e de
planejamento urbano (Moreira, 2004).
A construo de bancos de dados geogrficos capazes de manipular
imagens de satlites tem sido amplamente estudado na literatura e a
abordagem principal tem sido o desenvolvimento de servidores de dados
especializados, como o caso do PARADISE (Patel, Yu et al. 1997) e do
RASDAMAN (Reiner, Hahn et al. 2002). A vantagem principal dessa
abordagem a capacidade de melhora de desempenho no caso de
13. Tratamento de dados matriciais na TerraLib

grandes bases de dados de imagens. A principal desvantagem dessa


abordagem a necessidade de um servidor especfico o que sobrecarrega
o SIG Sistemas de Informao Geogrfica.
Alm das imagens de satlite os SIG tambm devem ser capazes de
tratar outros tipos de geo-campos, cuja representao computacional
mais adequada a matricial. Esses dados incluem grades numricas que
representam fenmenos qualitativos contnuos, como superfcies de
fenmenos fsicos (por exemplo, altimetria), ou sociais (por exemplo,
excluso social). A Figura 13.1 mostra dois exemplos de dados
geogrficos diferentes com representao matricial: uma foto area e uma
superfcie de altimetria.

Figura 13.1 Exemplos de dados matriciais.


Os SIGs precisam trabalhar de maneira integrada com dados
matriciais de diferentes naturezas e na mesma base de dados geogrfica,
que pode conter tambm geo-objetos com representao vetorial.
A implementao de um sistema de manipulao de dados matriciais,
como grades e imagens de sensoriamento remoto, em um SGDB-OR,
juntamente com funes para tratar outros tipos de dado espaciais de
grande importncia para os SIG, e traz vantagens sobre sistemas
especializados para construir bases de dados de imagens.
A infra-estrutura objeto-relacional pode ser usada para construir um
sistema de indexao espacial, o que permite a consulta e recuperao de
dados matriciais integrada interface genrica de manipulao de dados
matriciais. Atravs da indexao adequada, algoritmos de compresso e
sistemas de cache um desempenho satisfatrio pode ser conseguido, para
os SIGs manipulando bases de dados compostas de representaes
matriciais e vetoriais.

428
Caractersticas dos dados matriciais

13.2 Caractersticas dos dados matriciais


Dados matriciais em TerraLib ser entendidos como qualquer dado
representado em uma estrutura de matriz retangular com M linhas N
colunas. Exemplos desse tipo de dado so grades regulares com valores
de uma determinada grandeza (como uma grade de altimetria) ou
imagens de sensoriamento remoto.
Dados matriciais podem possuir outras dimenses alm das duas
representadas no plano cartesiano das linhas e colunas. Ou seja, a cada
elemento da matriz podem estar associados um ou mais valores. Por
exemplo, as imagens multi-dimensionais de sensoriamento remoto
possuem em cada elemento, ou pixel, da imagem o valor relativo a uma
banda espectral do instrumento imageador que obteve a imagem. Por
esse ser o caso mais tpico de dados matriciais multi-dimensionais, em
TerraLib dizemos que um dado matricial possui M linhas M colunas
B bandas, como representado na Figura 13.2.

Colunas

Linhas ...

Bandas

Figura 13.2 Representao matricial multi-dimensional.


Cada posio da representao matricial chamada de elemento
(equivalente a um pixel, no caso de imagens) e costuma ser ter sua
posio identificada por um par (linha coluna), onde a posio (0,0)
equivale linha mais superior e a coluna mais esquerda da matriz.
Cada elemento, em uma dimenso, pode conter um valor dentro de um
determinado intervalo de valores possveis. Esse intervalo dependente do
tamanho computacional (ou digital) reservado para seu armazenamento

429
13. Tratamento de dados matriciais na TerraLib

e todos os elementos possuem o mesmo tamanho. Alguns tamanhos


possveis para cada elemento so:
Unsigned Char: ocupa 8 bits por elemento. Pode armazenar
valores entre 0 a 255;
Short: ocupa 16 bits por elemento. Pode armazenar valores entre
32.68 to 32.67
Float: ocupa 32 bits por elemento. Pode armazenar valores entre
3.4E-38 a 3.4E+38 (7 dgitos);
Double: ocupa 64 bits por elemento. Pode armazenar valores entre
1.7E- 308 a 1.7E+308 (15 dgitos).
No caso das imagens de sensoriamento remoto o tamanho do
elemento relaciona-se com a resoluo espectral da imagem e no caso de
outros tipos de dados esse valor relaciona-se com a preciso do dado que
est sendo representado.
Computacionalmente, a representao matricial no esparsa, ou seja,
todo elemento da matriz possui um valor. Porm muitas vezes
necessrio ser possvel a criao de uma representao esparsa, ou seja,
uma representao onde em alguns pontos da matriz no existe um valor
vlido. Isso pode ser feito atravs da escolha de um valor como indicativo
da ausncia de dado naquele elemento da matriz. Esse valor deve
pertencer ao intervalo de valores vlidos para os elementos da matriz e
chamado de valor dummy ou nodata. A Figura 13.3 (a) mostra um dado
matricial, com 3 linhas 3 colunas 1 banda. Se o valor 0 for
considerado como valor dummy, podemos dizer que nas posies (0,1) e
(2,2) no existem valores vlidos.
Outra caracterstica dos dados matriciais e que os valores em cada
elemento podem representar ndices para uma tabela de combinaes de
valores, como no caso tpico de imagens do tipo paleta. O valor de cada
elemento uma chave para uma tabela que contm uma tripla de valores
R, G e B como mostrado na Figura 13.3(b).

430
Tratamento de dados matriciais em TerraLib

1 0 2 Chave R G B

1 255 0 0
1 2 3
2 0 255 0
2 1 0
3 0 0 255

(a) Valores Dummy (b) Tabela de cores


Figura 13.3 Caracterstica da representao matricial.
Finalmente, as representaes matriciais so caracterizadas pela
resoluo de cada elemento da grade, ou seja, a extenso nas direes
horizontal e vertical de cada elemento da matriz quando mapeado para a
rea da superfcie da Terra que representa. No caso das imagens de
satlite esses parmetros equivalem resoluo espacial da imagem.
A seo seguinte descreve os mecanismo de tratamento de dados
matriciais de TerraLib.

13.3 Tratamento de dados matriciais em TerraLib


Imagens e/ou quaisquer outros tipos de dados com representao
matricial so manipulados em TerraLib por trs classes bsicas:
Uma classe genrica chamada TeRaster;
Uma estrutura de dados que representa todos os parmetros que
caracterizam um dado matricial TeRasterParams;
Uma classe genrica de decodificao de formatos e acesso a
dispositivos de armazenamento de dados matriciais chamada
TeDecoder.
13.3.1 A classe TeRaster
A classe TeRaster uma interface genrica de acesso aos elementos de
um dado matricial. Seus dois mtodos bsicos so: setElement e
getElement, os quais inserem e recuperam, respectivamente, valores de
cada elemento da representao matricial como um valor real de dupla
preciso. O Exemplo 13.1 mostra como criar uma representao matricial
em memria atravs da classe TeRaster. A representao matricial tem 10

431
13. Tratamento de dados matriciais na TerraLib

linhas, 10 colunas, 2 bandas e cada elemento (em cada banda) pode


conter um valor do tipo unsigned char.
TeRaster rasterMem(10,20,2,TeUNSIGNEDCHAR);

Exemplo 13.1 Criao de uma representao matricial em memria.


Antes que o dado esteja disponvel para ser manipulado, todas as
inicializaes necessrias, como alocaes de memria, devem ser
executadas e esto concentradas no mdodo TeRaster::init. Aps a
chamada desse mtodo cada instncia da classe TeRaster possui um
valor de estado que indica quais as operaes (leitura, escrita) podem ser
executadas sobre ele. O Exemplo 13.2 mostra a chamada e teste de estado
na criao de um dado matricial atravs da classe TeRaster.
// 1) cria um objeto raster
TeRaster rasterMem(10,20,2,TeUNSIGNEDCHAR);
// 2) faz inicializaes
rasterMem.init();
// 3) verifica resultado
if (rasterMem.status() == TeNOTREADY)
return false;

Exemplo 13.2 Inicializao de um dado matricial.


13.3.2 A classe TeRasterParams
Um dado matricial caracterizado por uma srie de parmetros que
podem ser divididos nas seguintes categorias:
Dimenso: nmero de linhas, nmero de colunas e nmero de
bandas;
Geogrficos: projeo cartogrfica, resoluo horizontal, resoluo
vertical e menor retngulo envolvente de todo o dado. Como cada
elemento de um dado matricial tem rea, podemos identificar dois
tipos de retngulo envolvente: o que passa pelo centro dos
elementos das bordas (chamamos de box) e o que passa pelos
extremos dos elementos das bordas da matriz (chamamos de
bounding box) como representado na Figura 13.4;

432
Tratamento de dados matriciais em TerraLib

Box

Bounding Box

Figura 13.4 Diferena entre box e bounding box.


Caractersticas dos elementos: tamanho digital de cada valor de um
elemento e interpretao do valor (paleta ou no);
Armazenamento: nome de arquivo ou tabela de banco de dados
onde est armazenado, tipo acesso permitido;
Forma de decodificao: mecanismo usado para ler ou escrever um
valor em um elemento.
A classe TeRasterParams contm um super conjunto de todos os
possveis parmetros que descrevem um dado matricial, por isso cada
objeto da classe TeRaster possui como um dos seus membros um objeto
da classe TeRasterParams, que pode ser acessado atravs do mtodo
TeRaster::params como mostro o Exemplo 13.3.

void describe(TeRasterParams& par)


{
cout << "Nome: " << par.fileName_ << endl;
cout << "Modo de acesso: " << par.mode_ << endl;
cout << "Nro bandas: " << par.nBands() << endl;
cout << "Nro linhas: " << par.nlines_ << endl;
cout << "Nro colunas: " << par.ncols_ << endl;
cout << "Resolucao X: " << par.resx_ << endl;
cout << "Resolucao Y: " << par.resy_ << endl;
cout << "Identificacao do decodificador: " <<
par.decoderIdentifier_<< endl;
cout << "Projecao: " << par.projection()->name() << endl;
cout << "Retangulo envolvente: ";
TeBox bb = par.boundingBox();

433
13. Tratamento de dados matriciais na TerraLib

cout << bb.x1_ << " " << bb.y1_ << " " << bb.x2_ << " " <<
bb.y2_ << endl;
}
TeRaster rasterMem(10,10,2,TeUNSIGNEDCHAR);
rasterMem.init();
if (rasterMem.status() == TeNOTREAD)
return 0;
describe(rasterMem.params());

Exemplo 13.3 Parmetros do dado matricial.


Os diferentes formatos de armazenamento de dados matriciais podem
trazer todos ou alguns dos parmetros citados acima. Vejamos como
exemplo:
Tiff: dados matriciais nesses formatos trazem informaes sobre o
nmero de Linhas, o nmero de Colunas, o nmero de Bandas, o
tipo dos elementos e a interpretao do elemento (se do tipo
paleta e sua tabela de cores);
GeoTiff: uma extenso do formato Tiff especfica para o
armazenamento de dados geogrficos (grades numricas ou
imagens) e traz alm das informaes do Tiff, a projeo e
retngulo envolvente da imagem, o tipo e a resoluo espacial dos
elementos, e a sua projeo cartogrfica. O GeoTiff o formato de
intercmbio de dados matriciais do consrcio OpenGIS
(OPENGIS, 2005);
JPEG: formato para armazenamento de imagens, traz informaes
sobre o nmero de Linhas, o nmero de Colunas e o nmero de
Bandas. O formato JPEG permite armazenar apenas dados com 1
ou 3 bandas e o tipo dos elementos sempre unsigned char;
RAW: servem para armazenar grades ou imagens como arquivos
binrios sem nenhuma formatao e no trazem nenhuma
informao sobre a representao matricial.
A estrutura TeRasterParams armazena tambm o nvel de acesso ao
dado, que pode assumir 3 opes:

434
Tratamento de dados matriciais em TerraLib

1. r: somente leitura. Caso o dado no exista o mtodo


TeRaster::init falhar;
2. c: criao de um novo. Caso o dado j exista, ser apagado e
recriado. Ser garantido acesso para leitura e escrita;
3. w: leitura e escrita. Pressupe que o dado j exista. Caso contrrio
o mtodo TeRaster::init falhar.
13.3.3 A classe TeDecoder
A idia principal da classe TeRaster poder representar dados matriciais
que podem estar em memria, em arquivos em diferentes formatos
(como TIFF ou JPEG), ou ainda dentro do um banco de dados
geogrfico. Com o objetivo de desacoplar a classe TeRaster das diferentes
alternativas de armazenamento, as requisies de acesso aos elementos
da representao matricial so tratadas pela classe TeDecoder. Esse
mecanismo um exemplo de uso do padro de projeto Strategy
(Gamma, Helm et al. 1995). A classe TeDecoder abstrata e TerraLib j
fornece um conjunto de decodificadores de imagens e grades. Novos
decodificadores podem ser criados atravs da especializao da classe
TeDecoder implementando os mtodos init, clear, setElement e
getElement.
A Tabela 13.1 mostra as caractersticas das classes de decodificadores j
implementadas em TerraLib.

Tabela 13.1 Decodificadores de Dados Matriciais implementados em


TerraLib
Decodificadores Identificador Extenso Acesso Descrio
TeDecoderMemory MEM --- Criao Dados matriciais
Leitura como uma matriz
de valores em
Escrita
memria
TeDecoderJPEG JPEG .jpg Criao Dados matriciais
.jpeg Leitura armazenados em
arquivos no formato

435
13. Tratamento de dados matriciais na TerraLib

Escrita JPEG. Carregam


todo o dado para
memria
TeDecoderTIFF TIFF .tif Criao Dados matriciais
.tiff Leitura armazenados em
arquivos no formato
GeoTIFF ou TIFF
TeDecoderSPR SPR .spr Criao Dados matriciais
.txt Leitura armazenados em
arquivos no formato
Escrita
ASCII Spring.
Carregam todo o
dado para memria
TeDecoderMemoryMap MEMMAP .raw Criao Dados matriciais
Leitura armazenados em
arquivos binrios
Escrita
raw, limitados a
aproximadamente
2Gb de tamanho
TeDecoderFile FILE .bin Criao Dados matriciais
Leitura armazenados em
arquivos binrios
Escrita
raw
TeDecoderDatabase DB --- Criao Dados matriciais
Leitura armazenados em
um banco de dados
Escrita
TerraLib
A associao de um decodificador especfico a um dado matricial pode
ser feita explicitamente, mas tambm foi implementado um mecanismo
mais flexvel usando o padro de projeto Factory (Gamma, Helm et al.
1995). Existe uma fbrica de decodificadores que constri a instncia de
decodificador correta de acordo com um ou mais parmetros do dado
matricial. Um exemplo tpico de uso desse mecanismo automtico de
seleo associao de extenses de arquivos a decodificadores
especficos. Quando possvel, a associao de extenses de arquivos a
decodificadores o que permite que um objeto da classe TeRaster possa

436
Tratamento de dados matriciais em TerraLib

ser instanciado a partir somente de um nome de arquivo. Essa associao


pode ser modificada, conforme interesse do usurio da biblioteca,
editando-se a funo TeInitRasterDecoders. O Exemplo 13.4 mostra o
acesso a dois dados matricias, nesse caso arquivos de imagens em dois
formatos diferentes, TIFF e JPEG, de forma transparente.

// Mostra os valores em um dado matricial


void showRaster(TeRaster& rst)
{
int i,j,b;
double val; // l e mostra valores
for (b=0; b<rst.params().nBands();++b) {
cout << "\nValores na banda: " << b << \n;
for (i=0; i<rst.params().nlines_; ++i) {
for (j=0; j<rst.params().ncols_; ++j) {
rst.getElement(j,i,val,b);
cout << val << " "; }
cout << endl << endl;
}
}
int main()
{
TeInitRasterDecoders(); // inicializa decodificadores
TeRaster rasterTIF("d:/Dados/TIFF/brasM.tif");
if (!rasterTIF.init())
return 0;
TeRaster rasterJPEG("d:/Dados/JPEG/brasilia.jpg");
if (!rasterJPEG.init())
return 0;
cout << "Dados no arquivo TIFF: \n";
showRaster(rasterTIF);

cout << "\n\nDados no arquivo JPEG: \n";

showRaster(rasterJPEG);

437
13. Tratamento de dados matriciais na TerraLib

}
Exemplo 13.4 Exemplo de uso da classe TeRaster.
A Figura 13.5 mostra o relacionamento entre as trs classes principais
da interface de manipulao de dados matriciais de TerraLib. A classe
TeRaster uma geometria como as geometrias vetoriais descritas no
Captulo 12. Cada objeto da classe TeRaster possui uma instncia de um
objeto da classe TeDecoder, e ambas possuem um objeto da classe
TeRasterParams, ou seja, o decodificador tem uma verso dos parmetros
do dado matricial que decodifica.

Figura 13.5 Relacionamento entre as classes da interface de manipulao de


dados matriciais.
Esse mecanismo facilita a escrita de algoritmos de manipulao de
dados matriciais porque flexvel o bastante para fornecer um acesso
uniforme a diferentes formatos de dados matriciais como mostra o
Exemplo 13.5.

//! Copia os valores em um dado raster para outro


void copiaRaster(TeRaster& rstIn, TeRaster& rstOut)
{
int i,j,b;
double val; // l valores
for (b=0; b<rstIn.nBands();++b) {
for (i=0; i<rstIn.nLines();++i) {

for (j=0; j<rstIn.nCols();++j) {

rstIn.getElement(j,i,val,b);

438
Tratamento de dados matriciais em TerraLib

rstOut.setElement(j,i,val,b);
}
}
}
}

int main()
{
TeInitRasterDecoders(); // inicializa decodificadores

TeRaster rasterTIF("d:/Dados/TIFF/brasM.tif");
if (!rasterTIF.init())
return 1;

TeRasterParams par = rasterTIF.params(); // copia todos


os parmetros
par.fileName_ = "d:/Dados/JPEG/bras.jpg";
par.mode_ = 'c';
par.decoderIdentifier_ = "JPEG";

TeRaster rasterJPEG(par);
if (!rasterJPEG.init())
return 1;

copiaRaster(rasterTIF, rasterJPEG);
return 0;
}

Exemplo 13.5 Criao de um dado matricial a partir de outro.


Pode se observar no exemplo acima que foram aproveitados todos os
parmetros da imagem de origem com exceo de trs: o nome do
arquivo destino, o modo de criao e a identificao do decodificador. O
construtor do objeto TeRaster destino recebe uma instncia de
TeRasterParams e no mais um nome de arquivo. Assim a nova imagem
ser criada no formato JPEG no arquivo especificado. A funo de cpia

439
13. Tratamento de dados matriciais na TerraLib

continua usando apenas os mtodos TeRaster::setElement e


TeRaster::getElement.
Quando se deseja instanciar usar a classe TeRaster para acessar um
dado cujo formato no inclui todas as informaes necessrias, existe a
possibilidade de se instanciar esse objeto a partir de uma estrutura de
parmetros e previamente preenchida. O Exemplo 13.6 mostra como
acessar um dado matricial guardado como uma matriz binria em um
arquivo raw. Como esse formato no possui nenhum tipo de descritor
seus parmetros devem ser explicitamente informados.
TeDatum sad69 = TeDatumFactory::make("SAD69");
TeUtm* proj = new TeUtm(sad69,-45.0*TeCDR);

TeRasterParams par;
par.fileName_ = "D:/Dados/RAW/grade.raw";
par.decoderIdentifier_ = "MEMMAP";
par.nBands(1);
par.mode_ = 'r';
par.setDummy(-9999.9);
par.setDataType(TeFLOAT);
par.topLeftResolutionSize(185350.0,824800.0,1000,500,10,10,tru
e);
par.projection(proj);

TeRaster grade(par);
if (!grade.init())
return 1;
//... usa dado
grade.clear();

Exemplo 13.6 Criao de um objeto TeRaster a partir de parmetros.


O mtodo TeRaster::clear deve ser chamado ao final da utilizao do
dado matricial. Esse mtodo libera memria ou quaisquer estruturas que
foram alocadas na chamada do mtodo TeRaster::init. De maneira geral
a ordem de passos para se utilizar um objeto da classe TeRaster a seguinte:

440
Tratamento de dados matriciais em TerraLib

4. Definir parmetros
5. Instanciar um objeto TeRaster a partir dos parmetros
6. Chamar mtodo TeRaster::init
7. Verificar se estado do objeto o esperado
8. Utilizar objeto
9. Chamar mtodo TeRaster::clear
Uma vez executado o mtodo TeRaster::init no se deve alterar os
parmetros do dado matricial, pois as inicializaes feitas utilizaram os
valores ento definidos. Qualquer modificao subseqente pode invalidar
a capacidade de decodificao do dado requerendo uma nova chamada ao
mtodo TeRaster::init como mostrado no Exemplo 13.7.
TeRasterParams par;
par.decoderIdentifier_ = "MEM";
par.nBands(1);
par.mode_ = 'c';
par.setDummy(255);
par.setDataType(TeUNSIGNEDCHAR);

TeRaster rMem(par);
if (!rMem.init()) // aloca espao para 100
elementos
return 0;

rMem.params().nlines_ = 200; // altera nmero de elementos


rMem.params().ncols_ = 200;
rMem.setElement(199,199,0); // ERRO!

rMem.init() // CERTO! Reinicializar


raster
rMem.setElement(199,199,0); // antes de acessar novos
elementos

Exemplo 13.7 Reinicializando um objeto TeRaster.

441
13. Tratamento de dados matriciais na TerraLib

13.3.4 Incluindo informaes geogrficas


Para que o dado matricial seja geo-referenciado, ou seja, para que se possa
identificar para cada linha e coluna uma localizao sobre a superfcie terrestre
preciso que seu os parmetros contenham as informaes sobre uma
projeo cartogrfica, as coordenadas de seu retngulo envolvente e a
resoluo espacial de cada elemento em unidades da projeo. Esses dados
devem ser informados nos parmetros ou obtidos do prprio formato de
armazenamento e no devem ser alterados depois da inicializao sob pena de
invalidar o geo-referenciamento. O Exemplo 13.8 mostra como incluir as
informaes geogrficas em um dado matricial.
TeDatum sad69 = TeDatumFactory::make("SAD69");
TeUtm* proj = new TeUtm(sad69,-45.0*TeCDR);

TeRasterParams par;
par.decoderIdentifier_ = "MEM";
par.nBands(1);
par.mode_ = 'r';
par.setDummy(255);
par.setDataType(TeUNSIGNEDCHAR);

//define o retngulo envolvente do dado e sua resoluo


par.lowerLeftResolutionSize(309695,7591957,20,20,3000,2000,tru
e);
// define a projeo do dado
par.projection(proj);

TeRaster grade(par);
if (!par.init())
return 1;

for (i=0; i< grade.nLines();++i) { // retorna a


coordenada geogrfica
for (j=0; j< grade.nCols();++j) { // de cada elemento
char mess[100];

442
Tratamento de dados matriciais em TerraLib

TeCoord2D xy = grade.index2Coord(TeCoord2D(j,i));
sprintf(mess,"[%d,%d]:(%.2f,%.2f)
",i,j,xy.x(),xy.y());
cout << mess;
}
cout << endl;
}

Exemplo 13.8 Associao de parmetros geogrficos.


Os parmetros geogrficos de um dado matricial que permitem sua
navegao em coordenadas de uma determinada projeo cartogrfica
(bounding box, box, nmero de linhas, colunas, resolues horizontais e
verticais) so correlacionados e devem ser coerentes. A classe
TeRasterParams possui os mtodos informar parte deles e
automaticamente atualizar os outros (lowerLeftResolutionSize,
boxResolution, upperLeftResolutionSize, boundingBoxResolution,
etc.).
13.3.5 Remapeamento de dados raster
Um objeto da classe TeRaster propriamente inicializado pode ser
parmetro de funes que usam os seus mtodos getElement e
setElement como mostrado anteriormente. A classe TeRasterRemap um
exemplo de implementao de uma funo que copia um dado matricial
para outro, resolvendo diferenas em termos de geometria. Essas
diferenas podem ser em relao ao nmero de linhas, colunas,
resolues diferentes ou retngulos envolventes diferentes, ou ainda,
projees diferentes. A Figura 13.6 mostra o fluxo de operaes da classe
TeRasterRemap.

443
13. Tratamento de dados matriciais na TerraLib

DM_entrada DM_sada

projIn != projOut N resEnt != resSada N


boxEnt != boxSada Copia

S S

Reamostra
Remapeia

getElement
TeRasterRemap setElement

Figura 13.6 A classe TeRasterRemap.


O Exemplo 13.9 mostra trs casos de uso dessa funo: para degradar a
resoluo de uma imagem, para recortar um pedao de uma imagem e
para remapear (trocar de projeo) uma imagem.

#include "TeRasterRemap.h"
int main()
{
TeInitRasterDecoders();
TeRaster rEntrada("d:/Dados/TIFF/brasM.tif"); // raster
em projeo UTM
if (!rEntrada.init())
{
cout << "Erro obtendo dado de entrada!\n";
return 1;
}

TeRasterParams parS = rEntrada.params();


TeBox bb = parS.boundingBox(); // mantm box
double resx = parS.resx_*2.0; // degrada a
resoluo espacial

444
Tratamento de dados matriciais em TerraLib

double resy = parS.resy_*2.0;

parS.boundingBoxResolution(bb.x1_,bb.y1_,bb.x2_,bb.y2_,resx,re
sy);
parS.fileName_ = "d:/Dados/JPEG/subBras.jpg";
parS.decoderIdentifier_ = "JPEG"; // troca
formato de sada
parS.mode_ = 'c';
TeRaster rSaida1(parS);
if (rSaida1.init())
{
TeRasterRemap subamostra(&rEntrada,&rSaida1); // faz
reamostragem
subamostra.apply();
}
parS = rEntrada.params();
parS.fileName_ = "d:/Dados/JPEG/zoomBras.jpg";
parS.decoderIdentifier_ = "JPEG"; // define box menor

parS.boundingBoxResolution(184000.0,8247000.0,194500.0,8248000
.0, parS.resx_,parS.resy_);
parS.mode_ = 'c';

TeRaster rSaida2(parS);
if (rSaida2.init())
{
TeRasterRemap zoom(&rEntrada,&rSaida2); // faz recorte
zoom.apply();
}

parS = rEntrada.params();
parS.fileName_ = "d:/Dados/JPEG/latlongBras.jpg";
parS.decoderIdentifier_ = "JPEG";
TeDatum sad69 = TeDatumFactory::make("SAD69");
TeLatLong* latlong = new TeLatLong(sad69);

445
13. Tratamento de dados matriciais na TerraLib

parS.projection(latlong);
parS.mode_ = 'c';

TeRaster rSaida3(parS);
if (rSaida3.init())
{
TeRasterRemap remap(&rEntrada,&rSaida3); // remapeia
remap.apply();
}
}

Exemplo 13.9 A classe TeRasterRemap.


A funcionalidade da classe TeRasterRemap pode ser usada em diversos
contextos como a importao de dados para um banco e o apresentao
desse dado em uma janela de visualizao.
13.3.6 Iteradores sobre dados matriciais
Um grande nmero de algoritmos de processamento de dados
geogrficos no dependem de uma implementao particular de uma
estrutura de dados, mas apenas de alguma propriedade semntica
fundamental, como a capacidade de mover entre elementos de uma
estrutura de agregao ou comparao entre dois elementos da estrutura.
Por exemplo, o algoritmo para calcular o histograma de um dado
geogrfico no necessita conhecer se o dado est organizado como um
conjunto de pontos, um conjunto de polgonos ou um conjunto de pixels.
Tudo que necessrio a que a estrutura fornea a capacidade de
percorrer uma lista de elementos e obter um valor pra cada um deles.
Esse paradigma de desenvolvimento chamado de programao genrica
(Austern 1998). Programao genrica visa o projeto de mdulos
interoperveis baseados na separao entre algoritmos e estruturas de
dados.
A classe TeRaster fornece iteradores, ou seja, ponteiros generalizados
que permitem o percorrimento de uma representao matricial. Em sua
verso mais simples os iteradores de dados matriciais comeam na
primeira linha e na primeira coluna do dado e a cada operao de
avanar o iterador move-se para a prxima coluna at o fim da linha

446
Tratamento de dados matriciais em TerraLib

quando ento se move para a primeira coluna da linha seguinte.


Iteradores so teis, pois permitem que sejam escritos algoritmos em
funo dos iteradores e no de uma estrutura de dados em particular. O
Exemplo 13.10 mostra como percorrer uma representao matricial
atravs de iteradores.

TeRaster* img = new TeRaster("./dados/imagem.jpg");


TeRaster::iterator it = img.begin();
while (it != img.end())
{
cout << (*it);
}

Exemplo 13.10 Percorrimento de um dado matricial atravs de iterador.


Usando esse princpio, a classe TeRaster tambm fornece iteradores
especializados para percorrimento dos elementos da representao
matricial que esto delimitados por uma regio de interesse (definida
como um TePolygon) como mostra o Exemplo 13.11 .

TeRaster* img = new TeRaster("./dados/imagem.jpg");


TePolygon region;
//... cria a regio de interesse
TeRaster::iteratorPoly itB = img.begin(region);
TeRaster::iteratorPoly itE = img.end(region);
while (it != itE)
{
cout << (*it);
}

Exemplo 13.11 Percorrimento de regio de um dado matricial limitada a uma


regio.
As sees anteriores mostraram a interface de manipulao de dados
matriciais oferecidas por TerraLib. A prxima seo trata das questes

447
13. Tratamento de dados matriciais na TerraLib

relativas ao armazenamento e recuperao de dados matriciais em um


banco de dados TerraLib.

13.4 Dados matriciais em bancos de dados TerraLib


Um banco TerraLib composto de um conjunto de planos de
informao, ou layers, onde cada layer formado por um conjunto
especfico de dado geogrfico (como um mapa de solos, uma imagem ou
um mapa cadastral). Para o armazenamento desses dados em um
SGBDOR Sistema Gerenciador de Banco de Dados Objeto-Relacional,
cada layer est associado com um conjunto de tabelas que armazenam a
componente descritiva e espacial do dado. Em um banco TerraLib vai
existir uma tabela diferente para cada tipo de geometria associada a
informao contida no layer (pontos, linhas, polgonos, clulas e
representaes matriciais). O acesso ao dado espacial armazenado no
SGDB-OR feito atravs de uma interface que encapsula as diferenas
internas de cada SGDB-OR. Essa interface mapeia os tipos espaciais
TerraLib em tipos caractersticos de cada SGDB-OR usando os
mecanismos nativos de indexao e otimizao se disponveis. As duas
classes abstratas que definem a interface de acesso aos dados espaciais
so: TeDatabase e TeDatabasePortal que permitem: (a) estabelecimento
de conexes com um servidor de banco de dados; (b) execuo de
commandos SQL; (c) defino de indces; (d) definio de integridade
referencial; (e) execuo de consultas espaciais. Para saber mais sobre a
interface de acesso a um banco de dados TerraLib o leitor deve recorrer
ao captulo 12.
O consrcio OpenGIS prope uma especificao de componentes
capazes de tratar geo-campos, chamados de Grid Coverages, mas,
diferentemente de geometrias vetoriais no prope um modelo de
armazenamento desses dados em um banco de dados (OPENGIS,
2005). Trabalhos anteriores (Patel, Yu et al. 1997; Reiner, Hahn et al.
2002) mostram que a estratgia mais apropriada para trabalhar com
grandes bases de dados de imagens uma combinao de diviso por
blocos, ou tiling, e a criao de uma pirmide de multi-resoluo. Essa
combinao tem sido usada tambm em alguns servidores de mapas via
web (DPI/INPE, 2005 e Barclay et al, 2000). O esquema de tiling usado

448
Dados matriciais em bancos de dados TerraLib

como indexao espacial, de forma que quando se deseja recuperar uma


parte da imagem apenas os blocos relevantes para essa parte sero
recuperados. A pirmide de multi-resoluo til na visualizao de
imagens grandes e evita acessos desnecessrios, nos nveis da pirmide
onde a resoluo degradada, menos blocos so recuperados. Essa
abordagem foi adotada em TerraLib de forma integrada a todo o
mecanismo descrito nas sees anteriores de forma que um banco
TerraLib possa guardar quaisquer dados com uma representao
computacional matricial e no somente imagens.
TerraLib trata uma representao matricial como mais uma tipo de
geometria, sendo assim, um layer possui um conjunto de objetos cuja
componente espacial pode ser uma representao matricial. Muitas vezes,
um layer representa um geo-campo e nesse caso a geometria se refere ao
layer e no a objetos discretos que agrega. A tabela de representaes
geomtricas contm um registro para indicar a existncia da
representao matricial para o layer, esse registro, no campo geom_table
informa o nome da tabela que contm as informaes sobre a
representao matricial de cada objeto do layer. Essa tabela de
representaes matriciais de um layer possui um conjunto de
informaes gerais sobre a representao: nmero de linhas e colunas,
sua resoluo espacial, a largura e altura (em nmero de elementos) dos
blocos em que cada banda da representao espacial foi dividida e a
indicao da possvel tcnica de compresso aplicada aos blocos.
Finalmente, o campo spatial_data, aponta para a tabela de geometrias
matriciais onde os blocos que formam a representao esto
armazenados. A Figura 13.7 mostra os relacionamentos entre as tabelas
que compe o modelo de armazenamento de dados matriciais de
TerraLib.
Na tabela de geometrias matriciais, cada registro possui a identificao
nica do bloco, seu retngulo envolvente e, em um campo binrio longo,
o bloco comprimido ou no. Todos os blocos de uma tabela de
geometrias matriciais possuem a mesma largura e a mesma altura. Esse
modelo de armazenamento de dados matriciais pode ser implementado
em qualquer SGDB-OR uma vez que no faz uso de nenhum recurso
especial do banco.

449
13. Tratamento de dados matriciais na TerraLib

Figura 13.7 Modelo de armazenamento de representaes matriciais de


TerraLib.
Poucos SGDBs com extenso espacial propem um modelo de
armazenamento de dados matriciais, um deles a extenso espacial do
Oracle como pode ser visto em ORACLE, 2005.
13.4.1 Modelo de diviso em blocos
O mecanismo de diviso do dado matricial em blocos visa a atender a
dois requisitos especficos: (a) eficincia, conseguida pela capacidade de
recuperao de parte do dado matricial; (b) flexibilidade, conseguida
dada pela capacidade de acrescentar novos dados matriciais a uma
representao j armazenada (por exemplo, ao se fazer o mosaico de duas
cenas de imagens de satlite).

450
Dados matriciais em bancos de dados TerraLib

TerraLib disponibiliza duas formas de diviso de dados matriciais em


blocos: no expansvel e expansvel. Essas duas formas diferentes de
diviso implicam em diferentes maneiras de se mapear um elemento da
representao matricial como um todo para um elemento dentro de bloco
armazenado. A seguir explicamos as duas maneiras.
a) No expansvel
Significa que a diviso dos blocos feita a partir da linha 0 e coluna 0
da representao matricial. Cada bloco contm L A elementos, onde L
a largura do bloco e A a sua altura. Cada bloco identificado pela sua
ordem dentro da diviso total da representao, como mostra a Figura
13.8.

Figura 13.8 Diviso por blocos de maneira no expansvel.


Um elemento que est posio (j, i) da representao original est no
bloco Bm,n tal que m=INT(i/ L), n=INT(j/ A), onde INT(x) representa
a parte inteira de x.
Observa-se na figura que a ltima linha de blocos e a ltima coluna de
blocos (B...,n e Bm,..) podem no estar completos, ou seja, no existem
valores na representao matricial para preencher todo o bloco. Isso
acontece se o nmero de linha da representao no mltiplo de A ou o

451
13. Tratamento de dados matriciais na TerraLib

nmero de colunas da representao no mltiplo de L. Esses


elementos do bloco so preenchidos com o valor dummy.
Ao se escolher a opo de diviso por blocos no expansvel, no ser
possvel acrescentar, ou mosaicar, posteriormente novos dados matriciais
ao dado armazenado.
b) Expansvel
Significa que a diviso dos blocos no feita na referncia das linhas e
colunas, mas sim a partir posies arbitrrias calculadas de acordo com as
coordenadas geogrficas do dado matricial. Isso permite que novos dados
matriciais possam ser acrescentados a uma representao matricial j
armazenada, desde que seus parmetros geogrficos sejam coerentes. A
identificao de cada bloco dada por seu posicionamento dentro de
uma diviso da rea geogrfica referente ao dado matricial em blocos de
tamanho L*ResX e A*ResY, onde ResX e ResY so as resolues espaciais
do dado matricial, iniciando na posio 0,0 do sistema de referncia
geogrfica do dado. O esquema de diviso de blocos de maneira
expansvel ilustrado na Figura 13.9. importante notar que na diviso
expansvel os limites dos blocos esto em uma referncia geogrfica e no
relacionada linha e coluna de uma matriz. Isso o que permite reas de
interseco geogrfica entre dois dados arquivos de imagens, por
exemplo, sejam armazenados no mesmo bloco, como destacado na
figura.
interseco

Figura 13.9 Diviso por blocos de maneira expansvel.

452
Dados matriciais em bancos de dados TerraLib

Um elemento que est posio (j, i) da representao original est no


bloco Bm,n tal que m=INT(x/LG) e n=INT(y/AG) onde (x,y) a
coordenada geogrfica de (j,i), LG=L*resX e AG=A*resY.
Assim como no caso da diviso no expansvel alguns blocos ficam
incompletos (observar a Figura 13.9) e so preenchidos com o valor
dummy.
Atravs do retngulo envolvente de cada bloco, possvel saber seu
retngulo envolvente em termos de linhas e colunas da representao
matricial total e assim encontrar a posio do elemento procurado dentro
do bloco.
O Exemplo 13.12 mostra o cdigo escrito para executar importar um
arquivo de imagens para um banco TerraLib criando um novo layer.
Depois um segundo arquivo importado indicando que deve ser
armazenado na mesma representao e, portanto executando o mosaico.
A Figura 13.10 mostra o resultado visual da operao.
TeRaster bras1(./dados/Brasilia1.tif);
TeRaster bras1(./dados/Brasilia1.tif);
TeLayer *msc = new TeLayer("Brasilia", db,
bras1.projection());
TeImportRaster(msc,bras1,128,128,TeJPEG,"",255,TeExpansible));
TeImportRaster(msc,bras2,128,128,TeJPEG,"",255,TeExpansible))

Exemplo 13.12 Mosaico de dois arquivos de imagens para uma mesma


representao matricial.
Os parmetros da rotina de importao indicam qual o tamanho dos
blocos, qual o algoritmo de compresso, qual o valor a ser usado como
dummy e qual o mtodo de diviso por blocos.

453
13. Tratamento de dados matriciais na TerraLib

Figura 13.10 Resultado do mosaico de dois arquivos de imagens.


Os mecanismos de diviso por blocos e de mosaico so vlidos tanto
para imagens quanto para grades numricas.
13.4.2 A estrutura de multi-resoluo
As operaes de visualizao de dados matriciais grandes so limitadas
pelos dispositivos de sada. Por exemplo, considere uma imagem com
20000 20000 pixels sendo mostrada em um display de 1000 1000
pontos. O usurio controlando a aplicao de visualizao pode comear
obtendo uma viso geral da imagem e depois prosseguir ampliando reas
menores de seu interesse. Em cada situao, ou seja, em cada ampliao,
no deveria ser necessrio a recuperao simultnea de toda a imagem do
banco de dados. Na situao ideal, a recuperao da imagem deveria ser
da ordem de magnitude da capacidade do dispositivo de sada. Esse
requisito pode ser atendido se a imagem armazenada no banco de dados
esteja organizada em uma estrutura de multi-resoluo. Combinada com
o esquema de diviso por blocos, a pirmide de multi-resoluo
armazena, em seu nvel mais baixo, os blocos com a resoluo total da
imagem. Nos nveis mais altos so armazenados blocos com resoluo
degradada. Dessa forma a aplicao pode controlar, de acordo com a
capacidade do dispositivo de sada, em qual nvel recuperar os blocos de
interesse.
Com essa motivao, TerraLib implementa um esquema pirmide de
multi-resoluo. Tradicionalmente so criadas resolues com fatores
multiplicativos em potncia de dois, de forma que um nvel superior
contenha do nmero de blocos necessrios para se armazenar o dado

454
Dados matriciais em bancos de dados TerraLib

no nvel inferior (ou seja, de melhor resoluo) como mostrado na


Figura 13.11.

Nvel 2 Resoluo R * 22

Nvel 1 Resoluo R * 21

Nvel 0 Resoluo R * 20 (original)

Figura 13.11 Exemplo de pirmide com resolues degradas de fator 2.


TerraLib permite que a aplicao informe qual o fator de degradao,
a cada nvel, deseja aplicar para construir a pirmide como mostra o
Exemplo 13.13.
// importa resoluo original res X= 30, res Y=30
TeImportRaster(nativade,nat,512,512,TeJPEG,"obj1");
TeBuildLowerResolution(nativade nat, 2, ,"obj1");
// resX = resY = 60
TeBuildLowerResolution(nativade nat, 4, ,"obj1");
// resX = resY = 120
TeBuildLowerResolution(nativade nat, 8, ,"obj1");
// resX = resY = 240

Exemplo 13.13 Importando resolues extras.


As resolues extras podem ser criadas nos dois modelos de diviso por
blocos: expansvel e no expansvel. A resoluo do bloco tambm parte
de sua identificao nica, por isso os blocos com resolues degradadas
podem ser armazenados na mesma tabela que os blocos na resoluo
original.
13.4.3 Processamento de consultas e recuperao de dados
Assim como no caso das geometrias vetoriais (ver captulo 12), existem
vrios nveis de acesso aos dados matriciais armazenados no banco de
dados TerraLib. Atravs da classe TeDatabase e TaDatabasePortal, a
aplicao pode submeter consultas SQL diretamente sobre a tabela de
geometria matricial e pode consumir os registros retornados.

455
13. Tratamento de dados matriciais na TerraLib

TeDatabase portal = db->getPortal();


// seleciona todos os blocos na resoluo original
string sql = SELECT * FROM RasterLayert_O1_Raster WHERE
resolution_factor = 1;
portal->query(sql);
while (portal->fetchRow())
{
char* blob;
long size;
portal-> getRasterBlock(blob, size);
// usa o blob retornado
}

Exemplo 13.14 Consulta SQL sobre uma tabela de representao matricial.


O problema com essa abordagem que a aplicao fica responsvel
por descompactar e decodificar o blob. Por isso, em um nvel conceitual
mais alto, a classe TeRaster possui um esquema de seleo dos blocos
com um dado fator de resoluo e que interceptam um certo retngulo
envolvente. O resultado da seleo consumido como se fosse um portal,
porm o retorno uma instncia de decodificador j inicializado, que
pode ser usado para construir uma representao matricial independente
em memria como mostrado no Exemplo 13.15.

TeBox bb(183557, 8246310, 194987, 8258940);


int resFac = 2;
TeRasterParams parBlock;
// seleciona os blocos com um certo fator de resoluo e que

// interceptam um determinado retngulo envolvente

if (raster->selectBlocks(bb, resFac,parBlock))
{
// Processa cada bloco como um dado matricial independente
em memoria
TeRaster* block = new TeRaster;
TeDecoderMemory* decMem = new TeDecoderMemory(parBlock);

456
Dados matriciais em bancos de dados TerraLib

decMem->init();
do
{
flag = raster->fetchRasterBlock(decMem);
block->setDecoder(decMem);
} while (flag);
raster->clearBlockSelection();
}

Exemplo 13.15 Esquema de seleo de blocos de uma determinada


representao matricial.
Aumentando um pouco mais o nvel de abstrao, atravs da classe
TeLayer possvel se obter a sua representao matricial como uma
instncia da classe TeRaster que pode ento acessar seus elementos
individualmente atravs dos mtodos setElement e getElement, ou
atravs de iteradores como mostrado nos exemplos das sees anteriores.
O Exemplo 13.16 mostra como pode ser feito esse acesso.
TeLayer img(Brasilia);
db->loadLayer(img);
TeRaster* bsbImg = img->raster();
// acessa elementos individuais da imagem
double val;
bsbImg->getElement(0,0,val,0);

Exemplo 13.16 Acessando uma representao matricial de um layer.


13.4.4 A classe TeDecoderDatabase
No Exemplo 13.16, internamente criado um decodificador para um
dado matricial armazenado em uma banco de dados TerraLib
(representado pela classe TeDecoderDatabase), escondendo todos os
detalhes de tabelas e compresses associados ao dado armazenado. O
decodificador de dados matriciais em um banco de dados TerraLib levou
em conta algumas questes de eficincia para permitir o acesso a
elementos individuais da representao. Existe um mecanismo de cache
de blocos em memria a fim de reduzir o nmero de acessos ao banco de
dados. O identificador nico de cada bloco usado como chave no

457
13. Tratamento de dados matriciais na TerraLib

armazenamento no banco de dados e tambm no sistema de cache. Cada


vez que a aplicao requisita o valor de um elemento com as coordenadas
(i,j) na banda b, em uma resoluo r, se o bloco que contm o elemento
no est na memria, recuperado e colocado no sistema de cache. No
prximo acesso a um elemento, o sistema inicialmente verifica se o bloco
que o contm est no sistema de cache. Se estiver no o valor do elemento
recuperado diretamente da memria sem a necessidade de se acessar o
banco novamente. O nmero mximo de blocos mantido no sistema de
cache controlado pela aplicao. Quando necessrio trazer um bloco
para o cache e no existe mais espao, o bloco menos recentemente usado
liberado do cache, caso tenha sido modificado seu contedo
atualizado no banco de dados. O sistema de cache implementado na
classe TeDecoderVirtualMemory da qual a classe TeDecoderDatabase
derivada. O sistema de troca de blocos no cache atual simples, onde os
blocos mais usados so mantidos por mais tempo. No entanto, esse um
ponto onde podem ser desenvolvidas outras estratgias mais adaptadas a
cada caso.
A classe TeDecoderDatabase permite que dados matriciais
armazenados em um banco de dados TerraLib possam ser usados da
mesma maneira que dados matriciais armazenados em memria ou em
arquivos em formatos proprietrios. Juntamente com a classe
TeRasterRemap aplicaes como a importao de um dado matricial para
o banco de dados ou a visualizao de um dado matricial em um
dispositivo de sada facilmente implementada. A Figura 13.12 mostra o
esquema usado para importar um dado matricial para um banco
TerraLib.

458
Um exemplo de aplicao

Figura 13.12 Esquema da importao de um dado matricial para o banco.

13.5 Um exemplo de aplicao


Na TerraLib, o esquema de manipulao de dados matriciais foi
funciona em todos os sistemas gerenciadores de banco de dados que
implementam a interface TeDatabase como ORACLE, MySQL,
PostgreSQL e Access. Um exemplo de aplicao o SIG TerraView, que
possui as funes para importar para um banco de dados TerraLib,
visualizar e exportar dados matriciais em diversos formatos. A Figura
13.13 mostra um a tela do TerraView mostrando um layer com
representao matricial, no caso uma imagem, sobreposta por uma dado
vetorial, o limite dos estados da regio norte.
A representao matricial do layer mostrado foi construda como um
mosaico de duas imagens vindas de arquivos em formato GeoTiff. A
primeira imagem possui 7020 7984 pixels e 3 bandas, segunda imagem
7414 8239 pixels e tambm 3 bandas. Os dois arquivos GeoTiff juntos
ocupavam 335Mb.
As imagens foram divididas em blocos de 512 512 pixels e foram
construdos cinco nveis de resoluo, cada nvel degradando a resoluo
do nvel anterior de um fator de dois. Os blocos foram armazenados em
um banco TerraLib armazenado no SGDB ACCESS, e comprimidos
pelo formato JPEG com um nvel de qualidade de 75%. A tabela de
geometrias matriciais ficou com um total de 1500 blocos ocupando um

459
13. Tratamento de dados matriciais na TerraLib

espao de armazenamento de 472 Mb. Para visualizar a imagem total


foram decodificados cinco blocos com um fator de resoluo de 64 vezes
a resoluo original.

Figura 13.13 Tela principal do TerraView.


A Figura 13.14 mostra o resultado da ampliao de aproximadamente
um quarto da imagem e a aplicao precisou descomprimir 16 blocos
com um fator de resoluo de oito vezes a resoluo original.

460
Um exemplo de aplicao

Figura 13.14 - Primeira ampliao.


Finalmente, a Figura 13.15 mostra uma ampliao detalhada, para a
qual a aplicao descomprimiu seis blocos na resoluo original.

Figura 13.15 Segunda ampliao.


A Figura 13.16 mostra a visualizao de uma grade de altimetria,
armazenada segundo o mesmo esquema do armazenamento da imagem.
A grade mostrada como se fosse uma imagem em tons de cinza onde o
valor mais baixo da grade est mapeado para o preto e o valor mais alto
est mapeado para o branco.

461
13. Tratamento de dados matriciais na TerraLib

Figura 13.16 Visualizao da grade de altimetria.

Referncias
AUSTERN, M. (1998). Generic Programming and the STL : Using and
Extending the C++ Standard Template Library. Reading, MA, Addison-
Wesley.
BARCLAY, T.; GRAY, J.; SLUTZ, D. Microsoft TerraServer: A Spatial Data
Warehouse. In: ACM SIGMOD International Conference on Management
of Data,2000,Dallas, Texas, USA. ACM Press, p. 307-318.
CMARA, G.; SOUZA, R. C. M.; PEDROSA, B.; VINHAS, L.; MONTEIRO,
A. M. V.; PAIVA, J. A.; CARVALHO, M. T.; GATTASS, M. TerraLib:
Technology in Support of GIS Innovation. In: II Simpsio Brasileiro em
Geoinformtica, GeoInfo2000, 2000, So Paulo.
GAMMA, E.; HELM, R.; JOHNSON, R.; VLSSIDES, J. Design Patterns -
Elemens of Reusable Object-Oriented Software. Reading, MA: Addison-
Wesley,1995. 395 p.
MOREIRA, M. A. Fundamentos do Sensoriamento Remoto e Metodologias de
Aplicao. UFV, 2003.
DPI/INPE. Mosaico do Brasil. Disponvel em:
<http://www.dpi.inpe.br/mosaico>. Acesso em: jan. 2005.
Open GIS Consortium. OpenGis Implementation Especification: Grid
Coverages. Revision 1.0. Disponvel em: <http://www.opengeospatial.org>.
Acesso em: abril 2005.
ORACLE Corporation. Managing Geographic Raster Data Using GeoRaster.
Disponvel em <http://www.oracle.com>. Acesso em: abril 2005.
PATEL, J., J. YU, et al. (1997). Building a Scalable Geo-Spatial DBMS:
Technology, Implementation, and Evaluation. SIGMOD Conference,
Tucson, Arizona.
REINER, B., K. HAHN, et al. (2002). Hierarchical Storage Support and
Management for Large-Scale Multidimensional Array Database
Management Systems. 3th International Conference on Database and
Expert Systems Applications (DEXA), Aix en Provence, France.

462
14 Desenvolvimento de aplicativos com a TerraLib

Marcelo Tlio de Carvalho


Mrio de S Vera

14.1 Introduo
Este captulo descreve o TerraLib Development Kit - Tdk, cujo objetivo
principal facilitar o desenvolvimento de aplicativos geogrficos que
utilizem a TerraLib.
A motivao do desenvolvimento do Tdk decorre de uma anlise dos
objetivos da TerraLib. Recorde do Captulo 12 que um dos principais
objetivos do projeto TerraLib (www.terralib.org) oferecer suporte,
atravs de uma biblioteca (modelos, estrutura de dados e algoritmos),
para a pesquisa e o desenvolvimento de tecnologias inovadoras na rea da
cincia da Geoinformao (ver Captulo 12). Um segundo objetivo
importante estabelecer um ambiente colaborativo para o
desenvolvimento de novas ferramentas e aplicativos que componham
uma nova gerao de Sistemas de Informaes Geogrfica (SIGs).
Para que este objetivo seja atingido de modo satisfatrio, precisamos
tratar trs questes :
A complexidade intrnseca do cdigo da TerraLib demanda um
tempo grande de aprendizado e requer experincia de
programao (ver Captulo 12).
A TerraLib no oferecer suporte direto para o desenvolvimento de
alguns componentes presentes em um SIG bsico. Em uma viso
abrangente, pode-se indicar que este tipo de aplicao deve
apresentar os seguintes componentes, apesar da sua
implementao poder variar para cada sistema: interface grfica-
interativa com o usurio, entrada e integrao de dados,
14. Desenvolvimento de aplicativos com a TerraLib

armazenamento e recuperao de dados (organizados sob a forma


de um banco de dados geogrficos), funes de consulta, funes
de anlise espacial e visualizao e plotagem. Destes componentes,
a TerraLib no oferece suporte direto para a interface grfica-
interativa com o usurio e para a visualizao e plotagem.
A possibilidade de interoperar dados com outras aplicaes. Alm
de uma base de cdigo aberto, uma comunidade de
desenvolvimento de software deve poder utilizar padres da
indstria para troca de dados e servios.

14.2 Motivao e estruturao de um SDK


14.2.1 Motivao para um SDK
Um SDK (Software Development Kit) um conjunto de ferramentas que
permite o desenvolvimento de aplicativos utilizando-se funcionalidades
de um software ou de uma biblioteca referente a um domnio de
aplicao especfico. Um SDK justificado quando queremos oferecer
as funcionalidades de uma ferramenta, criada por especialistas em um
domnio especfico, para acelerar o desenvolvimento de aplicativos que
dependam de funcionalidades deste domnio. Normalmente, um SDK
oferece APIs (Application Programming Interfaces) ou plugin, alm de
utilitrios que agilizam a programao, como ferramentas para ajudar na
depurao e, documentao detalhada. Um exemplo de um SDK para
SIGs so as extenses do ArcGIS da ESRI
(www.esri.com/software/arcgis).
Uma API um conjunto de definies que permitem acesso s
funcionalidades e servios de um determinado software ou biblioteca.
Este conjunto pode ser disponibilizado como funes de uso comum (ex.
funes para desenhar janelas e cones), permitindo que programadores
no precisem programar tudo do incio. Uma boa API oferece um alto
nvel de abstrao escondendo detalhes da implementao.
Um plugin um pedao de programa desenvolvido para oferecer uma
funcionalidade especfica. um mini-programa, que roda embutido e
utilizando a interface de um programa principal. Normalmente, os
plugins possuem uma definio dos limites de suas funcionalidades Um
exemplo de plugin o SVG da Adobe (www.adobe.com/svg).

476
Motivao e estruturao de um SDK

De uma forma resumida, as principais vantagens de um SDK so:


Permitir que os aplicativos possam ser desenvolvidos em menos
tempo e em menos passos.
Oferecer facilidades para construo de aplicaes sem a
necessidade de muita experincia em programao.
Oferecer suporte a vrias linguagens de programao.
Facilitar a formao e manuteno de uma comunidade. Atravs
de um SDK, a comunidade pode contribuir com sua criatividade.
14.2.2 Estruturao de um SDK
Para poder oferecer as vantagens citadas acima, um SDK deve ser
estruturado respeitando alguns requisitos:
Modularidade o acoplamento entre os componentes oferecidos
por um SDK deve ser pequeno, para que o programador tenha
liberdade para utilizar somente os componentes que ele necessite.
Reuso os componentes de um SDK devem ser extensveis, para
que o programador possa, com alguma adaptao, reutiliz-los, de
acordo com as necessidades especficas da sua aplicao. Alm
disto, devem poder ser utilizados em diversos contextos e realizar
diferentes tarefas.
Interface com mltiplas linguagens de programao desejvel
que um SDK disponibilize APIs para mais de uma linguagem de
programao. Para isto, O SDK deve ser pensado como uma
especificao genrica, a partir da qual as APIs devem ser
implementadas. Isto garante a compatibilidade entre as
implementaes, ao mesmo tempo que mantm a independncia.
14.2.3 O TerraLib Development Kit
Conforme o exposto acima, fica evidente que seria desejvel a TerraLib
possuir um SDK. Deste modo, iniciamos o projeto Tdk (TerraLib
Development Kit), cujo objetivo principal facilitar o desenvolvimento de
aplicativos geogrficos que utilizem a TerraLib.
Para atingir este objetivo, projetamos o Tdk levando em considerao
os seguintes requerimentos:

477
14. Desenvolvimento de aplicativos com a TerraLib

API Simplificada prover, para usurios que no sejam


proficientes em programao com a TerraLib, uma API
simplificada para acesso s suas funcionalidades mais comuns. O
Tdk, no entanto, no oferece a mesma flexibilidade que o cdigo
da TerraLib, de forma que deve ser permitido o acesso direto
TerraLib.
Arquitetura genrica a arquitetura do Tdk no deve depender de
nenhuma tecnologia especfica (aberta ou proprietria).
Idealmente o programador deve poder implementar a arquitetura
proposta com a tecnologia mais apropriada ao contexto da sua
aplicao (Web ou Desktop, JAVA ou C++). De uma forma
simplista, a arquitetura do Tdk consiste em uma especificao de
como implementar um ambiente de desenvolvimento para SIGs.
Modelos reutilizveis e extensveis sugerir modelos funcionais
que sejam teis para o desenvolvimento de SIGs (modelos para
autenticao de usurios, acesso ao banco de dados atravs de
mltiplas conexes, modelos para edio e impresso de mapas,
entre outros). As solues propostas pelos modelos sugeridos
devem poder ser usadas isoladamente e poder ser estendidas, para
acomodar funcionalidades especficas da aplicao dos usurios.
Compatibilidade com padres oferecer uma interface para o
acesso TerraLib, compatvel com os padres publicados pelo
Open GIS Consortium (OGC) (www.opengis.org). Isto permite
que os programadores acostumados com o vocabulrio e a
arquitetura do OGC, utilizem as funcionalidades do Terralib no
desenvolvimento de suas aplicaes. Alm disto, para promover a
interoperabilidade com aplicativos desenvolvidos com a TerraLib,
o Tdk deve oferecer servios compatveis com as especificaes do
OGC (como os servios WMS, WFS e WCS, de publicao de
dados na Web).
Com isto, esperamos resolver as trs questes levantadas acima e
facilitar o desenvolvimento de um ambiente colaborativo para o
desenvolvimento de SIGs avanados.

478
Fundamentos conceituais da arquitetura

14.3 Fundamentos conceituais da arquitetura


Desenvolvemos o Tdk como uma extenso modular da TerraLib,
direcionado a oferecer suporte para a implementao de funcionalidades
de aplicativos no domnio de SIG. Isto se reflete no modelo de dados
utilizado, concebido a partir do modelo de dados original da TerraLib.
Embora seja desenvolvido em cima da biblioteca TerraLib, o Tdk no
restrinje o acesso direto s suas funcionalidades, conforme mostrado na
Figura 14.1.

Figura 14.1 O Tdk como extenso modular da TerraLib.

A arquitetura do Tdk especifica interfaces de programao (APIs)


bem definidas e sugere modelos funcionais referentes implementao
de funcionalidades comuns a aplicativos grfico-interativos de SIGs. Os
elementos da arquitetura so descritos a seguir.
14.3.1 Modelo de dados Tdk
Definimos o modelo de dados conceitual do Tdk a partir do modelo
original da TerraLib (tema, layer, view, etc. Ver Captulo 12). O modelo
do Tdk segue as especificaes de um composite (Gamma et al., 1995) e
pode, portanto, ser estendido para acomodar novos componentes,
conforme mostrado na Figura 14.2.

479
14. Desenvolvimento de aplicativos com a TerraLib

Figura 14.2 Diagrama hierrquico com o modelo de dados Tdk.


O elemento que define um objeto Tdk (TdkObject) a raiz do modelo
e pode representar trs tipos bsicos de elementos:
Geometria Uma representao geomtrica simples (um ponto,
linha, polgono, imagem, ou qualquer outra representao
geomtrica).
Objeto Simples Um objeto geogrfico composto por n geometrias
em atributos.
Coleo Um conjunto de objetos simples ou de outras colees.
Esses elementos so organizados hierarquicamente segundo as regras
de que um objeto simples agrupa um conjunto de geometrias e uma
coleo agrupa objetos simples ou outras colees. Uma vez definida
uma interface nica e comum a objetos e colees, torna-se possvel o
tratamento uniforme entre estes elementos.
14.3.2 Interfaces de programao
Como concebemos o Tdk dentro do paradigma de orientao a objetos
(Rumbaugh et al., 1991), a presena de componentes na arquitetura
naturalmente esperada. Neste contexto, componentes so classes
projetadas a partir do conceito de reuso e que so acessados atravs de
mtodos e operaes especificadas pela interface do componente. Os

480
Fundamentos conceituais da arquitetura

componentes devem ser extensveis. O Tdk oferece um conjunto de


componentes agrupados em uma interface de programao.
Notamos, no entanto, que em muitos casos, o uso devido de
componentes requer um conhecimento grande sobre como utiliz-los, o
que pode levar o programador a um aprofundamento em documentos
tcnicos. Como alternativa, visando diminuir o tempo necessrio para se
obter proficincia na utilizao do Tdk, projetamos uma segunda
interface de programao, com caractersticas de programao
procedural, atravs de mtodos que se comportam como funes. Esta
interface oferece um conjunto de funcionalidades bem definidas, com um
alto nvel de abstrao, escondendo a complexidade da implementao.
Os mtodos oferecidos, chamados de servios, foram agrupados segundo
seu contexto semntico, de forma que as funcionalidades possam ser
facilmente localizadas e acessadas diretamente. Diferente dos
componentes, os servios no podem ser estendidos.
Em resumo, o Tdk oferece duas interfaces de programao (ver
Figura 14.3), conforme descrevemos a seguir :
uma API de componentes, atravs da qual se pode acessar um
conjunto de classes que encapsulam dados e operaes definindo
comportamento consistente a ser utilizado ou estendido;
uma API de Servios, na qual as funcionalidades mais comuns so
agrupadas de acordo com o seu contexto e a sua semntica e so
acessveis atravs de uma interface simplificada. Idealmente, a API
de servios deve referenciar tipos primitivos nas assinaturas de seus
mtodos, de modo a no ser necessrio conhecimento prvio sobre
componentes do Tdk, embora internamente os servios devam
utiliz-los.

481
14. Desenvolvimento de aplicativos com a TerraLib

Figura 14.3 As interfaces de programao Tdk.

14.3.3 Modelos funcionais


Os modelos funcionais sugerem estratgias de implementao para as
funcionalidades de um sistema. No Tdk, projetamos modelos para
atender s principais funcionalidades presentes em um tipo de aplicativo
comum dentro do domnio de um SIG. Neste sentido, estamos falando
de aplicaes grfico-interativas, que persistem seus dados em um banco
de dados e que oferecem operaes bsicas de visualizao, impresso,
consulta e edio.
Para atender a este tipo de aplicao, o Tdk oferece trs modelos
principais: i) um modelo de persistncia, que gerencia a comunicao
com o banco de dados, ii) um modelo de interao, que estrutura a
comunicao entre os elementos do sistema e possibilita a
implementao das funcionalidades de visualizao, impresso, consulta
e edio de uma forma integrada e iii) um modelo de apresentao, que
define um conjunto de componentes GUI, implementadas sobre um
pacote grfico-interativo externo. Existe ainda a inteno de oferecer um
modelo temporal, para suporte aplicaes dinmicas.
A concepo dos modelos funcionais no Tdk visa atender a um
requisito de extensibilidade e reuso, oferecendo a possibilidade do
programador adapt-lo s suas necessidades especficas.

482
Descrio tcnica dos elementos da arquitetura

Em termos de implementao, os modelos funcionais sero


construdos utilizando-se as interfaces de programao Tdk, conforme
ilustrado na Figura 14.4.

Figura 14.4 Os Modelos funcionais so implementados utilizando-se as


interfaces de programao Tdk.

14.4 Descrio tcnica dos elementos da arquitetura


Nesta seo estaremos refinando as definies apresentadas como
fundamentos da arquitetura Tdk. Descrevemos, em detalhes, os
principais elementos referenciados at aqui. Com objetivo didtico,
estaremos exemplificando, atravs de codificao, o uso de alguns destes
elementos.
14.4.1 API de componentes
Alguns dos principais componentes oferecidos pelo Tdk so descritos
abaixo:
Componente referente a um Objeto Tdk (TdkObject) este componente
consiste na raiz da rvore hierrquica de dados Tdk. Ele representa a

483
14. Desenvolvimento de aplicativos com a TerraLib

agregao das interfaces que impe comportamento a todos os elementos


do modelo de dados Tdk (ex: TdkEventHandler, TdkPersistenceObject).
Componente para interface de persistncia (TdkPersistenceObject) define o
comportamento de uma classe aderente ao modelo de persistncia Tdk.
As classes de aplicao devero implementar esta interface direta ou
indiretamente. As classes pertencentes ao modelo dados Tdk
implementam indiretamente esta interface atravs do TdkObject.
Componente de identificao de objetos (TdkGlobalID) a idia de tratar
todos os elementos, coleo ou folha, de uma base de dados geogrfica da
mesma forma abre espao para a criao de um identificador nico para
cada TdkObject. O Global ID (GID) foi criado com esse propsito. A
idia do GID representar TkdObjects da mesma forma que o sistema
de DNS representa URLs, dessa forma podemos ter um GID nico para
cada TdkObject do sistema (inclusive sistemas que englobam vrios
bancos de dados). O GID composto de: [Database Descriptor].[Object
Type].[Object ID]
Componente para fabricao de objetos (TdkObjectFactory) responsvel
por criar instncias de TdkObjects dinamicamente. Todos os tipos
criados por uma aplicao, que possurem uma classe representante
definida pela prpria aplicao, devem ter mtodos construtores
registrados nesta classe. Ela contm uma estrutura de dados que tem o
nome da classe como chave e um ponteiro para uma funo que cria uma
instncia da classe correspondente ao tipo.
Componente Canvas Genrico (TdkCanvas) representa uma abstrao,
independente de pacotes grficos, de um canvas (painel) para desenho
que tem formas primitivas para a TerraLib. Em outras palavras, o
TdkCanvas prov uma interface especfica para o desenho de geometrias
TerraLib, que deve ser estendida para ter acesso s suas funcionalidades
(ex. plotPoint, plotLine, plotPolygon, plotText, plotRaster).
Como exemplo de implementao de um canvas genrico mostramos
aqui o TdkCDCanvas. Este componente consiste na verso CD
(www.tecgraf.puc-rio.br/cd) de um TdkCanvas. No cdigo apresentado a
seguir mostramos como desenhar um ponto simplesmente :

484
Descrio tcnica dos elementos da arquitetura

/* declaraes omitidas :
qtParent - a janela Qt principal, na qual,este canvas
estar associado.
object um objeto Tdk com geometria representada por um
conjunto de polgonos.
*/
//
TdkQtCanvas* canvas = new TdkQtCanvas(qtParent);
//Armazena a geometria num container.
TePolygonSet& polys=
((TdkGeographicObject*)object)->getPolygonsGeometry();

for(int j = 0; j < polys.size(); j++)


canvas->plotPolygon(polys[j]);
//

Codificao 14.1 Exemplo de implementao em C++ do componente


TdkCanvas com o pacote grfico CD.

Componente de acesso ao banco de dados (TdkDatabase) os dados e


metadados so armazenados no banco TerraLib em tabelas relacionais e
refletidos nas classes definidas. As tabelas so divididas em dois grupos;
tabelas de metadados, que so usadas para guardar o conceito Terralib e
possuem formato pr-definido e as tabelas de dados, que so usadas para
armazenar os dados geogrficos (componente espacial + descritiva). A
TerraLib implementa um primeiro nvel de abstrao destes dados com a
interface TeDatabase (ver Captulo 12), onde temos mtodos para
manipular geometrias, layers, temas, etc.. Porm, a interface
TdkDatabase que oferece um nvel mais alto de abstrao, introduzindo
tipos como TdkMap e TdkProject, e escondendo do programador detalhes
do modelo de dados TerraLib.
Como exemplo de implementao do componente TdkDatabase
apresentamos, a seguir, um cdigo de acesso a uma tabela existente em
um banco de dados Oracle :

485
14. Desenvolvimento de aplicativos com a TerraLib

//...
TdkOracleConDescriptor desc("oraserver",
"tdkuser",
"tdk123" ,
"gisdev");
TdkDatabase* oracleDriver = new TdkOracleImpl(desc);
String tableName = myTable;
oracleDriver->loadTable(tableName);
//

Codificao 14.2 Exemplo de implementao em C++ de TdkDatabase para


acesso a um banco Oracle.

Abstrao de uma aplicao bsica (TdkAplication) prov mtodos que


oferecem funcionalidades bsicas para agilizar o processo de
desenvolvimento de um SIG bsico, como a criao de um novo modelo
de dados, de um novo projeto, funes para visualizao e consulta,
impresso, etc.. O TdkApplication no prov mtodos de interface
grfica, de modo que o programador pode escolher o toolkit para
interface de sua preferncia.
Como exemplo de implementao do componente TdkApplication
apresentamos o cdigo a seguir, que configura o modo de interao de
uma aplicao que utiliza o pacote grfico IUP (www.tecgraf.puc-
rio.br/iup) para responder interao com o usurio de forma a criar
geometrias linhas no caso em uma base de dados TerraLib :

486
Descrio tcnica dos elementos da arquitetura

//
Ihandle* btn = IupButton("", "CreateLineCb");
IupSetAttributes(btn,
"TIP = \"Criar linha\",
IMAGE = lines_image,
IMPRESS = lines_press_image,
IMINACTIVE = lines_inactive_image,
PRESSED = 0");
IupSetFunction("CreateLineCb",
(Icallback)TdkIupApplication::CreateLine);
//

Codificao 14.3 Exemplo de implementao em C++ do componente


TdkApplication sob o pacote grfico IUP.

Componente de controle de interao (TdkController) componente raiz


da hierarquia de componentes responsveis pela implementao da
estratgia de resposta s aes do usurio. Todas as controladoras
descritas adiante, no modelo de interao, iro implementar esta interface
(TdkMapController,TdkInteractController etc...).
14.4.2 API de servios
Alguns dos principais servios oferecidos pelo Tdk so descritos abaixo:
Servio de persistncia disponibiliza funcionalidades de alto nvel que
permitem persistir, consultar e atualizar as informaes em um banco de
dados TerraLib.
O cdigo a seguir ilustra o que necessrio para criar uma base de
dados TerraLib completa, utilizando o Tdk. Modificar o cdigo para
receber outro banco de dados, como o Oracle por exemplo, seria um
trabalho muito simples, bastando trocar o descritor de conexo para o
descritor Oracle (TdkOracleConDescriptor) de acordo com os parmetros
necessrios para esta conexo (nome do servidor etc...).

487
14. Desenvolvimento de aplicativos com a TerraLib

//
TdkAccessConDesc desc(C:/mydb.mdb);
TdkPersistenceService.createTableModel(desc);
//

Codificao 14.4 Exemplo de uso do Servio de persistncia em Java na criao


de um banco de dados TerraLib.

Servio de processamento prov funcionalidades que auxiliam as


tarefas de calcular, converter dados e selecionar reas georeferenciadas.
Servio grfico oferece uma srie de funcionalidades para interface
grfica baseadas no TdkCanvas.
Servio de apresentao oferece mtodos para criao de dilogos de
comunicao com o usurio.
14.4.3 Modelo de persistncia
Conforme mencionado na Seo 1.2.3, o Tdk oferece um modelo
funcional para a implementao do processo de gerncia da persistncia
de dados em uma base TerraLib. Este modelo explora, principalmente,
os conceitos de transparncia de localidade e automao da persistncia.
Transparncia de localidade este conceito consiste em poder
tratar dados de maneira uniforme, independente da sua origem.
Automao da persistncia este conceito consiste em assumir a
responsabilidade de controlar o acesso e atualizao dos dados a
serem persistidos.
Para implementar o conceito de transparncia de localidade, o modelo
define o uso de um identificador global (TdkGlobalID) por todas as
classes aderentes ao modelo de persistncia. Nesta identificao, a classe
carrega a informao referente sua base TerraLib de origem como
descrito na especificao funcional do Tdk (www.terralib.org/tdk). No
domnio de SIGs, podemos imaginar uma aplicao deste conceito
quando se deseja visualizar dados oriundos de bancos de dados distintos.
Para implementar o conceito de automao da persistncia, foi criado
um componente TdkPersistenceObject, que define uma interface nica

488
Descrio tcnica dos elementos da arquitetura

com os mtodos a serem implementados por uma classe nova interessada


em aderir ao modelo de persistncia. Este componente representado por
um novo elemento, que foi acrescentado ao modelo de dados original
(ver Figura 14.4), conforme mostrado na Figura 14.5.

Figura 14.5 O modelo de dados Tdk incluindo a classe


TdkPersistenceObject.

Atravs da implementao deste ltimo conceito, a tarefa de


persistncia dos dados da aplicao muito simplificada. Duas situaes
podem ocorrer: i) o conjunto de elementos que definem o modelo
conceitual Tdk suficiente para atender s demandas do aplicativo a ser
desenvolvido. Neste caso, o programador no precisa se preocupar em
implementar nenhum cdigo relacionado persistncia de seus dados
numa base TerraLib. ii) o modelo original do Tdk estendido atravs de
novos elementos necessrios ao domnio da aplicao. Neste caso, os
componentes que representam os novos elementos devem implementar a
interface nica definida pelo TdkPersistenceObject. Desta forma, estes
componentes passam a aderir ao modelo de persistncia, ganhando a
possibilidade de explicitar as particularidades referentes persistncia de

489
14. Desenvolvimento de aplicativos com a TerraLib

seus atributos na base TerraLib. Sem a utilizao do conceito de


automao, seria necessrio estender o componente da TerraLib
(TeDatabase) e definir os mtodos de persistncia para os novos
elementos1, que representa uma tarefa bem mais complicada.
Uma outra questo tratada pelo modelo de persistncia, se refere ao
controle do ciclo de vida de componentes provenientes da extenso do
modelo de dados do Tdk. Como fazer, por exemplo, para que ao carregar
um tema TerraLib, composto por objetos definidos fora do modelo de
dados Tdk, seja possvel instanciar esses objetos de forma automtica?
Para enderear a situao descrita acima, o Tdk implementa o
conceito de uma fbrica de objetos, que possibilita s classes aderentes ao
modelo de persistncia registrar seus atributos simples e t-los, desta
forma, gerenciados pelo Tdk.
Apresentamos a seguir um exemplo da utilizao do modelo. Na
codificao ilustrada abaixo realizamos a carga de um tema persistido
para a manipulao em memria :

TdkAccessConDescriptor desc( "C:/mydb.mdb" );


TdkObjectGID tdkObjGID(1,
"1",
"TDK_ THEME",
desc.getDbKey());
TdkTheme myTheme( tdkObjGID );
TdkPersistenceService::loadObject( &mTema );

Codificao 14.5 Carregando um objeto persistido para memria.

14.4.4 Modelo de interao


Conforme mencionado na Seo 1.2.3, pretendemos atender demandas
que surgem no desenvolvimento de aplicativos grfico-interativos. Para
isto, projetamos um modelo, que sugere estratgias de implementao

1
Como foi feito com TdkProject.

490
Descrio tcnica dos elementos da arquitetura

para o suporte s operaes que requeiram interao com o usurio. O


modelo de interao do Tdk apresenta as seguintes caractersticas:
Flexibilidade - permite uma implementao genrica e
independente de solues proprietrias. independente tambm
do pacote grfico a ser utilizado;
Independncia modular atravs da utilizao de um modelo de
eventos, permite um desacoplamento entre os seus componentes;
Para garantir estas caractersticas, concebemos o modelo com base
no padro MVC de arquitetura (ver Figura 14.6) (Krasner e Pope,
1988).

MVC (Model,View,Controller) este padro bastante difundindo no


domnio de aplicaes grfico-interativas e tem como principal objetivo
organizar a interao entre os elementos participantes da implementao
de uma determinada funcionalidade, garantindo o desacoplamento entre
a interao do usurio e a representao do dado.

Figura 14.6 O padro MVC para desenvolvimento de aplicativos de


visualizao.
Uma vez aplicado, o padro MVC resulta em uma diviso em camadas
de contextos Modelo, Viso e Controle onde cada camada possui um
papel bem definido na interao. No Modelo estaro os dados do
domnio representado (ex: temas e objetos). A Viso representa a

491
14. Desenvolvimento de aplicativos com a TerraLib

interface direta com o usurio como uma metfora de um conceito do


domnio (ex: legenda, mapa). Finalmente, o Controle determina a reao
uma ao do usurio sobre os dados do Modelo (ex: zoom, pan).
Como exemplo de aplicao do MVC, podemos imaginar, a
visualizao de diversos mapas em uma aplicao de visualizao de
dados geogrficos e, no entanto, todas essas visualizaes fazerem
referncia ao mesmo dado representado na camada de dados que, por sua
vez, representa o dado persistido no banco de dados.
A Figura 14.7 apresenta a diviso das camadas de classes adotada pelo
modelo de interao do Tdk, que so descritas em seguida.

Figura 14.7 As camadas referentes ao MVC do modelo de interao

Camada de Visualizao (Visualization Layer) nesta camada


apresentamos um conjunto de metforas do domnio da aplicao,
responsveis pela interao direta com o usurio. No nos referimos aqui
ao controle desta interao, mas sim a contextualizao das possveis
aes que faz sentido realizar em cada entidade representada nesta
camada (ex: uma legenda pode ter a ordem de seus temas trocada).
Seguindo o padro MVC, nesta camada, estariam as vises (View) dos
modelos (Model) pertencentes camada de dados.
Como exemplos de componentes desta camada podemos citar o
componente de visualizao de um tema TerraLib responsvel por
encapsular atributos de visualizao como estilos de objetos selecionados.

492
Descrio tcnica dos elementos da arquitetura

Camada de Controle (Control Layer) nesta camada acontece a mediao


da interao entre usurio e aplicao. As aes do usurio, realizadas via
elementos da camada de visualizao, realizam algum tipo de operao
sobre os dados representados, logicamente, pela camada de dados. A
estratgia de reao, por parte do sistema, s aes do usurio so
implementadas nesta camada. Estas estratgias so, inclusive,
configurveis de acordo com o tipo de comportamento desejado na
resposta do sistema. Exemplificando, um mouse click pode causar uma
reao de criao de ponto ou seleo de objeto, dependendo da
configurao da camada de controle. Seguindo o padro MVC, nesta
camada esto as controladoras (Controllers) que definem o
comportamento do sistema em reposta s acoes do usuario sob as vises
(Views) dos dados (Model).
Como exemplos de componentes desta camada podemos citar dentre
outros :
A controladora de interao com o Mapa visualizado
A controladora de interao com a Legenda
Uma observao final quanto a camada de controle do modelo de
interao a adoo de um paradigma de programao orientada a
eventos. Apesar do MVC no depender deste paradigma, j que seria
possvel implement-lo utilizando chamadas de mtodos simples
(callback methods), esta estratgia nos trouxe uma flexibilidade
interessante. Com o uso de eventos, o cdigo responsvel pela notificao
de uma determinada ocorrncia (ex: a troca de estilo de um objeto),
assim como o cdigo que implementa a resposta uma ao do usurio
(ex: mouse move), ficam completamente separados do cdigo funcional
(business code). O modelo de eventos adotado foi sugerido pela
arquitetura VIX (Santos, 2005) (ver Figura 14.8).
A arquitetura VIX A maioria dos sistemas grfico-interativos adota o
modelo de orientao a eventos, difundido a partir de Smalltalk
(Goldberg e Robson, 1983). Tipicamente, o fluxo de informaes neste tipo
de aplicao segue um padro. A cada ao do usurio, so gerados
eventos do sistema de interface que passam o controle para a aplicao.
Com o intuito de facilitar o desenvolvimento de aplicativos com este
tipo de interao, desejvel tratar os eventos de maneira uniforme,

493
14. Desenvolvimento de aplicativos com a TerraLib

independente do tipo de ao que ele ir ocasionar. Isto levou adoo


do conceito de objetos visuais interativos (VOs).
Pode-se entender um objeto visual como qualquer objeto que possua
uma representao e um comportamento.
Outro conceito importante o de espao visual (VS), que mapeia
entidades que transmitem eventos para VOs e fornecem uma superfcie
de visualizao onde eles so posicionados. Os VSs devem ser encarados
como elementos de ligao entre o usurio e o VO que ele est
manipulando. No processo de comunicao entre estes objetos, so
utilizados dois mecanismos:
Mensagens - atravs deste mecanismo os objetos podem trocar
dados uns com outros (o VO deve saber responder s requisies
do VS).
Filtros - servem para modelar objetos que fazem a interface entre
um VS e um VO. Um filtro repassa para o seu VO associado os
eventos gerados em seu VS, podendo dar algum tratamento
especial a esses eventos.
Na implementao Tdk da arquitetura VIX, como parte estrutural do
modelo de interao definimos dois novos elementos:
uma interface nica para encapsular o cdigo referente a troca de
mensagens entre os componentes (TdkEventHandler).
uma abstrao de um objeto de edio (TdkLayoutObject) que
servir de componente raiz para todos os elementos do modelo de
dados Tdk presentes na implementao de funcionalidades de
edio.

494
Descrio tcnica dos elementos da arquitetura

Figura 14.8 O modelo de eventos baseado no VIX

Apresentamos a seguir o modelo de dados do Tdk, com estes novos


elementos.

Figura 14.9 O modelo de dados Tdk acrescido dos elementos referentes ao


modelo de interao.

495
14. Desenvolvimento de aplicativos com a TerraLib

Para efeitos de ilustrao, mostramos abaixo uma implementao de


resposta ao evento de scrolling (rolagem da barra de janela da interface
com o usurio) do usurio, tratado pela controladora do mapa
visualizado .

void TdkMapController::
handleVSEvent(TdkScrollEvent& event)
{
float x = event.getX();
float y = event.getY();
double dx = event.getDX();
double dy = event.getDY();
double xc = x + dx / 2.0;
double yc = -y - dy / 2.0;
mapDisplay_->center(xc, yc);
mapDisplay_->draw();
}

Codificao 14.6 Tratamento de um scroll no visualizador de mapas


pela classe controladora TdkMapController.
Camada de Dados (Data Layer) o principal objetivo da camada de dados
o armazenamento lgico dos dados persistidos.Em termos de interao
com as outras camadas, ela manipulada pela camada de visualizao e
controle atravs do modelo de eventos.Seguindo o padro MVC esta
camada armazena os componentes de modelo (Model).
Como exemplo de um componente desta camada podemos citar a
representao de um tema, armazenando em memria seus objetos e
atributos.
14.4.5 Modelo de apresentao
Este modelo apresenta um conjunto de componentes GUI,
implementadas sobre um pacote grfico-interativo externo. Os
componentes GUI so implementados da forma mais fina possvel, tendo
comportamento e estado independentes de recursos especficos do pacote
grfico. Desta forma, pretende-se minimizar o esforo diante de uma

496
Compatibilizao com o OGC

mudana de pacote grfico. Alm disto, tendo estado e comportamento


descritos na camada funcional, a aplicao passa a ter mais flexibilidade
sobre o comportamento do modelo. Como exemplos de componentes
desta camada podemos citar:
Dilogo para apresentao de atributos de um objeto.
Menu de interao com o usurio.
Dilogo para importao de dados.

14.5 Compatibilizao com o OGC


Conforme mencionado na introduo, um dos requerimentos do Tdk
oferecer suporte a padres do OGC. Este suporte oferecido de duas
formas:
Uma camada de interface para o modelo de dados do OGC, que
permite os programadores acostumados com o vocabulrio e a
arquitetura do OGC utilizarem as funcionalidades do Terralib.
Servios do OGC. Um exemplo disto o servio WMS para
publicao de dados na web.
14.5.1 Interface para programao com o OGC
O Tdk oferece uma API que mapeia o modelo de dados do Tdk para o
modelo de dados do OGC (www.opengeospatial.org). Sendo assim,
possvel o desenvolvimento de aplicativos que utilizem as
funcionalidades oferecidas pela TerraLib e que sejam compatveis com os
padres publicados pelo OGC (Figura 14.10).

497
14. Desenvolvimento de aplicativos com a TerraLib

Figura 14.10 A interface do Tdk com o padro OGC.

14.5.2 Servio WMS


O servio WMS (Web Map Servise) permite a publicao de mapas na
Web, produzidos a partir de dados georeferenciados. O servio especifica
um padro de como o cliente deve requisitar as informaes para o
servidor e como este deve responder. Para esta comunicao so definidas
trs operaes: GetCapabilities, GetMap e GetFeatureInfo
(www.opengeospatial.org).
GetCapabilities: permite ao cliente solicitar todas as
metainformaes sobre a base de dados, tais como o nome dos
mapas contidos, projeo, escala, estilo possveis dos mapas,
formatos possveis dos mapas (GIF, JPEG, PNG), formato das
informaes descritivas (FeatureInfo). Os parmetros da operao
so recebidos via HTTP e a resposta deve ser um arquivo XML
(text/xml) no mesmo protocolo. Segundo o protocolo WMS, esta
operao deve ser implementada obrigatoriamente.
GetMap: retorna o mapa propriamente dito. Com esta operao, o
cliente do Web Service pode requisitar um mapa em particular.
Para isto basta usar as informaes que foram retornadas pelo

498
Exemplos

GetCapabilities. Os parmetros da operao so recebidos via


HTTP e a resposta deve ser um arquivo de imagem no formato
solicitado, que pode ser um das opes: GIF, PNG ou JPEG. Esta
operao tambm obrigatria.
GetFeatureInfo: permite ao cliente realizar consultas nos mapas da
base de dados. Os parmetros da operao so recebidos via HTTP
e a resposta deve ser um arquivo no formato solicitado que pode
ser um dos seguintes: texto, XML ou GML. Esta operao no
obrigatria segundo o protocolo WMS.

14.6 Exemplos
A especificao definida pelo Tdk pode ser implementada em diversos
contextos. Mostramos abaixo alguns exemplos, onde ilustramos o uso dos
elementos de arquitetura Tdk na confeco de diferentes aplicativos.
14.6.1 Um sistema para visualizao, impresso, consulta e edio
Ilustramos a seguir aspectos do processo de desenvolvimento de um
aplicativo grfico-interativo, que possui operaes de visualizao,
impresso, consulta e edio de dados geogrficos, a partir do Tdk. O
processo consiste em estender as classes definidas pelo modelo de
interao (ver Figura 14.11) para atender s funcionalidades da aplicao
(zoom, impresso, criao de pontos e linhas, seleo de objetos, etc.) e a
utilizao dos modelos de Persistncia e Apresentao.

499
14. Desenvolvimento de aplicativos com a TerraLib

Figura 14.11 A extenso do modelo de interao para o sistema VICE, onde


capacitamos a aplicao com funcionalidades de seleo, zoom, criao de
geometrias.

O aplicativo VICE - Sistema para Visualizao, Impresso, Consulta


e Edio oferece a noo de modos de operaes de acordo com o
contexto de utilizao do aplicativo (Visualizao e Consulta, Layout e
Preview de Impresso. A utilizao do modelo funcional de interao, foi
fundamental para a implementao destes modos de operaes. A seguir,
apresentamos as telas (printscreen) referentes a cada um desses modos em
funcionamento (Figuras 14.12, 14.13 e 14.14).

500
Exemplos

Figura 14.12 VICE - modo de Visualizao e Consulta.

Figura 14.13 VICE - modo de Layout.

501
14. Desenvolvimento de aplicativos com a TerraLib

Figura 14.14 VICE - modo de Preview de Impresso.

14.6.2 Aplicativos Java Desktop


Como destacado na seo de requisitos do Tdk, sua arquitetura deveria
ser independente de linguagens. No caso de Java, as implementaes
necessrias para se ter o aplicativo descrito no exemplo anterior seriam
bastante anlogas ao caso de C++. No entanto, devido impedncia
sinttica entre as linguagens, devemos adicionar uma camada
responsvel pela troca de dados entre o mundo C++ e o mundo Java,
conforme mostramos na Figura 14.15.

502
Exemplos

Figura 14.15 A camada de acesso para abstrao da troca de dados entre Java
e C++.

14.6.3 Aplicativos Web


Um terceiro exemplo de produto desenvolvido com o Tdk o aplicativo
Tdk Web Client (ver Figura 14.16), que consiste em um visualizador de
mapas na Web, compatvel com o padro WMS. Este aplicativo acessa o
servio WMS do Tdk (ver Seo 1.4).

Figura 14.16 Um produto Tdk de visualizao de Mapas na Web.

503
14. Desenvolvimento de aplicativos com a TerraLib

Referncias
GAMMA, E.; HELM, R.; JOHNSON, R.; VLSSIDES, J. Design Patterns -
Elemens of Reusable Object-Oriented Software. Reading, MA: Addison-
Wesley,1995. 395 p.
GOLDBERG, A.; ROBSON. D. Smalltalk-80 : The Language and its
Implementa-tion. Addison-Wesley, 1983.
KRASNER, E., G.; POPE, S. T.; A cookbook for using the model-view
controller user interface paradigm in Smalltalk-80. Journal of Object-
Oriented Programming, v. 1, n. 3, p. 26-49, 1988.
RUMBAUGH, J.; BLAHA, M.; PERMERLANI, W.; EDDY, F.;
LORENSON, W.; Object-Oriented Modeling and Design. Prentice Hall ,
Englewood Cliffs , NJ, 1991.
SANTOS, A. L. S. C. VIX - Um Framework para Suporte a Objetos Visuais
Interativos. Rio de Janeiro: Pontifcia Universidade Catlica do Rio de
Janeiro, 2005.

504

Vous aimerez peut-être aussi