UD 2 DADOS EM AMBIENTE SIG Conteúdo • • • • Entrada de Dados; Edição de Dados; Saída de Dados; Manipulação de Dados; Entrada de Dados • Fontes de dados – Geometria – – – – GPS; Sensoriamento remoto (fotos e imagens); Topografia; Digitalização (vetorial e matricial); • Fontes de dados – Atributos – – – – – Reambulação; Interpretação visual; Classificação supervisionada; Propriedades geométricas; Entrada manual; • Armazenamento Entrada de Dados Geometria – GPS • Protocolos de transferência de arquivos; • Método de aquisição: estático, cinemático, RTK, etc.; • Processamento: DGPS, ajustamento de redes, etc.; • Perda de sinal; • Estrutura de dados adicional; • Equipamentos empregados: portáteis, geodésicos, etc. Entrada de Dados Geometria – Sensoriamento remoto • Resolução: espacial, radiométrica, temporal e espectral; • Cobertura de nuvens; • Balanço da imagem: contraste, brilho, saturação, etc.; • Dados de registro: pontos de controle (GCP), modelos de retificação e reamostragem; • Composição falsa-cor; Entrada de Dados Geometria – Topografia • Normas Técnicas NBR 13133; • Especificações de Levantamento Cadastral; • Cálculo de coordenadas: preliminar, compensações e ajustamento; • Estruturação das feições: CAD X BDG; • Suporte geodésico na integração de projetos; • Integração com métodos de levantamento com GPS; Entrada de Dados Geometria – Digitalização • Qualidade do documento analógico original; • Atenção ao equipamento; – Resolução; – Calibração; – Varredura; • Eliminação de ruídos; • Extração de geometria em formato vetorial; – Automatizada; – Semi-automatizada; – Manual; • Consistência topológica; Entrada de Dados Atributos – Bancos de dados • Operações CRUD: CREATE, Read, Update e Delete; • Integridade; • Controle de Acesso; • Compatibilidade de domínios; • Preenchimento posterior à aquisição da geometria; Entrada de Dados Armazenamento • Arquitetura Dual: dados espaciais relacionados a dados alfanuméricos, mas armazenados separadamente; • Arquitetura Integrada: SGBD armazena simultaneamente dados espaciais e dados alfanuméricos; • Necessidade de operações espaciais; – Indexação bidimensional: ordenação de ordenadas, células de Morton, tiling, etc.; – Descritores do objeto: retângulo envolvente, área pré-computada, nível de cinza médio, etc. – Adaptação a algoritmos de Computação Gráfica: armazenamento de vértices de polígonos em sentido anti-horário, etc. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais • para matrizes mais simples: armazenar, nas páginas físicas em memória secundária, uma linha após a outra (ou uma coluna após a outra). Este método é adequado para processar operações que exigem visitar os elementos da matriz linha a linha, ou sem nenhuma ordem preferencial como, por exemplo, no cálculo de um histograma. Ele não é apropriado, no entanto, quando se deseja recuperar os elementos da matriz cobertos por uma janela definida por um intervalo de índices em cada dimensão, por exemplo. Entrada de Dados Armazenamento e Indexação de Representações Matriciais É possível minimizar este problema através de um método de armazenamento que divida cada linha (ou coluna) em segmentos de comprimento fixo, submúltiplo do tamanho da linha, e que permita transferir tais segmentos da memória secundária para a memória principal e vice-versa. Este método seria complementado com um mecanismo que permitisse trazer concomitantemente para memória principal vários segmentos de linha. Outra estratégia consiste em dividir cada matriz em pequenos blocos, digamos de dimensão 256 X 256, armazenados seqüencialmente em memória secundária segundo alguma ordem, digamos na direção das linhas. Este método permite otimizar o processamento de operações que não trabalham linha a linha (ou coluna a coluna). Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Pontos: par ordenado (x, y) de coordenadas espaciais Grade: particiona a região de interesse em células através de retas paralelas aos eixos e espaçadas irregularmente. Um arquivo em grade consiste de duas escalas e um diretório. A escala associada ao eixo X é uma lista contendo as abcissas em que as retas paralelas ao eixo Y cruzam o eixo X (e similarmente para a outra escala). O diretório é uma matriz bidimensional, com as mesmas dimensões da grade, tal que cada elemento do diretório corresponde a uma célula e aponta para a página física (ou bucket) que contém todas as coordenadas dos pontos localizados na célula. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Pontos Árvore kd: é uma árvore de busca binária tal que os nós interiores em cada nível contêm valores referentes a um único eixo (X ou Y, alternadamente) e as folhas apontam para páginas físicas. O processo de subdivisão pára quando a célula contém um conjunto de pontos que possa ser armazenado em uma única página física. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Retângulos Transformação de retângulos em pontos: consiste em transformar um retângulo de duas dimensões em uma quádrupla (um ponto de 4 dimensões) e utilizar um método de armazenamento e indexação espacial de quádruplas, como arquivos em grade e árvores kd quadri-dimensionais. Decomposição do espaço com superposição: abandona a idéia de decompor o espaço em regiões que não se superpõem e utiliza a noção de retângulo envolvente. O retângulo envolvente mínimo (r.e.m.) de um conjunto de objetos no R2 é o menor retângulo com lados paralelos aos eixos X e Y que contém todos os objetos no conjunto. Sugere-se o uso de árvores R, onde todos os ramos possuem o mesmo comprimento, ou seja, todas as folhas estão no mesmo nível, como numa árvore de busca balanceada. Superposição Espaço não representado Balanceamento da árvore Estrutura dinâmica altera-se a cada inserção ou remoção de retângulo Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Retângulos •Retalhamento de retângulos: mantém a idéia de decompor o espaço em regiões que não se superpõem. Porém, cada retângulo ao ser inserido, é retalhado em um conjunto mínimo de retângulos tal que: –os retângulos não se superpõem; –a união dos retângulos reconstrói o retângulo original; –cada retângulo intercepta exatamente uma das regiões em que se decompõe o espaço. Resulta na replicação de objetos na estrutura, pois a inserção de um único retângulo acarreta a inserção de uma entrada para cada região que intercepta. As árvores R+ Variante de árvores R em que, ao se inserir uma nova entrada, se o seu retângulo intercepta os retângulos de dois ou mais nós, o retângulo é recortado como anteriormente descrito e cada um dos novos retângulos é inserido nos nós apropriados Entrada de Dados Armazenamento e Indexação de Representações Vetoriais •Linhas Poligonais Sejam v0, v1,... vn n pontos no plano. Sejam s0 = v0v1, s1 = v1v2,... sn-2 = vn-2vn-1 uma seqüência de n – 1 segmentos, conectando estes pontos. Estes segmentos formam uma poligonal L se, e somente se: •a interseção de segmentos consecutivos é apenas o ponto extremo compartilhado por eles (i.e., si ∩ si+1 = vi+1) •segmentos não consecutivos não se interceptam (i.e., si ∩ sj = ∅ para todo i, j tais que j ≠ i + 1), e •v0 ≠ vn-1, ou seja, a poligonal não é fechada. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Linhas Poligonais •decomposição do espaço em regiões que não se superpõem: cada linha é quebrada em um conjunto mínimo de novas linhas tal que: –as novas linhas não se superpõem; –a união das novas linhas resulta na linha original; –cada nova linha intercepta exatamente uma das regiões em que se decompõe o espaço. Este enfoque permite adaptar para linhas qualquer método desenvolvido para armazenar e acessar pontos. Porém, para cada linha, podem ser criadas múltiplas entradas na estrutura de dados adotada, com as mesmas conseqüências para os processos de inserção e remoção, e desperdício de espaço de armazenamento, já observados para retângulos. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Linhas Poligonais •Aproximar pelo retângulo envolvente mínimo: Cada linha é armazenada em uma árvore V separada e aproximada pelo seu retângulo envolvente mínimo; o conjunto destes retângulos é então armazenado em uma árvore R, cujas folhas apontam para as raízes das árvores V. A estrutura resultante, composta desta árvore R e das várias árvores V, forma então uma árvore VR. Este enfoque não é apropriado, para o caso de linhas muito longas ou, em geral, quando o retângulo envolvente mínimo não resulta em uma boa aproximação para as linhas. Nesses casos, a linha pode ser quebrada em fragmentos consecutivos que serão aproximados pelo seu retângulo envolvente mínimo. V1 V2 V3 V4 V5 V6 V7 V8 v1 v2 v3 v4 v4 v5 v6 v7 v7 v8 v9 v10 V17 V18 v10 v11 v12 v13 v37 v38 v39 v40 V9 V10 V11 V12 v13 v14 v15 v16 v16 v17 v18 v19 v19 v20 v21 v22 v22 v23 v24 v25 V13 V14 V15 V16 v25 v26 v27 v28 v28 v29 v30 v31 v31 v32 v33 v34 v34 v35 v36 v37 v40 v41 V42 Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Polígonos: região do plano limitada por uma linha poligonal fechada. •aproximações para a geometria dos polígonos: O retângulo envolvente mínimo (r.e.m.) de um polígono oferece uma aproximação bastante simples e cômoda. •decomposição dos polígonos em polígonos simples: significa dividí-lo em várias componentes simples - triângulos, trapézios, e outros - de tal forma que, durante o processamento de uma consulta espacial, apenas um pequeno número destas componentes precise ser examinado. Entrada de Dados Armazenamento e Indexação de Representações Vetoriais Polígonos: região do plano limitada por uma linha poligonal fechada. •método de decomposição por grades: o espaço dividido hierarquicamente em células regulares. As células geradas a cada nível podem ser colocadas em z-ordem através do processo de intercalação de bits, proposto originalmente por Morton. Em cada quadrante, as células são conectadas em z-ordem e depois os grupos de células de cada um dos quatro quadrantes são novamente conectados em z-ordem. Cada célula em cada nível da hierarquia possui um endereço dado por uma cadeia de bits cujo comprimento corresponde ao nível ao qual a célula pertence. Edição de Dados Geometria – Vetores • Recursos de desenho; • Modelagem de vértices; • Álgebra de feições: – Edge matching; – Criação de ilhas; – Particionamento; • Convenções de representação; • Generalização; – Geometria conforme escala: ponto, linha, polígono; – Densidade de vértices; – Critérios de eliminação de geometrias; Edição de Dados Geometria – Raster • Filtros: passa-alta, passa-baixa, etc. • Classificação; • Alteração de histograma: balanço de cores; • Generalização: – Criação de pirâmides; – Compressão de arquivos; • Operações algébricas com imagens; Saída de Dados Apresentação • Gráfico – Mapas; – Gráficos; – Cartograma; • Tabular – Tabela; – Texto: linguagem natural ou baseada em XML; Roraima is a unit of the federation that has a total of 395.725 people for the year 2007 and aggregate variable “resident population”. Roraima is located in the North Region, with an area of 22,377,870 square kilometers. Fonte: http://www.inf.puc-rio.br/~casanova/Publications/Papers/2010-Papers/2010-secogis-2.pdf http://www.geoservicos.inde.gov.br/geoserver/IBGE/ows?service=WFS&version=1.0.0& request=GetFeature&typeName=IBGE:Ferrovias&maxFeatures=50 <gml:featureMember> <IBGE:Ferrovias fid="Ferrovias.2"> <IBGE:ID>1517</IBGE:ID> <IBGE:EMPREENDIM>Ferroanel de São Paulo - SP</IBGE:EMPREENDIM> <IBGE:SUBEIXO>Transportes</IBGE:SUBEIXO> <IBGE:TIPO>Ferrovia</IBGE:TIPO> <IBGE:VALOR_2011>4000000,00</IBGE:VALOR_2011> <IBGE:INV_11_14>4000000.0</IBGE:INV_11_14> <IBGE:INV_POS_14>0.0</IBGE:INV_POS_14> <IBGE:INVEST_T>0.0</IBGE:INVEST_T> <IBGE:INVESTIM_2>R$ 4.000.000,00</IBGE:INVESTIM_2> <IBGE:UF>SP</IBGE:UF> <IBGE:MUNICIPIOS>São Paulo</IBGE:MUNICIPIOS> <IBGE:EXECUTORES>ANTT</IBGE:EXECUTORES> <IBGE:ORGAO>Ministério dos Transportes</IBGE:ORGAO> <IBGE:ESTAGIO>Em execução</IBGE:ESTAGIO> <IBGE:DATA_CICLO>30/04/2012</IBGE:DATA_CICLO> <IBGE:DATA_CONCL>31/07/2012</IBGE:DATA_CONCL> <IBGE:EMBLEMATIC>Não</IBGE:EMBLEMATIC> <IBGE:LAT1>-23,5171</IBGE:LAT1> <IBGE:LON1>-46,9409</IBGE:LON1> <IBGE:GEOCODIGO>3550308</IBGE:GEOCODIGO> <IBGE:the_geom> <gml:Point srsName="EPSG:4674"> <gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">-46.9409,-23.5171</gml:coordinates> </gml:Point> </IBGE:the_geom> </IBGE:Ferrovias> </gml:featureMember> http://folhaspdados.blogfolha.uol.com.br/2012/10/29/cartograma-os-partidos-ganhadores-de-acordo-com-o-tamanho-do-eleitorado/ Saída de Dados Interface • Analógica – – – – Papel: tamanho, textura, gramatura, etc.; Equipamentos: impressora, plotter, off-set, etc.; Hologramas; Maquetes (impressora 3D). • Digital – – – – – Imagem estática: navegador web, CAD, PDF reader, etc. Animação: fly-through, sequência de imagens, etc. Documentos: texto, planilhas, hipertexto, etc. Dispositivo: celular, PC, GPS veicular, etc. Realidade aumentada: http://popcode.info/demos.html; Manipulação de Dados Operações sobre bancos de dados Operações CRUD: Create, READ, UPDATE e DELETE; • Leitura – Linguagens de consulta; – Consulta por atributos; – Consulta por geometria (topologia); • Atualização – Geometria (edição); – Atributos: sem histórico de valores; • Eliminação: feição (geometria e respectivos atributos) deixa de pertencer ao banco, Manipulação de Dados Modelos matemáticos • Interpolação; – Polinomial; – Spline; – Inverso da distância. • Georreferenciamento; • Reamostragem; • Extrapolação; – Padrões de comportamento bem definidos; – Consistência de domínio; – Agrega incerteza; Manipulação de Dados Cálculos • Comprimento de linhas; • Extensão de áreas; • Geração de redes triangulares; •Geração de isolinhas; • Geração de superfícies; • Mapas de declividades; • Mapas de visibilidade; • Operações sobre redes; etc. Manipulação de Dados Transações em Bancos de Dados • Uma transação é uma seqüência de operações que o SGBD deve processar até o fim; • O sistema deve processar as operações sem interferência de outras transações; • Operações começam em um estado consistente do banco de dados terminam em um estado também consistente; • Os dados podem apresentar-se em um dos estados: – Pronto (committed); – em trabalho (uncommitted); ou – obsoleto (obsolete). Manipulação de Dados Transações em Bancos de Dados • A operação create cria um dado d’ completamente novo em um banco B’; • A operação create-version cria uma nova versão d’ de um dado d pronto ou em trabalho no mesmo banco de dados B’ que contém d; • A operação update permite atualizar um dado em trabalho, sem alterar o seu estado; •A operação commit transforma em pronto um dado em trabalho. • A operação delete remove um dado d de um banco B. – Se d for um dado em trabalho, ele é efetivamente destruído; – Se d for um dado pronto, ele é tornado obsoleto. – Ao remover um banco B, todos os dados e bancos subordinados a B serão removidos, recursivamente. Manipulação de Dados Consultas em Bancos de Dados • Operações de atualização submetidas ao banco de dados geográfico: Inserção, Remoção e Modificação; • Consultas espaciais – seleção convencional: dado um conjunto de dados D e definida uma restrição ρ sobre atributos convencionais dos dados em D, determinar todos os dados em D que satisfazem ρ. – seleção pontual: dado um ponto P e um conjunto de dados D, determinar todos os dados em D que contêm P. – seleção por região: dada uma região R e um conjunto de dados D, determinar todos os dados em D que interceptam ou estão contidos em R. – junção espacial: dados dois conjuntos de dados, D e D’, e definido um relacionamento espacial θ entre pares de dados (por exemplo, estar contido em), determine todos os pares de dados (d; d’) D D’ tais que d e d’ satisfazem θ. Manipulação de Dados Processamento da componente espacial da consulta 1. 2. 3. Filtragem: São usados os índices para resolver a parte espacial para indicar, dos conjuntos de dados armazenados no banco de dados, aqueles que certamente não satisfazem à qualificação da consulta; Refinamento: as geometrias exatas das componentes espaciais dos dados (preferencialmente, apenas a parte necessária à execução dos operadores) são trazidas para memória principal e sobre as tais são então executados os operadores espaciais especificados na qualificação; Pós-processamento: os dados que atendem à qualificação da consulta são passados para as camadas superiores da arquitetura onde sofrerão processamento posterior ou serão visualizados.