Introdução a Estruturas de Dados Espaciais - QuadTree Ricardo C. Câmara de Meira Santos Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Ciência da Computação DECOM Algoritmos e Estrutura de Dados II - BCC203
Dados Escalares x Dados Espaciais Dados Escalares Na matemática, na informática, e na física uma grandeza escalar é definida quando precisamos somente de um valor numérico associado a uma unidade de medida para caracterizar uma grandeza física. Este termo é utilizado em contraste com entidades compostas como por exemplo vector e matriz. Exemplos: Comprimento, massa e tempo. Em um exemplo, se uma corda tem comprimento de 2 metros, já é o suficiente para termos ideia completa da medida de sua grandeza física comprimento. Ou seja, o comprimento da corda ficou completamente caracterizado.
Dados Escalares Dados Escalares x Dados Espaciais 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?
Dados Escalares x Dados Espaciais Dados Espaciais Os dados espaciais possuem informações sobre elementos em um espaço. Este espaço pode ser tanto a representação de um local físico ou um espaço criado digitalmente. Os dados espaciais podem representar locais de pontos no espaço, distâncias e formas geométricas. Exemplo: Localização de uma casa, quarteirões, bairros, cidades países ou até continentes.
Dados Espaciais Dados Escalares x Dados Espaciais 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?
Dados Escalares x Dados Espaciais Dados Espaciais Também podemos responder perguntas sobre: Localização: Existe uma cidade chamada São Paulo? Existe uma cidade em 39o 29 30 S, 65o 50 20 W? Vizinhança: Qual a cidade com nome subsequente a São Paulo? Qual a cidade mais próxima de São Paulo? Extensão: Qual o perímetro de São Paulo? Qual a área de São Paulo?
Dados Espaciais Exemplos: Locais Dados Escalares x Dados Espaciais
Dados Espaciais Exemplos: Distância Dados Escalares x Dados Espaciais
Dados Escalares x Dados Espaciais Dados Espaciais Exemplos: Formas geométricas 2D.
Dados Escalares x Dados Espaciais Dados Espaciais Exemplos: Formas geométricas 3D.
Dados Escalares x Dados Espaciais Dados Espaciais Geralmente definidos pelas variáveis: x, y e z. Possuem localização no espaço. Estão relacionados a determinados sistemas de coordenadas. Em contraste aos dados escalares não são representados por somente um valor numérico.
Banco de Dados Conceito Um banco de dados é uma coleção de dados relacionados, projetados para uma finalidade específica. São coleções organizadas de dados que se relacionam de forma a criar algum sentido (Informação) e dar mais eficiência durante uma pesquisa ou estudo.
Banco 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);
Banco de Dados Bancos de Dados Geográficos Para gerência desses dados, utiliza-se softwares chamados Sistemas Gerenciadores de Banco de Dados (SGBDs). São exemplos de programas desse tipo: PostgreSQL, MySQL, Access e Oracle. Requisito fundamental hoje nos SGBDs: Manipulação dos dados espaciais. Bancos de Dados Geográficos (BDG), também chamados de Bancos de Dados Espaciais (BDE), possuem o diferencial de suportar dados geométricos em suas tabelas. Possibilita a realização de cálculos como áreas, distâncias e centróides, além de realizar a geração de buffers (zona de influência) e outras operações entre as geometrias.
Banco de Dados Bancos de Dados Geográficos Aplicações Sistema de Informação Geográfica (Cartografia); CAD (Computer-Aided Design); Banco temporal, onde o tempo pode ser considerado uma dimensão a mais; Fazendo processamentos como: Medir distâncias, perıḿetro, áreas; Calcular a conectividade e o caminho mais curto entre dois pontos; Analisar pontos e linhas dentro de um polıǵono; Realizar buscar por região (intervalo);
Representação de Dados Espaciais Como dados espaciais são representados? Há dois tipos principais de representação, vetorial e matricial.
Representação de Dados Espaciais Representação de dados vetorial Pontos: árvores, postes, restaurantes, etc. Linhas: rios, avenidas, ferrovias, etc. Polígonos: terrenos, cidades, estados, florestas, etc.
Representação de Dados Espaciais Representação de dados matricial (raster) Espaço dividido em células. Cada célula possui sua informação independente. Observe que a figura da direita tem melhor resolução espacial.
Vetorial x Matricial Representação de Dados Espaciais
Estruturas de dados espaciais Estruturas conhecidas Tabela Hash Não atende às consultas de intervalos.
Estruturas de dados espaciais Estruturas conhecidas Árvores Binárias e n-árias. Trata apenas uma dimensão, ou seja uma outra representação de vetor.
Estruturas de dados espaciais Consulta Linear de Intervalo Considere o seguinte conjuntos de dados espaciais.
Estruturas de dados espaciais Consulta Linear de Intervalo Quais os dados do no intervalo (20, 20) e (40, 50)?
Estruturas de dados espaciais Consulta Linear de Intervalo Quais os dados do no intervalo (20, 20) e (40, 50)?
Estruturas de dados espaciais Consulta Linear de Intervalo Essa abordagem convencional utiliza apenas um dos dois índices por vez. Para consultas por intervalos, precisaríamos de índices que conseguissem manter as tuplas que estão próximas no espaço, próximas também no índice. Com isso conseguiríamos realizar consultas comuns como encontre os restaurantes que estão a no máximo 20km desse ponto sem varrer toda a base de dados.
QuadTree Técnica bastante simples. Estruturas de dados espaciais Extensão multidimensional da árvore de busca binária. O índice é representado como uma árvore quaternária. O espaço de busca é decomposto em quadrantes. Nas quais são nomeados por: Noroeste, Nordeste, Sudeste e Sudoeste. Pontos são armazenados em nós internos. Para n pontos, espera-se uma altura de O(log n). Acelera o acesso a dados num plano 2 dimensões.
QuadTree Estruturas de dados espaciais
Estruturas de dados espaciais QuadTree Divide o plano em vários pedaços, chamados de quadrantes. Estrutura básica em C.
QuadTree Inserção. Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Exemplo prático Estruturas de dados espaciais
QuadTree Pesquisa por ponto Estruturas de dados espaciais
QuadTree Pesquisa por intervalo Estruturas de dados espaciais
Outras estruturas OctaTree Estruturas de dados espaciais
Outras estruturas OctaTree Estruturas de dados espaciais
Outras estruturas Grid K-d-Tree R-Tree Estruturas de dados espaciais Serão apresentadas nos seminários.
Dúvidas e sugestões: ricardocamara03@gmail.com Perguntas