Você está na página 1de 48

ESTRUTURAS DE DADOS ESPACIAIS

Universidade Federal de Ouro Preto UFOP Instituto de Cincias Exatas e Biolgicas ICEB Departamento de Computao DECOM Estrutura de Dados II

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Dados Espaciais x Dados Escalares


Multidimensionais x Unidimensionais Noo de Forma x pontos ou tuplas Ordenao parcial x Ordenao total Relaes geomtricas x Relaes sobre grandeza Frequentemente, os dois tipos so combinados em:

Sistemas de Informao Geogrficos Computao Grfica

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Espao de dados
Qualquer tipo de dado supe um espao onde ele est imerso Modelagem de dados requer que se escolha um espao apropriado Frequentemente, mais de uma opo possvel Exemplo: Cidade

Espao de cadeias de caracteres Cdigo numrico (ex. CEP) Ponto do planisfrio (Latitude e Longitude) Conjunto de pontos (ex. delimitado por um polgono)

Cada espao mais conveniente para um ou outro tipo de

processamento

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Dimenso
Dados escalares (no espaciais) so modelados como pontos em

um espao unidimensional

Dados espaciais so modelados como pontos ou conjuntos de

pontos em espao multidimensional

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Relaes entre dado e espao


Localizao

Existe uma cidade chamada So Paulo ? Existe uma cidade em 39 2930 S, 65 5020 W ?
o o

Vizinhana

Qual a cidade com nome subsequente a So Paulo?


Qual a cidade mais prxima de So Paulo?
Noo de mtrica

Extenso (Dados Espaciais)


Qual o permetro de So Paulo? Qual a rea de So Paulo?

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Uso de ordenao
Dados escalares

possvel estabelecer uma ordem total Ordenao facilita operaes de localizao e vizinhana

Dados espaciais

impossvel estabelecer uma ordem total sem romper com relaes de vizinhana A imposio de uma ordem total conhecida como linearizao do espao. Exemplo: ordenar um conjunto de pontos lexicograficamente Ordenao parcial, no entanto, pode facilitar diversas operaes

Estruturas de dados espelham ordenao

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Estruturas de dados para dados escalares


Visam essencialmente facilitar operaes de localizao e de vizinhana Exemplos:

Tabelas organizadas por clculo de endereo (Hash Tables)


Usadas em localizao de dados Podem ser baseadas em memria ou disco

rvores binrias balanceadas


Localizao de dados: O(log n) Vizinhana: O(log n) Primariamente baseadas em memria principal

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Estruturas de dados para dados escalares


rvores B e suas variantes

Localizao de dados: O(log n) Vizinhana: O(log n) Otimizadas para utilizao em memria secundria (disco) Asseguram alta taxa de utilizao (garantidamente > 50%)

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

Idia geral de estruturas de dados espaciais


Precisam suportar grande nmero de operaes No existe estrutura de dados espacial que garantidamente seja eficiente para

atender todos os tipos de operao


Aplicaes em bancos de dados espaciais:

Utiliza-se estruturas de dados gerais que tm eficiencia razovel no caso mdio. Ex.: PMR-quadtrees, Grid files, R-trees e suas variantes

Aplicaes em CAD, Computao grfica:

Frequentemente estruturas de dados gerais do bons resultados


Em casos especificos, estruturas de dados especializadas podem ser indicadas.: Ex.: Diagramas de Voronoi

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

10

Bancos de Dados Espaciais


Um dos requisitos fundamentais para os sistemas de bancos de dados atuais e

saber manipular dados espaciais:


SIG (Cartografia); CAD (Computer-Aided Design); Viso Computacional (Computer Vision); Robtica; Bancos tradicionais, em que um registro com k atributos corresponde a um

ponto no espao k-d;


Bancos de dados temporais, onde o tempo pode ser considerado uma

dimenso a mais;
Bancos de dados cientficos, com dados espao-temporais.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

11

Banco de Dados Espaciais


Necessidade de indexao dos dados espaciais de modo a

reduzir o tempo de acesso aos mesmos


Mtodos de indexao tradicionais no so indicados para

dados espaciais
Hash: no atende a consultas de faixa (range queries)

B-Tree: trata apenas uma dimenso

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

12

Como Processar este tipo de consulta de forma eficiente?

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

13

Como Processar este tipo de consulta de forma eficiente? Para esses sistemas existe
uma classe de mtodos conhecidos como mtodos de acesso multidimensionais.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

14

Consultas
Considere 2 tipos de consultas: Consultas de pontos Consultas de intervalo

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

15

De 1 para 2 dimenses
Consultas de pontos: recupera as tuplas

com referncia espacial localizada numa dada coordenada

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

16

De 1 para 2 dimenses
Consultas de intervalos: recupera todas as tuplas com referncias

espaciais dentro de uma dada faixa. A faixa normalmente uma rea retangular especificada pelas coordenadas de dois vrtices opostos ou

um crculo identificado pelo centro e raio.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

17

De 1 para 2 dimenses
Dados espaciais so expressos no espao Euclidiano Por exemplo, considere a tabela a seguir

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

18

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

19

De 1 para 2 dimenses
Exemplos de consultas

1. (No Espacial): recupere a localizao de Trentham Gardens

2. (consulta de ponto espacial): recupere qualquer local em (37, 43)

3. (consulta de intervalo espacial): recupere qualquer local com

vrtices sudoeste e nordeste (20,20), 40,50) respectivamente

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

20

De 1 para 2 dimenses
Algoritmo linear para consulta de ponto

1. Open Potteries file 2. while existem registros a examinar do 3. Leia o prximo registro r 4. if r.East = 37 then 5. if r.North=43 then 6. Recupere o nome do local deste registro

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

21

De 1 para 2 dimenses
Algoritmo linear para consulta de intervalo

1. Open Potteries file 2. while existem registros a examinar do 3. Leia o prximo registro r 4. if r.East est na faixa [20,40] then 5. if r.North est na faixa [20,50] then 6. Recupere o nome do local deste registro

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

22

De 1 para 2 dimenses
Desempenho dos algoritmos lineares ficam ruins a medida que a

tabela de consulta cresce

Precisamos indexar os dados. Usando um ndice convencional

de BD, poderamos indexar as colunas East e North obtendo a

tabela a seguir:

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

23

ndice
East 14 Site Newcastle Museum North 00 Site Trentham Gardens 17 18 Westport Lake New Victoria Theater 23 25 Gladstone Pottery Museum Beswick Pottery

20 31 31

Trentham Gardens Waterworld Royal Doulton Pottery

36 39 43

Coalport Pottery Minton Pottery Spode pottery

36

Minton Pottery

44

Park Hall Country Park

37
41 53 54 66

Spode Pottery
City Museum Ford Green Hall Coalport Pottery Beswick Pottery

55
58 62 65 87

New Victoria Theater


Newcastle Museum City Museum Waterworld Royal Doulton Pottery

74

Gladstone Pottery Museum Park Hall Country Park

92

Westport Lake

86

99

Ford Green Hall

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

24

De 1 para 2 dimenses
Consulta de ponto

podemos percorrer o ndice east para localizar os locais que tm

primeira coordenada 37. Da vai-se aos dados para ver das tuplas

localizadas quais que tm segunda coordenada igual a 43. (Spode


Pottery)
Consulta de intervalo

pode-se fazer uma busca por faixa [20,40] no primeiro ndice, que

resulta numa lista de ponteiros para o arquivo de dados. Ento, para cada ponteiro na lista, acessa-se sua tupla e verifica-se se a segunda

coordenada est na faixa [20,50]; caso positivo, a tupla retornada ao


resultado

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

25

De 1 para 2 dimenses
Problemas com indexao convencional:

Apenas um ndice usado por vez.

Precisamos de ndices multidimensionais que consigam tirar

proveito do espao, principalmente em consultas de intervalos.

As tuplas vo estar ordenadas

tuplas que esto prximas no espao devero estar prximas no

ndice

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

26

Estrutura de Dados Espaciais


Operao comum com dados espaciais a pesquisa de objetos que esto

numa determinada rea


Ex.: Encontre todos os hospitais que esto a no mximo 20Km deste

ponto

Algumas estruturas de dados propostas: Quad-trees Grid k-d-tree r-tree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

27

Quad Tree
Propriedades gerais

Extenso multidimensional da rvore de busca binria Pontos so armazenados em ns internos

Depende da ordem de insero dos pontos


Para N pontos inseridos segundo uma distribuio randmica

uniforme, a altura esperada da rvore O(log N)

Estrutura prpria para armazenamento em memria


Pontos, polgonos, volumes, imagens

Pode ser usada para representar:

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

28

QuadTree
Acelera o acesso a dados num plano 2d Tcnica bastante simples O espao de busca recursivamente decomposto em quadrantes

at que o nmero de retngulos sobrepondo cada quadrante menor do que a capacidade da pgina.
Os quadrantes so nomeados: Noroeste, Nordeste, Sudeste e

Sudoeste

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

29

Quadtree
O ndice representado como uma rvore quaternria (cada n

interno tem 4 filhos, um por quadrante)


Cada retngulo aparece em todos os quadrantes folhas que o

sobrepem

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

30

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

31

Quadtree
Consulta de ponto (point query) simples em quad tree.

Um nico path (caminho) percorrido da raiz at a folha

Em cada nvel, escolhido um dos quadrantes que contm o

ponto da consulta

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

32

Quadtree
Exemplo de Consulta Ponto P

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

33

Quadtree
Insero em quadtrees um retngulo ser inserido em cada quadrante folha que o

sobrepe
ento todos os caminhos para as folhas que sobrepem o

retngulo a ser inserido so percorridos


a pgina P associada com cada folha lida
Se P no est cheio, ento insere o novo retngulo

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

34

Quadtree
Insero em quadtrees Se P estiver cheio, O quadrante deve ser dividido em quatro

quadrantes e 3 novas pginas so alocadas


As entradas da pgina antiga mais a pgina nova so

divididas nas quatro pginas


Uma entrada E adicionada a toda pgina cujo quadrante

intercepta E

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

35

Quadtree
Insero em Quadtree

Como ficar a rvore aps as inseres de 15 e 16?

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

36

Quadtree
Deleo de pontos

Idia do algoritmo anlogo em rvores binrias no pode ser usada: nem sempre existem ns-folha que podem substituir o n sendo deletado

Soluo ingnua: reinserir todos os pontos da subrvore cuja raiz o n


deletado

Soluo melhorada: descobrir um bom n-folha candidato e reinserir

apenas os ns que tornariam a quadtree invlida

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

37

Quadtree
Deleo de pontos

A escolha do ponto substituto


4 candidatos naturais (1 em cada quadrante) Para achar o candidato do quadrante NW de P, caminhar sempre para SE do filho

NW de P
Para escolher Q, o melhor dos 4 candidatos:

Critrio 1: escolhendo Q nenhum dos outros 3 candidatos precisariam ser reinseridos

Problema de deleo pode ser aliviado com o uso de uma pseudo-quadtree


Pontos so armazenados nas folhas Ns internos so pontos que no fazem parte da massa de dados

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

38

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

39

Quadtree

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

40

Quadtree: Variantes
Existem diversas variantes da Quad tree: MX-CIF Quad tree:
objetos com extenso (retngulos);

PM-Quad trees:
Mapas;

Linear-Quad trees (Space Filling Curves):


mapeamento de um espao dimensional superior (ex: 2D) para um

espao inferior (1-D);

Estratgia empregada pela Oracle, nas verses anteriores a 10g.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

41

Bancos de Dados com Estruturas de Dados Espaciais

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

42

Aplicaes Quadtree
A decomposio da quadtree uma tcnica simples usada para obter uma representao da

imagem em diferentes nveis de resoluo.

Esta representao pode ser til para uma variedade de opes para processamento de

imagens e algoritmos de compresso de imagens. Algumas aplicaes utilizando a quadtree:

3D Studio MAX 3 (um dos mais populares softwares para animao e renderizao de imagens 3D): utiliza a quadtree para fazer o controle da profundidade de cor para sombras RayTrace.

Codec para Video-Phone: A ltima meta de uma baixa taxa de codificao da imagem

reduzir a redundncia, em ambos os domnios (espao e temporal), e assim reduz a taxa de

transmisso.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

43

Aplicaes Quadtree
Corrigir deformaes de cores nas fotos. Como por exemplo,

quando se tira uma foto e a pessoa est com os olhos avermelhados, podendo isso ser corrigido utilizando a quadtree.

Muito utilizado na medicina para ecografias (facilitando a

localizao de tumores em um determinado rgo do corpo).

Compactao de imagens.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

44

Vantagens Quadtree
A vantagem mais bvia no uso de quadtrees na codificao de imagens que

o grfico pode ser armazenado de uma forma compacta.

Facilidade para rotacionar imagens, principalmente para rotaes em ngulos

de 90 graus. Sendo necessrio para isso a utilizao de outro tipo de


caminhamento.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

45

Vantagens Quadtree
Em comparao com outras rvores, como a rvore binria, a

quadtree fornece uma estrutura de rvore num formato muito mais compacto e robusto.

Atualizaes constantes no afetam a performance da quadtree,

o desempenho da rvore R muito afetada por atualizaes

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

46

Desvantagens Quadtree
Se a imagem tem grandes reas com uma nica cor (como por

exemplo: o preto ou branco) haver um grande ganho em espao e uma rvore bastante compacta, mas se a imagem tiver grandes reas com diferentes cores (como por exemplo: azul, amarelo, verde, etc...) a rvore resultante ser muito maior no

proporcionando um ganho considervel em espao.

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

47

Desvantagens Quadtree
Um considervel consumo de CPU quando se trabalha com

imagens complexas (diversas cores, formas irregulares como curvas e tringulos, etc) na gerao da rvore.

No h balanceamento.

Somente duas dimenses podem ser indexadas. A R-tree

trabalha com 4 dimenses

Universidade Federal de Ouro Preto - Estruturas de Dados II - Estrutura de Dados Espaciais

48

Simulao Quadtree
http://closure-library.googlecode.com/git/closure/goog/demos/quadtree.html