Sistemas de Informação Geográfica (SIG) e Bancos de Dados Geográficos Karine Reis Ferreira – [email protected] SER 330 – Introdução a Geoprocessamento (01/04/2013) Disponível em: http://wiki.dpi.inpe.br/doku.php?id=ser300:aulas-ser300-2013 Sumário Sistemas de Informação Geográfica (SIG) Representação Computacional de Dados Geográficos Evolução dos SIGs Sistemas Gerenciadores de Bancos de Dados (SGBD) Extensões Espaciais PostGIS e Oracle Spatial Simple Feature Specification (SFS) - OGC Sistema de Informação Geográfica (SIG) Geographic Information System (GIS) Sistema computacional capaz de armazenar, processar e manipular dados geográficos (Worboys and Duckham, 2004) Funcionalidades de um SIG (Rigaux et al, 2002): Entrada e validação de dados espaciais; Armazenamento e gerenciamento; Saída e apresentação visual; Transformação de dados espaciais; Interação com o usuário; Combinação de dados espaciais para criar novas representações do espaço geográfico; e Ferramentas para análise espacial. Sistema de Informação Geográfica (SIG) Users Presentation, Script Languages and Graphical User Interface Modeling Analysis Processing Storage and Retrieval Sources of Geographical Data Files Spatial Database Systems …. Spatial Data Server Exemplos de SIG SPRING Quantum GIS TerraView ArcGIS GRASS Exemplos de SIG SPRING Free Quantum GIS TerraView Free and Open Source Commercial ArcGIS GRASS Organização lógica de dados em um SIG Plano de informação (nível, camada, layer): Contém informações referentes a um único tipo de dados Área geográfica definida Ex: Divisão política Elevação Rios divisão política elevação rios Consultas Espaciais: Seleção Espacial Dados um conjunto de objetos espaciais D e um predicado de seleção espacial p sobre atributos espaciais dos objetos em D, determine todos os objetos em D cujas geometrias satisfazem p. Seleção por ponto Seleção por região Seleção por janela Fonte: Karine Ferreira (2006) Consultas Espaciais: Junção Espacial Dados dois conjuntos de objetos espaciais D1 e D2 e um predicado de seleção espacial determine todos os pares (d1, d2) D1 X D2 cujas geometrias satisfazem . Ex. Para cada rodovia selecione as escolas que estão a menos de 1000 metros. Fonte: Karine Ferreira (2006) Consultas Espaciais: Vizinhança Vizinho mais próximo: Definição: Localizar o(s) objeto(s) q mais próximo(s) de um dado objeto p Vizinho(s) mais próximo(s) a uma certa distância: Definição: Localizar o(s) objeto(s) q mais próximo(s) de um dado objeto p, a uma distância máxima de d unidades Operadores Espaciais Topológicos: Conjunto: Comprimento, Área, Perímetro Criação de Novas Geometrias: Interseção, União, Diferença e Diferença Simétrica Métricos: Relacionamentos espaciais entre objetos Centróide, Ponto sobre Superfície, Buffer, Convex Hull Operações Básicos sobre Geometrias: Extent, IsValid Predicados topológicos Freqüentemente utilizados nas consultas espaciais para analisar informações. Definem restrições baseadas no relacionamento espacial entre os objetos. Aparecem em consultas como: Cristalina e Paracatu são vizinhas? O trecho em vermelho da BR-040 cruza quais municípios? Fonte: Gilberto Ribeiro (2006) Predicados topológicos: Matriz 9-Interseções A B B B BA A A- disjoint B B BA A A- B B B BA A A- meet A ABB equal A B A A A- B B B overlap A B B BA A A- contains B A B B A A A- B B B covers A B B BA A A- inside B A B B BA A A- covered by Fonte: Adaptado de Egenhofer e Herring (1991) Predicados topológicos: Matriz 9-Interseções Perdizes (A) Araxá (B) B B BA A A- Fonte: Gilberto Ribeiro (2006) TOCA Processamento de Consultas Espaciais Por quais municípios brasileiros passa o trecho da BR-040 destacado? Métodos de Acesso Multidimensionais: Aproximação pelo Retângulo Envolvente Mínimo (REM ou Bounding Box ou MBR) Fonte: Gilberto Ribeiro (2006) Processamento de Consultas Espaciais Consulta Espacial Índice Espacial Objetos Espaciais Filtragem Candidatos Testes Geométricos Falsos Candidatos Resultado Refinamento Fonte: Gilberto Ribeiro (2006) Métodos de Acesso Multidimensionais Exemplos: k-d Trees - Árvore binária. - Decomposição do espaço ao longo das dimensões x e y: compara os valores da componente “x” nos níveis pares da árvore e da componente “y” nos níveis ímpares. Fonte: Gilberto Ribeiro (2006) Métodos de Acesso Multidimensionais Exemplos: Fixed-Grid - Grade regular que cobre todo o espaço. Fonte: Gilberto Ribeiro (2006) Métodos de Acesso Multidimensionais Exemplos: Quadtree - Árvore: cada “nó” ou “tronco” gera quatro “folhas” - Cada nó corresponde a uma região quadrada do espaço - Cada região é subdividida em quatro partes iguais sucessivamente até ter um ou nenhum objeto geográfico dentro de cada quadrante. Fonte: Gilberto Ribeiro (2006) Métodos de Acesso Multidimensionais Exemplos: R-Trees Árvore-R - Baseada no retângulo envolvente mínimo (MBR) dos objetos - Fonte: Gilberto Ribeiro (2006) Sistema de Informação Geográfica (SIG) Geographic Information System (GIS) Sistema computacional capaz de armazenar, processar e manipular dados geográficos (Worboys and Duckham, 2004) Funcionalidades de um SIG (Rigaux et al, 2002): Entrada e validação de dados espaciais; Armazenamento e gerenciamento; Saída e apresentação visual; Transformação de dados espaciais; Interação com o usuário; Combinação de dados espaciais para criar novas representações do espaço geográfico; e Ferramentas para análise espacial. Representação Computacional de Dados Geográficos Modelos Conceituais Geo-Objetos Geo-Campos Representação Computacional Tipos de Dados Vetoriais Tipos de Dados Matriciais célul a Geo-Objectos X Geo-Campos Geo-Objetos (entidades, feições, objects, features) – Coleção de entidades distintas e identificáveis, onde cada entidade é definida por uma fronteira fechada – Homogeneidade interna – Descrito por seus atributos (descreve o que está “dentro” dele) Nome = Brasil Pop = 159 milhões Nome = Argentina Pop = 34 milhões Nome = Chile Pop = 14 milhões 23 Geo-Objectos X Geo-Campos Geo-Campos (superfícies, distribuições, fields, coverage) – Representam uma superfície contínua, sobre a qual variam os fenômenos observados – Para cada ponto da região, temos um valor distinto IDH 24 Imagem satélite Altimetria Geologia Estruturas Vetoriais Representam as fronteiras de cada entidade geográfica: – – – 25 Ponto: par ordenado (x, y) Linha: conjunto de pontos conectados Área (polígono): região limitado por uma ou mais linhas fechadas Estruturas Vetoriais - Topologia Polígonos sem topologia ou polígonos fechados 26 Polígonos com topologia arco-nó-polígono Rede com topologia arco-nó Estruturas Vetoriais - Topologia 27 Possíveis problemas com estruturas vetoriais com polígonos fechados: fonte: John Elgy Estruturas Vetoriais 2,5 D 28 Associação de um valor numérico a cada localização do espaço 2D Não são tridimensionais, suporte espacial são localizações 2D Estruturas Vetoriais 2,5 D Três alternativas de estruturas vetoriais 2,5 D: – – – Conjunto de amostras Isolinhas (curva de nível) Malha Triangular ou TIN Curvas de nível 29 Triangulação Estruturas Matriciais Grade regular sobre a qual se associa, célula a célula, o elemento que está sendo representado: – Matriz de células: P(m,n) – – Índice espacial (i,j) para cada elemento Cada célula, um ou mais valores Extensão célula Resolução 30 Representação Vetorial X Matricial Mundo Real Representação Vetorial Representação Matricial 31 Representação Vetorial X Matricial Vetorial – – – – Matricial – – – 32 Objetos descontínuos Preserva relacionamentos topológicos Associar atributos a elementos gráficos Eficiência de armazenamento Processos contínuos Fenômenos variantes no espaço Adequado para simulação e modelagem Conversão Vetorial Matricial fonte: Mohamed Yagoub Representação Matricial fonte: Mohamed Yagoub Evolução dos SIGs (1) Gerenciamento e utilização dos dados geográficos Servidores WEB SIG Distribuído (multiusuários) SIG “DeskTop” Evolução dos SIGs (2) Armazenamento de dados geográficos SIG Arquitetura Dual SIG Arquitetura Integrada SGBD SGBD Dados alfanuméricos + Dados espaciais Dados Espaciais Dados Alfanuméricos Arquivos País Brasil Uruguai PIB 350 295 País Brasil Uruguai PIB 350 295 SIGs e Sistemas de Banco de Dados Os Sistemas de Informações Geográficas (SIG) estão evoluindo para utilizar Sistemas Gerenciadores de Bancos de Dados (SGBD) para armazenar e gerenciar dados geográficos: A responsabilidade de gerenciamento dos dados geográficos passa a ser dos SGBDs e não dos SIGs. SGBDs tradicionais são estendidos para suportar dados espaciais. Arquitetura Dual - Exemplos SPRING Dados alfanuméricos: SGBD relacional (DBase, Access, MySQL, Oracle) Dados espaciais: Arquivos com formato específico ArcView/ ARC/INFO (até versão 7) Dados alfanuméricos: SGBD relacional Dados espaciais: “shapefiles” SIG Dados Espaciais SGBD Dados Alfanuméricos Arquivos País Brasil Uruguai PIB 350 295 Arquitetura Dual SPRING: SGBD - modelo relacional Arquitetura Dual SPRING: Arquivos ASCII-SPRING Ancoras (.an1, .an2) Polígonos (.po1, .po2) Linhas (.lin) Pontos das linhas (.blk) Pontos 2D (.p2d) Pontos 3D (.p3d) Imagens (.grb, .thm) Luts (.lut) Grades (.grb) Cartas (.cht) Árvores rtree (.rtl, rtp, .rta) Árvores de indexação kdtree (.kdt) Arquitetura Dual SPRING Fonte: Karine Ferreira (2006) Arquitetura Dual ArcView (versão 3.0): Banco de Dados de São Paulo Arquivos: sampa.shp, sampa.dbf, sampa.shx Arquitetura Dual Problemas Falta de interoperabilidade Consultas são divididas em duas partes Dificuldade em manter a integridade entre os dados espaciais e atributos Não permite ambiente multiusuário: Compartilhamento de dados exige duplicação dos dados Atualização da informação requer nova cópia para todos os usuários Arquitetura Integrada SIG SGBD O que é um SGBD? Dados alfanuméricos + Dados espaciais País Brasil Uruguai PIB 350 295 Como ele armazena e gerencia dados geográficos? SGBD SGBD – Sistemas Gerenciadores de Bancos de Dados ou DBMS – Database Management Systems Bancos de Dados: é uma coleção de dados relacionados de um determinado domínio. Banco de Dados SGBD SGBD – Sistemas Gerenciadores de Bancos de Dados ou DBMS – Database Management Systems Sistema Gerenciador de Bancos de Dados (SGBD ou DBMS): é uma coleção de programas para criar, gerenciar e manipular um banco de dados. Exemplos: MySQL, Oracle, PostgreSQL, ... SGBD Banco de Dados SGBD SGBD – Sistemas Gerenciadores de Bancos de Dados ou DBMS – Database Management Systems Usuários de Aplicação Aplicações SGBD Banco de Dados DBA Programadores de Aplicação SGBD SGBD – Sistemas Gerenciadores de Bancos de Dados ou DBMS – Database Management Systems Usuários de Aplicação DBA Programadores de Aplicação Aplicações Sistema de Bancos de Dados: SGBD Banco de Dados Banco de Dados + SGBD + Programas de Aplicação SGBD Armazenar, consultar e atualizar o banco de dados de maneira eficiente Linguagem de definição de dados (SQL-DDL) Linguagem de consulta e manipulação de dados (SQL-DML) Manter a consistência e integridade dos dados Evitar redundância Controlar acessos concorrentes (multiusuários) Manter a segurança dos dados Recuperar falhas e fazer cópias de reserva (backup) Restringir e controlar os acessos dos usuários Restrições de segurança SQL - Structured Query Language Linguagem padrão (ISO) para sistemas de bancos de dados É uma linguagem declarativa de alto nível que permite: Consultar dados Definir e alterar dados Definir visões Especificar autorização e regras de segurança Definir restrições de integridade Criar índices Controlar transações ... SQL - Structured Query Language SQL-DDL SQL-DML CREATE DATABSE Teste CREATE TABLE Estados ( NOME VARCHAR(100) SIGLA VARCHAR(2) POP NUMBER(10,10)) SGBD Banco de Dados INSERT INTO Estados VALUES (“Minas Gerais”, “MG”, 9999) SELECT * FROM Estados WHERE SIGLA = “MG” SGBD Relacional Modelo de Dados Relacional Banco de dados é organizado em uma coleção de relações ou tabelas relacionadas entre si. Aluno MATRICULA NOME CURSOID 98765 João MAT 67765 José BIO 84562 Maria ENG 34256 Luis INFO 3452672 Ana MAT 34529 Luana MAT Curso CURSOID TITULO DURAÇÃO INFO Informática Indust. 4 BIO Biologia 4 ENG Engenharia Civil 5 MAT Licenciatura Mat. 4 SGBD Objeto-Relacional Modelo de Dados Objeto-Relacional: É uma extensão do Modelo Relacional com conceitos da modelagem Orientada por Objeto. Combina os benefícios dos dois modelos. Fornecem suporte para: Criar objetos complexos Executar consultas avançadas sobre dados complexos A linguagem de consulta OR é uma extensão da linguagem SQL para suportar o modelo de objetos 53 SGBD Objeto-Relacional Exemplo: Oracle 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); CREATE TABLE Estados ( SIGLA VARCHAR(2) POP NUMBER(10,10) GEOM SDO_GEOMETRY) Estados SIGLA POP MG 222222 RJ 333333 SP 444444 GEOM Extensão Espacial SGBD-OR são estendidos para suportar: Tipos de dados espaciais: polígono, ponto, linha, raster, etc; Operadores e funções utilizados na SQL para manipular dados espaciais (consultas e junção) Métodos eficientes de acesso aos dados espaciais Extensões existentes (seguem padrão OGC): Comerciais Oracle Spatial IBM DB2 Spatial Extender Livres PostGIS Extensão espacial para MySQL Open Geospatial Consortium – OGC Consórcio formado por empresas, universidades e agências governamentais. Promover o desenvolvimento de padrões que facilitem a interoperabilidade entre sistemas envolvendo informação geo-espacial. Os produtos do trabalho do OGC são apresentados sob a forma de especificações de interfaces e padrões de intercâmbio. Open Geospatial Consortium – OGC Algumas especificações OGC: SFS-SQL (Simple Feature Specification For SQL): especificações sobre o armazenamento e recuperação de dados espaciais vetoriais em sistemas de bancos de dados. GML (Geography Markup Language): intercâmbio de dados. OWS (OGC Web Services): especificações de serviços WEB WFS: Web Feature Service WMS: Web Map Server OGC: Panorama Geral ARMAZENAMENTO SERVIÇOS APLICAÇÃO SLD Web Map Service GML/Filter Web Feature Service Simple Feature Specification for SQL Web Coverage Service Outros Serviços SFS: Modelo Geométrico Fonte da Figura: OGC SFS: Modelo Geométrico Tipos de geometrias vetoriais - exemplos: Criar uma tabela para armazenar os municípios de São Paulo: CREATE TABLE municipiossp (cod INTEGER, nomemunicp VARCHAR(255) NULL, populacao REAL geometria POLYGON); Criar uma tabela para armazenar os rios de São Paulo: CREATE TABLE drenagemsp ( cod INTEGER, nomerio VARCHAR(255) NULL, geometria LINESTRING); SFS: Modelo Geométrico Dimensionalidade da figura geométrica: 0-dimensional: ponto 1-dimensional: linha 2-dimensional: polígono Obs: não diz respeito ao espaço onde a figura está inserida! Dimensionalidade do espaço onde está inserida a figura geométrica: 2D: plano cartesiano 3D: espaço tridimensional 2D+M: plano cartesiano com uma medida associada 3D+M: espaço tridimensional com uma medida associada SFS: Geometria Fonte da Figura: OGC SFS: Geometria Simples Fonte da Figura: OGC SFS: Geometria Simples Fonte da Figura: OGC SFS: Coleções Homogêneas MultiPoint Fonte da Figura: OGC SFS: Coleções Homogêneas Fonte da Figura: OGC SFS: Coleções Homogêneas Fonte da Figura: OGC SFS: Coleções Heterogêneas São permitidas coleções heterogêneas como instâncias da classe GeometryCollection SFS: Operadores Topológicos Operadores topológicos baseados na matriz de 9-Interseções estendida dimensionalmente (DE-9IM) : touches, equals, overlaps, disjoints, intersects, contains, insides, covers, coveredBy. SFS: Outros Operadores Outros operadores: distance, buffer, convexHull, intersection, union, difference, area, centroid e pointOnSurface .... SFS-SQL Spatial SQL - Exemplos: Encontre todos os municípios de SP que são vizinhos do município de São Paulo: SELECT d2.nomemunicp FROM municipiossp d1, municipiossp d2 WHERE TOUCHES(d1.geometria, d2.geometria) AND (d2.nomemunicp <> 'SAO PAULO') AND (d1.nomemunicp = 'SAO PAULO'); SFS-SQL Spatial SQL - Exemplos: Encontre todos os municípios de SP que estão num raio de 3Km do rio X: SELECT nomemunicp FROM municipiossp, drenagemsp WHERE INTERSECTS (BUFFER(drenagemsp.geometria, 3000), municipiossp.geometria) AND drenagemsp.nomerio = ‘X’; SFS-SQL Esquema de metadados Extensão espacial - PostGIS Extensão do SGBD PostgreSQL (SFS-SQL): Tipos de dados geométricos. Operadores espaciais: Através da biblioteca GEOS Métodos de Acesso Espacial: R-Tree sobre GiST GEOMETRY POINT GEOMETRYCOLLECTION LINESTRING MULTIPOINT POLYGON MULTILINESTRING MULTIPOLYGON Extensão espacial - Oracle Spatial Extensão do SGBD Oracle (SFS-SQL): Tipos de dados geométricos. Operadores e funções espaciais: Métodos de Acesso Espacial: R-Tree e QuadTree 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); Plano Geometria Elemento Fonte: Karine Ferreira (2006) Arquitetura Integrada- Exemplos Arquitetura Integrada TerraLib/TerraView ArcView + SDE Quantum GIS SIG SGBD Dados alfanuméricos + Dados espaciais País Brasil Uruguai PIB 350 295 TerraLib É uma biblioteca de software, livre e de código fonte aberto, que oferece suporte para a construção de aplicativos geográficos baseados na arquitetura integrada. Desenvolvida em C++ Jfddfjh gfsdfgdfssf Jfddfjh gfsdfgdfssf Jfddfjh gfsdfgdfssf fsdf fsdfsd fsdf fsdfsd fsdf fsdfsd sdfsdf sdfsdf sdfsdf Suporta: SGBD relacional Access, Oracle, Postgres, MySQL, SQLServer TerraLib SGBD OR Oracle Spatial, PostGIS SGBD TerraLib Livre e de código fonte aberto GNU Library License (or Lesser General Public License - LGPL) Parceiros de desenvolvimento TerraLib Interface com SGBDs Interface com Database ADO Driver MySQL Driver SGBDs Oracle Driver PostgreSQL Oracle Spatial Access MySql SQL Server Oracle PostGIS PostgreSQL Oracle Spatial PostGIS TerraLib - Tabelas de Dados Vetoriais SGBD sem e com extensão espacial TerraLib Driver DBMS Without spatial extent Driver Oracle Spatial Oracle Spatial Fonte: Karine Ferreira (2006) TerraLib - Drivers Diferentes implementações dos métodos do Database Ex.: LocatePolygon Qual o polígono que contém o ponto P? P TerraLib - Drivers LocatePolygon: SGBD sem extensão espacial TerraLib Driver SELECT WHERE AND AND AND * FROM polygons p p.lower_x <= P.x() p.upper_x >= P.x() p.lower_y <= P.y() p.upper_y >= P.y() DBMS Without spatial extent Fonte: Karine Ferreira (2006) TerraLib - Drivers LocatePolygon: SGBD sem extensão espacial TerraLib functions TerraLib Driver result SELECT WHERE AND AND AND * FROM polygons p p.lower_x <= P.x() p.upper_x >= P.x() p.lower_y <= P.y() p.upper_y >= P.y() DBMS Without spatial extent Fonte: Karine Ferreira (2006) TerraLib - Drivers LocatePolygon: SGBD com extensão espacial TerraLib Driver Oracle Spatial SELECT * FROM polygons WHERE MDSYS.SDO_RELATE(spatial_data, MDSYS.SDO_GEOMETRY(2001, NULL, MDSYS.SDO_POINT_TYPE(P.x(),P.y(), NULL), NULL, NULL), 'mask=contains querytype = window') = 'TRUE'"; Oracle Spatial result Fonte: Karine Ferreira (2006) TerraView Um Aplicativo Geográfico que utiliza a TerraLib Jfddfjh gfsdfgdfssf Jfddfjh gfsdfgdfssf Jfddfjh gfsdfgdfssf fsdf fsdfsd fsdf fsdfsd fsdf fsdfsd sdfsdf sdfsdf sdfsdf TerraLib SGBDs TerraView É um aplicativo construído sobre a biblioteca TerraLib: Exemplifica a utilização da biblioteca TerraLib Funcionalidades: Visualização e manipulação de dados vetoriais (pontos, linhas e polígonos) e matriciais (grades e imagens) Consultas espaciais e por atributos Agrupamentos e geração de legendas Gráficos (histogramas) e pie bar Análise espacial (Índice de Moran, Mapa de Kernel, etc) Operações geográficas (Buffer, Interseção, Diferença, etc) TerraView ArcGIS e ArcSDE ArcSDE Interface entre os softwares do ArcGIS e os SGBDs Responsável pelo armazenamento, gerenciamento e recuperação dos dados geográficos nos SGBDs: IBM DB2 com extensão espacial IBM Informix com extensão espacial Microsoft SQL Server Oracle Oracle com extensão espacial ou Locator ArcSDE Dados vetoriais são armazenados em tipos de dados espaciais (SGBD com extensão espacial) ou em BLOBs (SGBD sem extensão) Dados matriciais são armazenados em BLOBs em todos os SGBDs Dados Vetoriais Referências Worboys, M. and Duckham, M. GIS: A computing Perpective, Second Edition, 2004 Rigaux, P.; Michael, S. and Voisard, A. Spatial Databases: with Application to GIS. 2002