interface para consultas espaciais em banco de dados geográficos orientadores joão argemiro...

28
Interface para Consultas Interface para Consultas Espaciais em Banco Espaciais em Banco de Dados Geográficos de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Upload: internet

Post on 22-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Interface para Consultas Interface para Consultas Espaciais em Banco Espaciais em Banco

de Dados Geográficosde Dados Geográficos

Orientadores

João Argemiro Carvalho Paiva

Gilberto Câmara

Karine Reis Ferreira

Page 2: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Estrutura da apresentaçãoEstrutura da apresentação

• Introdução• Sistemas de Informações Geográficos - SIGs• Sistemas de Banco de Dados Geográficos

– Oracle Spatial

• TerraLib• OpenGIS• A Interface• Considerações finais

Page 3: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

IntroduçãoIntrodução

• ObjetivoDesenvolver uma interface de programação genérica (API) para consultas espaciais em Banco de Dados Geográficos para a biblioteca TerraLib

• Um nível maior de abstração para os usuários da TerraLib

• Fornecer consultas a dados vetoriais e a dados matriciais

• Suportar diferentes SGBDs

• Explorar o máximo os recursos de extensões espaciais

Page 4: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

IntroduçãoIntrodução

• Motivação

Consultas Espaciais Suporte básico para a construção de SIGs

Contribuir para o desenvolvimento da

TerraLib

Incentivo a SIGs de código fonte aberto e gratuito no mercado

Page 5: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Informações GeográficasSistemas de Informações Geográficas

• Evolução das arquiteturas de SIGs– Dual

– Integrada • SGBD Relacional• SGBD Objeto-Relacional

Arquivos Proprietários

SGBD

Sistema de Informação Geográfica

Dados espaciais Dados alfanuméricos

• Falta de Interoperabilidade

• Consultas mais lentas

• Dificuldade em manter a integridade entre dados espaciais e alfanuméricos

Page 6: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Informações GeográficasSistemas de Informações Geográficas

• Evolução das arquiteturas de SIGs– Dual

– Integrada • SGBD Relacional• SGBD Objeto-Relacional

• Não é capaz de capturar a semântica do dado espacial

• Limitações da SQL

• Métodos de acesso espacial e otimizador de consultas implementados pelo SIG

SGBD relacional

Sistema de Informação Geográfica

Dados espaciais Dados alfanuméricos

Page 7: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Informações GeográficasSistemas de Informações Geográficas

• Evolução das arquiteturas de SIGs– Dual

– Integrada • SGBD Relacional• SGBD Objeto-Relacional

SGBD objeto-relacional

Sistema de Informação Geográfica

Dados espaciais Dados alfanuméricos

• Tipos de dados espaciais

• Operadores e funções para consultas e junções espaciais

• Indexação espacial e otimização de consultas

Page 8: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Banco de Dados GeográficosSistemas de Banco de Dados Geográficos

• SGBD Objeto-Relacional são estendidos para suportar:

– Tipos de dados espaciais, como ponto, linha, etc;

– Operadores e funções espaciais + SQL: manipulação desses dados (junção e consultas);

– Métodos eficientes de acesso aos dados espaciaisl

• Extensões existentes:– Oracle Spatial

– IBM DB2 Spatial Extender

– Informix Spatial Datablade

– PostGIS

Page 9: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Banco de Dados GeográficosSistemas de Banco de Dados Geográficos

• Oracle Spatial: extensão espacial do SGBD Oracle

– Tipos de dados espaciais

– Funções e operadores espaciais

– Métodos de indexação espacial

SDO_GTYPE NUMBERSDO_SRID NUMBERSDO_POINT SDO_POINT_TYPESDO_ELEM_INFO SDO_ELEM_INFO_ARRAYSDO_ORDINATES SDO_ORDINATE_ARRAY

SDO_GEOMETRY Plano

Geometria

ElementoCREATE TABLE ESTADOS (estado_id NUMBER,nome VARCHAR2(100)geometria

MDSYS.SDO_GEOMETRY);

Page 10: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Banco de Dados GeográficosSistemas de Banco de Dados Geográficos

• Oracle Spatial: extensão espacial do SGBD Oracle

– Tipos de dados espaciais

– Funções e operadores espaciais

– Métodos de indexação espacial

SDO_RELATE

SDO_DISTANCE

SDO_INTERSECTION

SDO_DIFFERENCE

SDO_UNION

SDO_XOR

SDO_BUFFER

SDO_CONVEXHULL

SELECT ES.estado_idFROM Estado ES, Rios RIWHERE RI.gid = 234 AND

SDO_RELATE(ES.geometria, RI.geometria,

‘mask=CONTAINS querytype=WINDOW’) = ’TRUE’;

SELECT SDO_GEOM.SDO_INTERSECTION (ES.geometria, FL.geometria, 0.005)FROM Estado ES, Floresta FLWHERE ES.nome = 'Pará' AND FL.nome = 'Amazonia';

Operadores e Funções baseados na matriz de 9-Interseções

Page 11: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Sistemas de Banco de Dados GeográficosSistemas de Banco de Dados Geográficos

• Oracle Spatial: extensão espacial do SGBD Oracle

– Tipos de dados espaciais

– Funções e operadores espaciais

– Métodos de indexação espacial

Quad-Tree R-Tree

2

3

4

5

6

7

8

9

10

11

1312

114

a

b

c

d

R

2

3

4

5

6

7

8

9

10

11

1312

114

a

b

cd R

X

Y

ZT

Page 12: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

TerraLibTerraLib

• Biblioteca de classes • Suporte a SIGs de arquitetura integrada• Paradigmas:

– Orientação a Objetos

– Programação Genérica

– Design Patterns

• Composta por:– Kernel

– Drivers

– Functions

BD

TerraLib

Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdfJfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf

Jfddfjh gfsdfgdfssf fsdf fsdfsd sdfsdf

Page 13: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

• Execução de consultas SQL e manipulação dos resultados

• Inserção, atualização e recuperação de dados alfanuméricos e geográficos

• Conexão

• Execução de comandos SQL: DDL e DML

• Criação do modelo TerraLib

Interface com SGBDs : Drivers

TePostgreSQLTeOracle

TeDatabase

TerraLibTerraLib

TeOraclePortal TePostgreSQLPortal

TeDatabasePortal

Page 14: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

OpenGISOpenGIS

• Arquitetura padrão para SIGs;• Operadores espaciais (relações topológicas)

– Modelo da Matriz de 9-Interseções Estendido Dimensionalmente (DE-9IM)

Equals Overlaps Touches Within Crosses Disjoint Intersects Contains Relate.

• Funções para testar relações de distância e que retornam novas geometrias

Distance Intersection Difference Union SymDifference ConvexHull Buffer

Page 15: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

• Consultas espaciais– métodos da classe TeDatabase

– genéricas para todos os SGBDs

– consultas são computadas pela TerraLib

• Consultas espaciais a dados vetoriais– Baseadas nas especificações do OpenGIS

– Re-implementadas nos drivers de SGBDs que possuem extensões espaciais

• exploração de seus recursos• operadores e funções espaciais com SQL• consultas são computadas pelo SGBD

Page 16: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

– Operador Espacial Contains

bool Contains(const string& table1, const string& column1, const string& table2, const string& column2, const double id2, TeDatabasePortal& *Portal);bool Contains(const string& table1, const string& column1, const double id1, const string& table2, const string& column2, const double id2, bool *Result);boolContains(const string& table, const string& column, const TeGeometry& geom, TeDatabasePortal& *Portal);bool Contains(const string& table, const string& column, const double id, const TeGeometry& geom, bool *Result);

1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data

Table 1 Table 2

Page 17: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool Contains(const string& table1, const string& column1, const string& table2, const string& column2, const double id2, TeDatabasePortal& *Portal);bool Contains(const string& table1, const string& column1, const double id1, const string& table2, const string& column2, const double id2, bool *Result);boolContains(const string& table, const string& column, const TeGeometry& geom, TeDatabasePortal& *Portal);bool Contains(const string& table, const string& column, const double id, const TeGeometry& geom, bool *Result);

1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data

Table 1 Table 2

– Operador Espacial Contains

Page 18: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool Contains(const string& table1, const string& column1, const string& table2, const string& column2, const double id2, TeDatabasePortal& *Portal);bool Contains(const string& table1, const string& column1, const double id1, const string& table2, const string& column2, const double id2, bool *Result);boolContains(const string& table, const string& column, const TeGeometry& geom, TeDatabasePortal& *Portal);bool Contains(const string& table, const string& column, const double id, const TeGeometry& geom, bool *Result);

1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data

Table TeGeometry TeGeometry

– Operador Espacial Contains

Page 19: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool Contains(const string& table1, const string& column1, const string& table2, const string& column2, const double id2, TeDatabasePortal& *Portal);bool Contains(const string& table1, const string& column1, const double id1, const string& table2, const string& column2, const double id2, bool *Result);boolContains(const string& table, const string& column, const TeGeometry& geom, TeDatabasePortal& *Portal);bool Contains(const string& table, const string& column, const double id, const TeGeometry& geom, bool *Result);

1 São José 0402470247

2 Vilade 0398103898

3 Curitiba 6549876465

4 Lourdes 4579454845

5 Fabriciano 1465487946

Id Name Spatial Data

Table TeGeometry TeGeometry

– Operador Espacial Contains

Page 20: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool Buffer (const string& table, const string& column, const double id, const double distance, TePolygon *bufferResult;

– Driver TeOracle - Oracle Spatial

• Operadores e funções + SQL• Computadas pelo SGBD

– Função Buffer

SELECT SDO_GEOM.SDO_BUFFER (T.column, M.diminfo, distance)FROM table T, user_sdo_geom_metadata MWHERE M.table_name = 'table' AND

M.column_name = 'column' AND T.indice = id;

SELECT T1.id, T1.columnFROM Table1 T1, Table2 T2WHERE T2.id = id2 AND

SDO_RELATE(T1.column, T2.column, ‘mask=CONTAINS querytype=WINDOW’)= ’TRUE’;

Page 21: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

• Consultas espaciais a dados matriciais– Baseadas nas operações da linguagem LEGAL

– Operações zonais• calcular estatísticas simples de um conjunto de

valores de um raster que estão contidos em uma determinada zona delimitada por um polígono

- Soma

- Média

- Variância

- Máximo Valor

...

Page 22: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

– Transformação de coordenadas • conversão de coordenadas do mundo para a linha

e coluna correspondente do raster, e vice-versa.

– Mask• recorta um raster a partir de outro ou a partir de

um polígono

– Operações de transformação• Reclassify: classes novas classes• Slice: numérico temático• Weight: temático numérico

– Operações aritméticas• Executa operações matemáticas sobre um

conjunto de rasters.

Page 23: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

• Consultas a dados matriciais– Operações zonais

– Transformação de coordenadas

– Mask

– Operações de transformação

– Operações aritméticas

typedef map<string, double> statistics;

bool ZonalOperator (const string& table, const string& column,

const TePolygon& geom, statistics& result);

Page 24: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool WorldCoordToRowCol (const TePoint& WC, const string&

table, const string& column, TePoint *RC);

bool RowColToWorldCoord (const TePoint& RC, const string&

table,const string& column, TePoint *WC);

• Consultas a dados matriciais– Operações zonais

– Transformação de coordenadas

– Mask

– Operações de transformação

– Operações aritméticas

Page 25: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

bool Mask (const string& table1, const string& column1, const string& table2, const string& column2, TeRaster *result);

bool Mask (const string& table, const string& column, const TePolygon& geom, TeRaster *result);

• Consultas a dados matriciais– Operações zonais

– Transformação de coordenadas

– Mask

– Operações de transformação

– Operações aritméticas

Page 26: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

typedef map<double, double> interval

bool Slice (const string& table, const string& column, const map<interval, string>& rules, const string& TabAtribOut, TeRaster *result);

• Consultas a dados matriciais– Operações zonais

– Transformação de coordenadas

– Mask

– Operações de transformação

– Operações aritméticas

Page 27: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

A InterfaceA Interface

typedef map<string, string> table;

bool Calculate (const map<char, table>& Imagens, string&

mathexp, TeRaster *result);

• Consultas a dados matriciais– Operações zonais

– Transformação de coordenadas

– Mask

– Operações de transformação

– Operações aritméticas

Page 28: Interface para Consultas Espaciais em Banco de Dados Geográficos Orientadores João Argemiro Carvalho Paiva Gilberto Câmara Karine Reis Ferreira

Considerações FinaisConsiderações Finais

• Trabalhos realizados:– Desenvolvimento do driver TeOracle utilizando

OCI (Oracle Call Interface)

– Definição das consultas da API

• Espera-se:– Cumprir o trabalho no prazo estipulado

– Desenvolver a API com todas características definidas:

• genérica• exploração dos recursos de extensões espaciais

– Contribuir com esse trabalho para o desenvolvimento da TerraLib