ESTRUTURAS DE DADOS ESPACIAIS

Documentos relacionados
Algoritmos e Estrutura de Dados - II Estrutura de Dados Espaciais

Introdução a Estruturas de Dados Espaciais - QuadTree

GEOPROCESSAMENTO SIAD,

Mapas e suas representações computacionais

PMI 3331 GEOMÁTICA APLICADA À ENGENHARIA DE PETRÓLEO

SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS Aula 2. SIG- Eng. Cartográfica Prof. Luciene Delazari

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA SIG FORMATOS DE REPRESENTAÇÃO DE DADOS FORMATO VETORIAL

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

Conjunto de técnicas (ou tecnologias) ligadas à informação espacial, que engloba a coleta, tratamento e análise de dados.

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

Banco de Dados Geográficos

PARTE 2 INTRODUÇÃO AO SIG/GIS. Mundo Real. Curso de Geoprocessamento: Prof. Alzir Felippe B. Antunes

DAINF - Departamento de Informática

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA (II)

Estruturas de Dados Espaciais: Vetorial X Raster

Árvore Binária de Busca. Prof. César Melo

FÍSICA I AULA 01: GRANDEZAS FÍSICAS; SISTEMAS DE UNIDADES; VETORES

Noções básicas de SIG com QGIS

ESTRUTURAS DE DADOS ESPACIAIS

DADOS EM GEOPROCESSAMENTO

Aplicação de Árvores: Código de Huffman

ÁRVORE BINÁRIA DE BUSCA

Ministrantes: Alex Lemos e Marco Malagodi

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

Lista de Exercícios 5

SISTEMAS DE INFOMAÇÃO GEOGRÁFICA Reconhecer conceitos associados aos SIG/GIS Estabelecer um conjunto de procedimentos em função da análise a efectuar

Geoprocessamento. Aula - 01/08/2016. Professor: Diogenes Carvalho Viana

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

DADOS EM GEOPROCESSAMENTO

INTRODUÇÃO À CARTOGRAFIA. Prof. Rogério da Mata

O mundo real é muito complexo para ser representado em sua totalidade, em qualquer sistema de informações.

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

3 Sistema de Informação geográfica

Tipos de dados. Fonte: Cap. 2 Conceitos Básicos em Ciência da Geoinformação

Matrizes esparsas: definição

FOTOGRAMETRIA E FOTOINTERPRETAÇÃO

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

PRINCÍPIOS DE CARTOGRAFÍA BÁSICA

Dados espaciais QuadTree para Pontos

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Geoprocessamento GEOMÁTICA SIG SIG

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Hashing (Tabela de Dispersão)

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

SISTEMAS DE INFORMAÇÃO GEOGRÁFICA. No nível mais próximo ao usuário, a interface homemmáquina define como o sistema é operado e controlado.

DADOS GEORREFERENCIADOS

Geoprocessamento - Geomática

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

INF 1620 P3-29/06/04 Questão 1 Nome:

4. Algoritmos de Busca em Vetores

Profa. Dra. Fernanda Sayuri Yoshino Watanabe

CAPÍTULO 2 CONCEITOS DE GEOPROCESSAMENTO

Geometria Computacional

Banco de Dados Espaciais

BCC202 - Estrutura de Dados I

Ecologia de Paisagem Conceitos e métodos de pesquisa 2012

Árvores Binárias de Busca (ABB) 18/11

Treinamento em mapeamento. Renata Muylaert Contato

CONTEÚDO. Geoprocessamento COTIC DIRAF

Sistema de Informação Geográfica - SIG Operações geométricas com dados vetoriais

IGOT. SIG & DR Sistemas de Informação Geográfica e Detecção Remota

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Árvores Binárias de Busca (ABB) 18/11

Computação Gráfica. Representação e Modelagem

MINERAÇÃO DE MÍDIAS SOCIAIS GEOGRÁFICAS DO FOURSQUARE

INTRODUÇÃO AO GEOPROCESSAMENTO

Manual do Navegador Sig Cuiabá

4 Sistema de Informações Geográficas (SIG)

Matriz de Referência da área de Matemática Ensino Fundamental

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores binárias de busca

O que é um geodatabase? Fonte: ESRI

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

O VGeo, Visualizador de Informações Geográficas do Departamento Nacional. de Infraestrutura de Transportes (DNIT), é um sistema web de dados espaciais

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Transcrição:

ESTRUTURAS DE DADOS ESPACIAIS Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Algoritmos e Estrutura de Dados II 1

Dados Escalares Na matemática, na informática, e na física uma grandeza escalar é definida quando precisamos de um valor numérico associado a uma unidade de medida para caracterizar uma grandeza física.

Dados Escalares Inscrição Nota Estado Cidade Curso 00467354 47,8 MG VIÇOSA ADMINISTRAÇÃO 00085820 52,0 MG UBERLÂNDIA DIREITO 00015022 51,0 MG ALFENAS ENGENHARIA CIVIL 00403068 8,0 MG VARGINHA ENGENHARIA QUÍMICA 00130230 36,3 MG UBERABA MEDICINA VETERINÁRIA Poderíamos responder a perguntas como essas? Qual a média das notas dos alunos que moram próximos a Uberlândia? Quais alunos moram a no máximo 100km da capital do estado? 3

Dados Espaciais Os dados espaciais representam informações sobre o local físico e a forma de objetos geométricos. Esses objetos podem ser locais de pontos ou objetos mais complexos como países, estradas ou lagos.

Dados Escalares + Dados Espaciais Dados Escalares Inscrição Nota Estado Dados Espaciais Cidade Curso Latitude Longitude 00467354 47,8 MG VIÇOSA ADMINISTRAÇÃ O -20º 45' 14-42º 52' 55 00085820 52,0 MG UBERLÂNDIA DIREITO -18 55' 07'' -48 16' 38'' 00015022 51,0 MG ALFENAS ENGENHARIA CIVIL -21 25' 45'' -45 56' 50' 00403068 8,0 MG VARGINHA ENGENHARIA QUÍMICA -21 33' 05'' -45 25' 49'' 00130230 36,3 MG UBERABA MEDICINA VETERINÁRIA -19 44' 54'' -47 55' 55'' 5

Dados Escalares + Dados Espaciais 6

Mais exemplos de dados espaciais para localização 7

Dados Espaciais não só para mapas 2D 8

Dados Espaciais não só para mapas 3D 9

Diferenças entre consultas de dados escalares e espaciais Em alfabética, Qualordem aa cidade Qual população Quais as cidades Existe uma localizada no ponto qual ade cidade total Ouro vizinhas a Ouro cidade chamada Lat.: -20 17' 15 e subsequente a Ouro Preto? Ouro Preto? Long.: -43 Preto? 30' 29'? 10

Bancos de Dados Conceito: um banco de dados é uma coleção de dados relacionados, projetados para uma finalidade específica. Exemplo: Inscrição Nota Estado Cidade Curso 00467354 47,8 MG VIÇOSA ADMINISTRAÇÃO 00085820 52,0 MG UBERLÂNDIA DIREITO Inscrição Nome Data Nasc. 00467354 JOÃO PEREIRA DA SILVA 09/07/1990 RUA DOS IPÊS, 390... 00085820 ANA MÁRCIA BARBOSA 05/10/1992 AV. JK, 74 - CENTRO Endereço 11

Bancos de Dados Aplicações de um banco de dados comum: Bancos (ex.: depósito ou retirada de fundos da conta bancária); Hotéis (ex: reservas de quartos); Empresas aéreas (ex: compra e reserva de passagens); Bibliotecas (ex: consulta ao acervo); Supermercados (ex: identificação dos produtos comprados, controle do estoque); Lojas virtuais (ex: clientes e produtos vendidos pelo site); Redes sociais (ex: fotografias, postagens, curtidas, localização) 12

Bancos de Dados SGBD: Sistema Gerenciador de Banco de Dados. Exemplos: Já vêm com recursos avançados de pesquisa, ordenação, consultas, etc. 13

Bancos de Dados Ao construir um Banco de Dados Geográficos ser possível realizar consultas tais como: Que cidades são vizinhas ao município de Ouro Preto? Que municípios são cortados pela BR-040? Que distância entre a comunidade rural x e a escola mais próxima? 14

Bancos de Dados Espaciais Um dos requisitos fundamentais para os sistemas de bancos de dados atuais é saber manipular dados espaciais: SIG (Cartografia); CAD (Computer-Aided Design); Robótica; Bancos tradicionais na qual um registro com k atributos corresponde a um ponto no espaço k-d onde d é a dimensão; 15

Bancos de Dados Espaciais Os bancos de dados espaciais precisam fazer análises como: Medir distâncias, perímetro, áreas; Calcular a conectividade e o caminho mais curto entre dois pontos; Analisar pontos e linhas dentro de um polígono; Realizar buscar por região (intervalo); etc. 16

Estruturas de Dados Espaciais Vetoriais Pontos (nodos): árvores, postes, restaurantes, etc. Linhas (arcos): rios, avenidas, ferrovias, etc. Áreas (polígonos): terrenos, cidades, estados, florestas, etc. 17

Estruturas de Dados Espaciais Matricial Cruzamento dos atributos das linhas e colunas: Cada célula possui uma informação. Observe que a Figura da direita tem melhor resolução espacial. 18

Estruturas de Dados Espaciais Id Local X (Leste) Y (Norte) Quais locais estão no ponto (31, 87)? Quais os locais na faixa entre (20,20) e (40,50)? Qual a localização de Trentham Gardens? Y (Norte) (40,50) (20,20) X (Leste) 19

Tabela Hash Não atende as consultas de intervalos. 20

Árvores Binárias e n-árias Trata apenas uma dimensão, ou seja uma outra representação de vetor. 21

Consulta linear de intervalo 22

Estruturas de Dados Espaciais Algumas estruturas de dados propostas: o Quad-trees; o Grid; o K-d-tree; o R-tree; 23

Quadtree Árvore Quadrante - Divide o plano em vários pedaços, chamados de quadrantes. Ex: REGION QUADTREE 24

Quadtree Árvore Quadrante Outros tipos de Quadtrees: MX-CIF Quadtree: - lida com retângulos; PM-Quadtrees: - Mapas; Linear-Quadtrees (Space Filling Curves): - mapeamento de um espaço dimensional superior (ex: 2D) para um espaço inferior (1D). 25

Point Quadtree Estrutura de Dados typedef struct TipoRegistro { char nome[31]; /* outros componentes */ } TipoRegistro; (x, y) typedef struct TipoNo* TipoApontador; typedef struct TipoNo { int x; int y; TipoRegistro DadosPonto; TipoApontador quadrante[4]; } TipoNo; NO NE SO SE 26

Point Quadtree - Inserção Quadrantes NO NE SO SE (x, y) NO NE SO SE s: (35,40) (50,10) (60,75) (80,65) (85,15) (5,45) (25,35) (90,5) y 35,40 100 (60,75) 5,45 (80,65) (5,45) 80,65 80,15 50,10 90,5 (35,40) (25,35) (50,10) (80,15) (90,5) 0 25,35 60,75 100 x A estrutura é dependente da ordem com que os pontos foram inseridos. 27

Point Quadtree Pesquisa por ALGORITMO PARA PESQUISAR UM Ponto Quadrantes PONTO: Inicia-se a pela raiz (ponto atual); Se o ponto procurado for o ponto atual, retorna-o e para a busca; Se não, localiza em qual quadrante o ponto procurado deveria estar localizado e inicia a busca nesse quadrante; Repete esses passos até encontrá-lo ou, se não encontrar, retorna NULL. Como localizar o quadrante? x e y: coordenada do ponto procurado xatual e yatual: coord. do ponto do nodo atual NO: x <= xatual e y >= yatual; NE: x > xatual e y >= yatual; SO: x <= xatual e y < yatual; SE: x > xatual e y < yatual. (x, y) NO NE SO SE NO NE SO SE 35,40 5,45 25,35 60,75 80,65 50,10 80,15 90,5 Exemplo: pesquisar o ponto de coordenadas x = 80 e y = 65 Custo: O(altura) 28

Point Quadtree Pesquisa por Intervalo Quadrantes Nomenclatura: ALGORITMO PARA INTERVALO DE PONTOS: PESQUISAR UM x e y: coordenada do ponto do no to NO NE atual; xbaixo e ybaixo: do ponto da SO coord. SE esquerda inferior do intervalo. xalto e yalto: coord. do ponto da direita superior do intervalo. Vai ser retornado um vetor contendo os pontos dentro do intervalo Inicia-se a pela raiz; (1) Se (xbaixo <= x) e (x <= xalto) e (ybaixo <=y) e (y <= yalto), então adiciona-se o ponto atual ao vetor de retorno; Exemplo: (2) Se (xbaixo <= x) e (ybaixo pesquisar pontos <=noy), então volta-se procedimento (1) intervalo (1,30) ao e (40,50) para o quadrante SO; (3) Se (xbaixo <= x) e (y <= yalto), então volta-se ao procedimento (1) para o quadrante NO; (4) Se (x <= xalto) e (ybaixo <= x), então volta-se ao procedimento (1) para o quadrante SE; (5) Se (x <= xalto) e (y <= yalto), então volta-se ao procedimento (1) para o quadrante NE; y 100 (60,75) (ALTO) (40,50) (5,45) (35,40) (25,35) (1,30) (BAIXO) 0 (80,65) (50,10) (80,15) (90,5) 100 x 29

Quadtree Aplicações Fora aplicações na área de geoprocessamento, quadtrees podem ser utilizadas por exemplo: Fotografias e imagens: Algoritmos de compressão de imagens; Correção de deformações em fotos (ex.: olhos avermelhados em fotos); Medicina: ecografias, ajudando a identificar tumores pela cor na imagem; Videochamadas: ajuda na melhora da velocidade da transmissão do vídeo ao transmitir só o que foi alterado na imagem; Games: detectar, por exemplo, se um tiro de um personagem atingiu o adversário. 30

Quadtree Vantagens Muito útil em compactação de imagens; Pode ser utilizada no processo de rotacionar imagens; Tem estrutura mais enxuta e robusta que árvores binárias (tamanho menor, menos nodos a se percorrer para chegar ao que se procura); Inserções constantes não afetam a performance da quadtree (não precisa de rebalanceamento). 31

Quadtree Desvantagens Se a imagem tiver muitas cores diferentes, a árvore pode ficar tão complexa que a imagem compactada ficará maior que a original; Imagens complexas geram uso alto de CPU para geração de quadtrees; Somente imagens em duas dimensões (2D) podem ser indexadas com quadtrees (a R-Tree, por exemplo, trabalha com 4 dimensões); 32

Bancos de Dados Espaciais Principais SGBDs (Sistema Gerenciador de Bancos de Dados) do mercado e seu suporte a estruturas de dados espaciais: 33

ESTRUTURAS DE DADOS ESPACIAIS Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Algoritmos e Estrutura de Dados II 34