Tecnicas avancadas de_bases_de_dados_bas (2)

13
1 Técnicas Avançadas de Bases de Dados : Bases de Dados Espaciais Carlos Eduardo Ermida Santos, pg17282, Mestrado em Engenharia e Gestão de Sistemas de Informação Resumo: A evolução das tecnologias tem proporcionado de forma mais abundante, novas formas de visualizar dados. As bases de dados espaciais tentam insurgir-se como resposta às necessidades das organizações visualizarem dados organizados como formas geométricas de modo a garantir uma melhor interpretação e aproveitamento. Procurou-se através deste trabalho analisar a utilidade e funcionalidades da utilização de uma base de dados especial, aplicada num caso concreto, o de fogos florestais, tendo sido utilizados o Sistema de Gestão de Bases de Dados PostgreSQL, a extensão PostGIS e a aplicação GvSIG. Verificou-se que estas ferramentas possuem ainda algumas debilidades mas que permitem visualizar dados de diversas formas bem como utilizar ferramentas que permitem tirar o melhor partido da informação inserida na Base de Dados. 1. Introdução Para este trabalho foi seleccionado um conjunto de dados sobre fogos florestais no Parque Natural de Montesinho, encontrado em: http://archive.ics.uci.edu/ml/datasets/Forest+Fires O objectivo foi construir uma base de dados a partir desses dados, que permitisse efectuar uma representação espacial de pontos com dados associados às suas coordenadas e explorar os mesmos. Para tal, utilizou-se o Sistema de Gestão de Bases de Dados PostgreSQL com a extensão PostGIS e utilizou-se a aplicação GvSIG como complemento para visualização e obtenção de diversos resultados a partir dos dados.

Transcript of Tecnicas avancadas de_bases_de_dados_bas (2)

Page 1: Tecnicas avancadas de_bases_de_dados_bas (2)

1

Técnicas Avançadas de Bases de Dados :

Bases de Dados Espaciais

Carlos Eduardo Ermida Santos, pg17282, Mestrado em Engenharia e Gestão de

Sistemas de Informação

Resumo: A evolução das tecnologias tem proporcionado de forma mais abundante, novas formas

de visualizar dados. As bases de dados espaciais tentam insurgir-se como resposta às necessidades

das organizações visualizarem dados organizados como formas geométricas de modo a garantir

uma melhor interpretação e aproveitamento. Procurou-se através deste trabalho analisar a utilidade

e funcionalidades da utilização de uma base de dados especial, aplicada num caso concreto, o de

fogos florestais, tendo sido utilizados o Sistema de Gestão de Bases de Dados PostgreSQL, a

extensão PostGIS e a aplicação GvSIG. Verificou-se que estas ferramentas possuem ainda algumas

debilidades mas que permitem visualizar dados de diversas formas bem como utilizar ferramentas

que permitem tirar o melhor partido da informação inserida na Base de Dados.

1. Introdução

Para este trabalho foi seleccionado um conjunto de dados sobre fogos florestais no

Parque Natural de Montesinho, encontrado em:

http://archive.ics.uci.edu/ml/datasets/Forest+Fires

O objectivo foi construir uma base de dados a partir desses dados, que permitisse

efectuar uma representação espacial de pontos com dados associados às suas

coordenadas e explorar os mesmos.

Para tal, utilizou-se o Sistema de Gestão de Bases de Dados PostgreSQL com a

extensão PostGIS e utilizou-se a aplicação GvSIG como complemento para

visualização e obtenção de diversos resultados a partir dos dados.

Page 2: Tecnicas avancadas de_bases_de_dados_bas (2)

2

2. Trabalho Relacionado

Bases de Dados Espaciais

Uma base de dados espacial é para todos os efeitos, uma base de dados que

armazena conjuntos de objectos que representem aspectos geométricos de dados

reais. Estes objectos assumem as formas de pontos, linhas ou polígonos, sendo

que estes últimos podem ter diversas formas e conter buracos no seu interior. É

possível realizar vários tipos de análise destes objectos por meio de métodos de

selecção, intersecções, funções espaciais, entre outras. (Güting 1994-10-01)

A utilização de Sistemas de Gestão de Bases de Dados (SGBD) com

características espaciais como suporte aos GIS (Geographic Information Systems)

para obter os dados sobre os quais os utilizadores requerem diversas análises é a

base do actual estado desta área científico-tecnológica. Assim, existem várias

aplicações desta tecnologia para efectuar análises mais detalhadas de dados, tais

como os Censos e o Planeamento Territorial. A evolução da tecnologia tem vindo

adicionalmente a proporcionar características de Data Mining às Bases de Dados

Espaciais permitindo encontrar informação através da procura de padrões e

estatísticas. (Shekhar and Chawla 2003)

A tecnologia em si, possui actualmente uma base de implementação algo

alargada, estando presente de raiz ou através de Plug-ins para a maioria dos

SGBD como o Oracle, Microsoft SQL Server e PostgreSQL. Possui no entanto

algumas debilidades relativas à facilidade de utilização bem como de transposição

para ferramentas GIS como se constatou ao longo deste trabalho.

Fogos Florestais

Para compreensão de algumas das variáveis de dados contidas no pacote de dados

seleccionado apresenta-se a seguinte lista de definições relativas ao Fire Weather

Index System contidas no site http://bcwildfire.ca/weather/indices.htm:

o FFMC - Fine Fuel Moisture Code: indicador de materiais de fácil

combustão.

o DMC - Duff Moisture Code: indicador de consumo em termos de

combustão de materiais madeireiros.

o DC - Drought Code: indicador de secas sasonais, utilizando a

humidade nas camadas orgânicas como referência.

Page 3: Tecnicas avancadas de_bases_de_dados_bas (2)

3

o ISI - Initial Spread Index: indicador da taxa de propagação

esperada de um incêndio. Resulta da combinação dos efeitos do

vento e FFMC.

o BUI - Build Up Index: indicador da quantidade total de

combustível disponível, obtém-se combinando o DMC e o DC.

o FWI - Fire Weather Index: indicador da intensidade do fogo,

obtém-se através da combinação do ISI e do BUI. É o risco de

incêndio associado às áreas florestais e rurais.

Este Sistema pode servir de base para efectuar as análises necessárias ao conjunto

de dados relativos aos fogos, nomeadamente em variáveis que apesar de não

estarem presentes no conjunto de dados, são obtidas a partir de alguns dos dados

contidos. A lista de relações entre variáveis é a que se segue:

Surge no entanto outro problema devido ao facto de não se encontrar devidamente

divulgada a forma de cálculo das variáveis que resultam da combinação de outras

variáveis. No entanto, os intervalos relativos a cada um dos índices estão

disponíveis em http://www.n9mfk.com/wxfireweatherdefinitions.php como se

pode verificar na ilustração seguinte:

Ilustração 1 - Relações entre variáveis (P. Cortez and A. Morais. A Data

Mining Approach to Predict Forest Fires using Meteorological Data. In J.

Neves, M. F. Santos and J. Machado Eds.)

Ilustração 2 - Índices e intervalos associados

Page 4: Tecnicas avancadas de_bases_de_dados_bas (2)

4

Com base nesta tabela, é possível inferir que para os índices DMC e DC situados

nos mesmos intervalos o BUI será situado no mesmo intervalo. Isto é, se os

índices DMC e DC estiverem situados no intervalo baixo (Low), o BUI é baixo, se

ambos estiverem situados no intervalo extremo (Extreme), o BUI é extremo.

3. Trabalho Desenvolvido

Após a instalação do SGBD PostgreSQL e da extensão PostGIS, bem como da

obtenção do conjunto de dados seleccionado, procedeu-se à interpretação dos

tipos de variáveis nele contidas.

Variáveis de dados:

X – coordenada espacial do eixo das abcissas no parque de Montesinho: 1 a 9

Este dado apesar de inicialmente ser do tipo inteiro (integer) será eventualmente

transformado num dado do tipo float de modo a não haver pontos coincidentes na

representação gráfica.

Y – coordenada espacial do eixo das ordenadas no parque de Montesinho: 2 a 9

Este dado recebeu o mesmo tratamento que o anterior.

month – Estes dados correspondem a um mês do ano no intervalo (com meses

nomeados em inglês) de Janeiro a Dezembro e é um dado sobre a forma de

caracteres: "jan" to "dec“ (char)

day – Estes dados correspondem a um dia da semana no intervalo (com dias

nomeados em inglês) de Segunda-Feira a Domingo e recebeu o mesmo tratamento

que o anterior: "mon" to "sun" (char)

FFMC – indíce FFMC: 18.7 to 96.20 (float)

DMC - indíce DMC: 1.1 to 291.3 (float)

DC - indíce DC: 7.9 to 860.6 (float)

ISI - indíce ISI: 0.0 to 56.10 (float)

temp – Dados relativos à temperatura em graus Celsius: 2.2 to 33.30 (float)

RH – Dados relacionados com a Humidade relativa em %: 15.0 to 100 (float)

wind – Dados sobre a velocidade do vento em km/h: 0.40 to 9.40 (float)

rain – Dados sobre a precipitação em mm/m2: 0.0 to 6.4 (float)

area – Dados sobre a área ardida da floresta em hectares: 0.00 to 1090.84 (float)

Page 5: Tecnicas avancadas de_bases_de_dados_bas (2)

5

Importação dos Dados para o PostgreSQL

O passo seguinte foi importar os dados do ficheiro em que se encontravam

contidos para uma tabela no PostgreSQL. Para esse efeito, criou-se em primeiro

lugar uma tabela com colunas correspondentes aos dados e ao seu tipo, através da

seguinte query em SQL:

• create table importados (X int, Y int, month char(3), day char(3), FFMC

float, DMC float, DC float, ISI float, temp float, RH float, wind float, rain

float, area float);

Em seguida, através da função “COPY” contida na linguagem SQL, criou-se uma

query que importasse os dados do ficheiro para a tabela criada anteriormente

(importados):

• COPY importados from '/forestfiresnova.csv' DELIMITERS ',' CSV;

A função “DELIMITERS” permite seleccionar o separador de cada tipo de dados,

neste caso vírgulas. “CSV” refere-se ao tipo de ficheiro em que os dados que se

pretende importar se encontram contidos.

Criação de uma tabela com uma coluna do tipo geometry

O passo seguinte no trabalho consistiu em criar uma nova tabela com uma coluna

adicional cujo tipo de dados fosse geometry, bem como a atribuição de uma chave

primária gerada a partir de uma sequência de números para efeitos de

identificação de cada ponto e seus dados. As queries SQL utilizadas foram as que

se seguem:

CREATE SEQUENCE sq10;

CREATE TABLE t4(

id INTEGER PRIMARY KEY DEFAULT NEXTVAL('sq10'),

x integer,

y integer,

month char(3),

day char(3),

ffmc float,

dmc float,

dc float,

isi float,

temperature float,

Page 6: Tecnicas avancadas de_bases_de_dados_bas (2)

6

rh float,

wind float,

rain float,

area float

);

SELECT AddGeometryColumn(„t4','ponto','27492','POINT',2);

INSERT INTO t4

(x,y,month,day,ffmc,dmc,dc,isi,temperature,rh,wind,rain,area)

SELECT

x,y,month,day,ffmc,dmc,dc,isi,temp,rh,wind,rain,area

FROM

importados

Note-se que a primeira query do tipo “SELECT” é a única forma de adicionar a

coluna geométrica à tabela que permite ao GvSig detectar de os dados como

sendo do tipo geométrico. Isto deve-se ao facto do PostGIS colocar uma restrição

aos tipos de dados através desta query, facto que não se verifica ao adicionar de

forma manual a coluna. Devido a esta característica particular do PostGIS foram

sentidas dificuldades de execução devido ao desconhecimento da mesma, em

fases posteriores do trabalho, nomeadamente na transposição dos dados para o

GvSIG.

“t4” refere-se à tabela destino, “ponto” ao nome da nova coluna, “27492” ao tipo

de referencial geométrico utilizado pelos dados, “POINT” ao tipo de geometria e

“2” ao número de variáveis que compõe o tipo de geometria, neste caso dois

devido à existência de apenas duas coordenadas, x e y.

Random das coordenadas

De modo a existir uma maior dispersão dos pontos e estes não coincidirem,

somou-se um valor decimal a cada Coordenada, após converter o tipo de dados de

x e y para float. Optou-se por um valor decimal de modo a obter uma

representação o mais próximo possível da original. As queries que se seguem

foram utilizadas para obter este efeito de dispersão:

UPDATE t4

SET x = x + random()/10;

UPDATE t4

Page 7: Tecnicas avancadas de_bases_de_dados_bas (2)

7

SET y = y + random()/10;

Preenchimento da coluna ponto do tipo geometry

O passo seguinte envolveu a inserção dos valores relativos aos pontos na coluna

geométrica da tabela pretendida.

UPDATE t4

SET ponto = SetSRID(ST_MakePoint(x,y),27492);

Mais uma vez é utilizado o número referente ao tipo de referencial geométrico

para definir os dados espaciais. A utilização da função “ST_MakePoint” define a

forma geométrica como sendo do tipo ponto.

Ligação e transposição dos dados para o GvSIG

No GvSIG adicionou-se uma nova capa e em seguida seleccionou-se o separador

GeoDB, a fim de criar a ligação de dados entre o PostgreSQL e o GvSIG.

Ao criar uma nova ligação é necessário fornecer os seguintes dados: nome da

ligação, tipo de driver de ligação, url de servidor, número da porta do servidor,

nome da base de dados, nome do utilizador da base de dados e a password

associada, sendo que foram utilizados para ligar ao PostgreSQL os seguintes

dados: fogos, PostGIS JDBC Driver, localhost, 5432, fogos, postgres, password

para cada um dos dados correspondentes.

Após de criada e iniciada a ligação ao PostgreSQL é apresentada uma listagem de

todas as tabelas associadas à base de dados indicada na ligação. Ao seleccionar

uma tabela que inclua dados geométricos definidos como mostrado anteriormente,

o GvSig detecta de forma automática a coluna do tipo geométrico e possibilita a

indicação da coluna que actua como chave primária da tabela.

Após o estabelecimento desta ligação aos dados foi iniciado o trabalho de análise

dos dados com recurso às ferramentas incluídas no GvSIG.

4. Resultados

Após o preenchimento com sucesso de uma tabela com dados espaciais, procedeu-

se a efectuar análises tanto no PostgreSQL através de queries como em seguida no

GvSIG.

Page 8: Tecnicas avancadas de_bases_de_dados_bas (2)

8

Algumas primeiras análises de relevo efectuadas no PostgreSQL

Pontos com área ardida:

- Query: select ponto from t4 where area>0

- Resultado: 270 focos de incêndio

Tendo em conta os índices associados aos dados e intervalos

correspondentes efectuaram-se as análises que se seguem.

Pontos e meses do ano em que o BUI é de risco extremo:

- Query: select ponto, month from t4 where dmc>63 and dc>360

- Resultado: 375 vezes

Meses com excepção do Verão em que existe ISI com risco muito elevado e

precipitação razoável:

- Query: select month, rh from t4 where isi>11 and rh>25 and month !=

'aug' and month != 'jul' order by month

- Resultado: Abril, Março, Junho, Setembro, Outubro

Resultados no GvSIG

No GvSIG grande parte das ferramentas de análise e funcionalidades são

derivadas de queries SQL do tipo espacial, sendo exemplo disso a função Convex

Hull.

As ferramentas de análise estão disponíveis através do Gestor de Geoprocessos e

do menu SEXTANTE, um Plug-in já incluído no pacote de instalação do GvSIG.

Através da utilização destas e outras funcionalidades de menor relevo obteve-se os

resultantes que se apresentam de seguida.

Mapa de pontos obtido após a transposição dos dados:

Ilustração 3 - Mapa de Pontos

Page 9: Tecnicas avancadas de_bases_de_dados_bas (2)

9

Distâncias dos pontos ao ponto com mais convergência de focos de incêndio:

Convex Hull – Polígono Envolvente

Cálculo do perímetro e da área abrangida pelos focos de incêndio (25,71 metros

de perímetro e 36,24 metros quadrados de área – nota: a escala não foi

devidamente corrigida):

Estatísticas da variável temperatura:

Page 10: Tecnicas avancadas de_bases_de_dados_bas (2)

10

Correlação entre DC e DMC (BUI):

Correlação entre FFMC e a velocidade do vento (ISI):

Histograma do índice ISI:

Page 11: Tecnicas avancadas de_bases_de_dados_bas (2)

11

Correlação entre Área Ardida e Temperatura:

Centro mediano da área ardida:

Adicionalmente, constatou-se que é possível obter informação sobre pontos ou um

agregado destes pontos, clicando sobre os mesmos com a ferramenta de

informação:

Page 12: Tecnicas avancadas de_bases_de_dados_bas (2)

12

5. Conclusões

As Bases de Dados Espaciais são úteis para diversas áreas científicas que

necessitem de informação representada de forma gráfica e que agregue dados em

diferentes tipos de objectos.

Permitem efectuar um elevado número de consultas através de ferramentas como

o GvSig para discernir informação adicional de possível relevo proporcionando

simultaneamente a possibilidade de trabalhar com maior consciência da área

geográfica onde os dados possuem relevância.

Verifica-se adicionalmente que ferramentas como o GvSig que permitem trabalhar

com Bases de Dados Espaciais estão numa fase muito prematura de utilização e

possuem diversos problemas técnicos derivados dessa falta de desenvolvimento,

podendo criar situações de algum incómodo para os utilizadores devido a

pequenas falhas.

Referências Bibliográficas

http://archive.ics.uci.edu/ml/datasets/Forest+Fires

Güting, R. H. (1994-10-01) An introduction to spatial database systems. The VLDB Journal, 3.

Shekhar, S. & S. Chawla. 2003. Spatial Databases: A Tour. Prentice Hall.

P. Cortez and A. Morais. A Data Mining Approach to Predict Forest Fires using Meteorological

Data. In J. Neves, M. F. Santos and J. Machado Eds., New Trends in Artificial Intelligence,

Proceedings of the 13th EPIA 2007 - Portuguese Conference on Artificial Intelligence, December,

Guimaraes, Portugal, pp. 512-523, 2007. APPIA, ISBN-13 978-989-95618-0-9.

http://www.dsi.uminho.pt/~pcortez/fires.pdf

http://bcwildfire.ca/weather/indices.htm