Álgebra de Mapas LEGAL - dpi.inpe.br · • Dividem o domínio em vários subconjuntos ......

88
Álgebra de Mapas LEGAL Linguagem Espacial de Geoprocessamento Algébrico João Pedro [email protected]

Transcript of Álgebra de Mapas LEGAL - dpi.inpe.br · • Dividem o domínio em vários subconjuntos ......

Álgebra de Mapas

LEGAL

Linguagem Espacial de Geoprocessamento Algébrico

João Pedro

[email protected]

Álgebra (essencial)

• Domínio- oferece um conjunto de valores,

• Relações - selecionam valores,

• Operações - produzem valores,

• Expressões - descrevem as operações e relações,

seguindo regras gramaticais

Relações

Equivalencia

• Dividem o domínio em vários subconjuntos – igualdade, semelhança, congruencia etc.

a ~ b |3 a = n * 3 + k, b = m * 3 + k

m, n Z , k { 0, 1, 2}

Ordem

• Dividem o domínio em dois subconjuntos a partir de comparadores relacionais

<, <=, >, >=, ==, !=.

, , , , ,

Operações

Aritméticas

• Produzem números a partir de números, variáveis e operadores aritméticos

{ =, +, -, *, / }

Booleanas

• Produzem valores binários {0, 1} , {T, F}, {sim, não} …

a partir de comparadores relacionais ( .<, <=, >, >=, ==, !=.).

e operadores lógicos { ||, &&, !}

– Exemplos

(nir – red) / (nir + red)

A < B && (B >= C || C < 10)

A > B || ( D != F && F == “floresta” )

• Descrevem relações e operações a partir de regras

gramaticais

<expressão> : : <valor> |

<variável> |

<expressão> ‘+’ <expressão> |

<expressão> ‘*’ <expressão> |

<expressão> ‘==‘ <expressão> |

<expressão> ‘>= ‘ <expressão> |

<expressão> ‘<=‘ <expressão> |

( <expressão> )

Expressões

• Descrevem relações e operações a partir de regras

gramaticais

Alti + 200 : : 200 |

Alti |

Alti ‘+’ 200 |

<expressão> ‘*’ <expressão> |

<expressão> ‘==‘ <expressão> |

<expressão> ‘>= ‘ <expressão> |

<expressão> ‘<=‘ <expressão> |

( <expressão> )

Expressões

Modelagem Cartográfica

– Combina camadas de mapas

georeferenciados em um mesmo

sistema cartográfico.

– Realiza operações conhecidas

como “overlay de mapas”

‘Intercessão’, ‘união’, ‘complemento’, ‘merge’,

‘clipping’, ‘clump’ …

Modelagem Cartográfica

– Combina camadas de mapas

georeferenciados em um mesmo

sistema cartográfico.

– Realiza operações conhecidas

como “overlay de mapas”

‘Intercessão’, ‘união’, ‘complemento’, ‘merge’,

‘clipping’, ‘clump’ …

Álgebra de Mapas

– Representa uma área de estudo por camadas

de mapas (planos de informção)

– Associados a variáveis nas expressões da

linguagem;

– Novos planos resultam de operações sobre

planos existentes;

Álgebra de Mapas

– Conjuntos de um ou mais valores locais são selecionados de um ou mais planos envolvidos numa operação

– Dependendo da maneira como é feita essa seleção, as operações podem ser classificadas em:

Locais, Vizinhanças e Zonais

Operações Locais.

O valor de cada local, depende dos valores

associados ao mesmo local pelos planos

envolvidos

Red Near Infrared Vegetation Index

Green

Leaves

Yellow

Leaf

NDVI = (NIR - RED) / (NIR + RED)

NIR: propriedades estruturais da folha;

RED: absorção de radiação pela clorofila.

Operações Aritméticas.

Ex: Indices de Vegetação

{

//Declarações de variáveis

//Inicializações

//Operações

}

Estrutura de programa em LEGAL

{

//Declarações de variáveis

Imagem red, nir ("Imagens");

Numerico ndvi (“Grades");

//Inicializações

red= Recupere(Nome="TM_3");

nir= Recupere(Nome="TM_4");

ndvi= Novo(Nome="NDVI", ResX=30, ResY=30);

//Operações

ndvi = (nir - red)/(nir + red);

}

Índices de vegetação em LEGAL

{

//Declarações

Imagem red, nir, ndvi ("Imagens");

//Inicializações

red= Recupere(Nome="TM_3");

nir= Recupere(Nome="TM_4");

ndvi= Novo(Nome="NDVI", ResX=30, ResY=30);

//Operações

ndvi = 127 * (nir - red)/(nir + red) + 128;

}

Índices de vegetação em LEGAL

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Editando em Legal - NDVI

Atribuição Condicional

• Sintaxe:

resultado = <booleana> ? <caso_sim> : <caso_não> ;

D A B C

D = A==B && B != C ? C : D;

A avaliação de uma expressão booleana define a operação usada para determinar a variável resultado.

Operações Condicionais

Atribuição Condicional

Comando Atribua

• Sintaxe:

resultado = Atribua

{

“classe_tematica_1” : <booleana_1>,

“classe_tematica_2” : <booleana_2>,

“classe_tematica_3” : <booleana_3>,

...

“classe_tematica_n” : <booleana_n>;

}

A avaliação alternativa de expressões booleanas define a classe temática da variável resultado.

Operações Condicionais

Comando Atribua

Comando Atribua

Comando Atribua

Comando Atribua

Comando Atribua

Agregação

• Pequenas diferenças de resolução entre mapas são compatibilizadas em LEGAL através de interpolação:

Vizinho mais próximo, Bilinear

• Mas tambem podem ser exploradas atraves de agregação a partir de estatísticas simples como:

Maioria, Media, Mediana, Maximo …

Agregação

{ …

Imagem red, nir, myi (“Imagem_ETM”);

red = Recupere (Nome=“B3”);

nir = Recupere (Nome=“B4”);

myi = Novo (Nome=“MYVI”, ResX=300, ResY=300);

myi = 127 * ((Maioria) nir – (Maioria) red) /

((Maioria) nir + (Maioria) red) +128;

}

Agregação

{ …

Imagem red, nir, myi (“Imagem_ETM”);

red = Recupere (Nome=“B3”);

nir = Recupere (Nome=“B4”);

myi = Novo (Nome=“MYVI”, ResX=300, ResY=300);

myi = 127 * (Maioria) (nir – red) / (nir + red) +128;

}

Agregação

Agregação

{ …

inicial= Recupere (Nome=“523_GRT"); //resoluçao 30x30

maio= Novo (Nome=“Maioria“, ResX=150, ResY=150);

mino= Novo (Nome=“MinoriaI", ResX=150, ResY=150);

final= Novo (Nome=“Resultado", ResX=30, ResY=30);

maio = (Maioria)inicial;

mino = (Minoria)inicial;

final = inicial != “pinus” ? Inicial : maio != “pinus” ? maio :

inicial

}

Agregação – ruídos

Agregação – ruídos

Agregação – ruídos

Agregação – ruídos

Vizinhança 3x3

Quando as resoluções envolvidas forem identicas, a “agregação” assume a vizinhança 3x3 de cada local como argumento para estatisticas simples (Media, Maioria, Maximo etc).

{ …

/* O uso repetido da expressão a seguir permite a

recomposição de areas tomadas como ruidosas */

final = final == “pinus” ?

(Minoria) final == “pinus” ? (Maioria) final : final

}

Vizinhança 3x3

Quando as resoluções envolvidas forem identicas, a “agregação” assume a vizinhança 3x3 de cada local como argumento para estatisticas simples (Media, Maioria, Maximo etc).

{ …

n = 0

While (n <=2) {

final = final == “pinus” ?

(Minoria) final == “pinus” ? (Maioria) final : final

} ;

n = n +1; }

Comando Iterativo - While

• Sintaxe:

While <expressão_booleana> {

<expressão-1> ;

<expressão-2> ;

...

} ;

Vizinhança 3x3 – ruídos

Vizinhança 3x3 – ruídos

• Uma maneira de realizar operações de

vizinhança é através do envolvimento de

locais vizinhos explìcitamente em

operações locais.

• Cada local vizinho é expresso em termos do

número de linhas e colunas de distância

relativa ao local de referência (foco).

Vizinhanças em LEGAL

i - 2

i - 1

i

i + 1

i + 2

j - 3 j - 2 j - 1 j j + 1

[0,0]

Operacao envolvendo locais vizinhos

segundo uma certa configuracao.

grd [-2, -2] +

grd [-1, -2] + grd [-1, -1] +

grd [ 0, -2] + grd [ 0, -1] + grd [0, 0] +

grd [+1, -2] + grd [+1, -1] +

grd [+2, -2]

Vizinhanças em LEGAL

[0,-1]

[-1,-1]

[1,-1]

Declividade e Exposição

Declividade e Exposição

Declividade e Exposição

Declividade e Exposição

Fractais – comando While

• Resultados locais sumarizam valores

associados a locais vizinhos através de

estatísticas simples tais como:

Maioria, Media, Mediana, Maximo, …

Ex: Maioria

Operações de Vizinhança

Resultado =

Maioria (Mapa * Vizinhanças) ;

Vizinhanças em LEGAL

Seleção por Vizinhanças

Mapa

tabuleiro quarteirao

Maioria (mapa #(Distancia() < 3))

Maioria (mapa #(1 < Distancia() < 3))

Expressas pela distância ao foco

Vizinhanças em LEGAL

2 2

Vizinhanças em LEGAL

med3 = Media ( ( Distancia() < 1 ) # img ) ;

med93 = Media ( ( 1 < Distancia() < 4 ) # img ) ;

dev3 = Media ( ( Distance() <= 1) # ( img - med3 ) ^ 2 ) ;

dev93 = Media ( ( 1 < Distancia() < 4 ) # ( img - med93 ) ^ 2 ) ;

det93 = log ( dev93 / dev3 ) + ( dev3 / dev93 ) + ( med3 - med93 ) ^ 2 / dev93 ;

imagem

media

desvio

media

ex: deteção de alvos

• Sintaxe:

Regiao reg;

ex:

...

reg= [-1,-1] [-1, 0] [-1, 1]

[0, 0] [ 0,-1] [ 0, 1]

[ 1,-1] [ 1, 0] [ 1, 1] ;

...

resultado = Mediana ( reg # <expressao> )

Vizinhanças em LEGAL

Expressas através do tipo Regiao

ou reg= Distancia() < 2;

Vizinhanças em LEGAL

Vizinhanças em LEGAL

{

Tematico veg0, veg1 ("Vegetacao");

veg0 = Recupere (Nome = "Vegetacao");

veg1 = Novo (Nome = "Interiores", ResX=1000, ResY=1000);

veg1 = Maioria((Quarteirao()<2) * veg0) == Minoria((Quarteirao()<2) * veg0) ? veg1 : veg0 ;

}

Operações Zonais

zonas referencia

seleção sumário

sumario= Maioria (referencia, zonas)

Operações Zonais

Caracterizam cada local com base em regiões

que os contém unicamente, ou zonas.

Valores selecionados por zona são então

sumariizados por estatísticas básicas como:

…Maioria, Média, Máximo, Mediana, Variedade, …

Operações Zonais

Existem duas maneiras de particionar um

conjunto em zonas:

• Implìcitamente através de comparações

combinadas com expressões Booleanas (dados

em formato raster),

• Explìcitamente através de poligonos, linhas ou

pontos associados a objetos cadastrais (dados

em formato vetorial e tabelas de Bancos de

Dados.)

• Sintaxe:

resultado = operação ( referência, zonas ) ;

resultado : variável (modelo Tematico, Numerico ou Imagem)

ou variável.atributo (modelo Objeto);

operação: estatistica simples (média, maioria, mediana …)

referência: expressão para determinar os valores a serem

processados;

zonas: expressões para a seleção de locais que pertencem a

cada referência.

Operações Zonais

Operações Zonais, Exemplos:

• Os resultados podem ser mapas ou atributos de objetos cadastrais.

Ex: A média dos valores de indices de vegetação por tipo

de solo

ind = Media (ndvi, solo==“A”, solo==“B”, …);

A exposição predominante em cada quadra de Brasília.

obj.”atributo” = Maioria (aspecto, quadra

NoMapa quadras);

Operações Zonais, Exemplos:

Operações Zonais, Exemplos:

Operações “Zonais” sobre Pontos

Espacialização de Atributos

• Geobjetos (objetos cadastrais) associados a

representação vetorial podem ser transformados em

representações Matriciais, dos modelos Tematico,

Numerico e Imagem que temos no SPRING.

– Sintaxe:

var = Espacialze (obj.”atributo” NoMapa cad);

Espacialização de Atributos

Espacialização de Atributos

Espacialização de Atributos

Espacialização de Atributos

• Pontos associados a objetos cadastrais

podem ser contados ou ter valores de seus

atributos somados, para cada local de uma

área de estudo.

– Sintaxe:

var = PontosPorCela (obj NoMapa cad);

var = AtributoPorCela (obj.”atributo” NoMapa cad);

Aqui, cada local é visto como uma cela (região) que

contém pontos.

Pontos/Atributos por Cela

Pontos/Atributos por Cela

Pontos/Atributos por Cela

Pontos/Atributos por Cela

Desenvolvimentos futuros: Topologia Raster -Vector

Querying vector-raster objects

SELECT pressure, forecast FROM ImageTable

WHERE pressure.Name ==“Pressure” and forecast.Name == “Forecast” ;

SELECT object from ObjectTable

WHERE object .Geometry() TOUCHES (pressure >= 1200 and forecast > 100) ;

Alternatively

flood = pressure >= 1200 and forecast > 100 ;

SELECT object from Table T

WHERE object .Geometry() TOUCHES (flood) ;

...then

SELECT* from Bombeiros B

WHERE distance (B.Geometry(), flood) < 100 ;

Considerações finais

• Essencialmente existem tres momentos na análise através da álgebra de mapas:

– Definir as regiões envolvidas no problema, por criterios que podem envolver representações matriciais ou vetoriais

– Definir maneiras de selecionar valores através das regiões definidas;

– Definir maneiras de sumarizar novos valores locais com base nos valores selecionados por região;

Obrigado pela atenção de vocês.

[email protected].

Referencias Basicas:

TOMLIM, C.D. Geographic information systems and cartographic modeling.

Englewood Cliffs: Prentice Hall, 1990.

BERRY, J.K. Cartographic modeling: the analytical capabilities of GIS. In:

GOODCHILD, M.; O’PARKS, B.; STEYAERT, L. Environmental modeling

with GIS, p. 58-74, 1993.

BERRY, J.K. Map analysis: procedures and applications in GIS modeling.

2004. Available Online: <www.innovativegis.com/basis>. 20/10/2010.

SHAPIRO, M. et al. MAPCALC: an algebra for GIS and image processing.

Champaign: U.S.Army Construction Engineering Research Laboratory, 1992.

WESSELING, C.G. Et al. Integrating dynamic environmental models in gis:

the development of a dynamic modelling language. Transactions in GIS, v. 1,

p. 40-48, 1996.

Referencias INPE:

CAMARA, G. et al. Towards an algebra of geographical fields. In: SIMPÓSIO

BRASILEIRO DE COMPUTAÇÃO GRÁFICA E PROESSAMENTO DE

IMAGENS, 7., 1994, Campinas.

CORDEIRO, J. P.; AMARAL, S.; FREITAS, U. M.; CAMARA, G. Álgebra de

Campos e suas aplicações. In: SIMPÓSIO BRASILEIRO DE

SENSOREAMENTO REMOTO, 8., 1996, Salvador.

CORDEIRO, J.P. Et al. Algebraic formalism over maps. In: BRAZILIAN

SYMPOSIUM IN GEOINFORMATICS. 7., 2005, Campos do Jordão.

CORDEIRO, J.P. Et al. Yet another map algebra. Geoinformatica, v. 13, p.

183-202, 2009.

BARBOSA, C.C. et al. Integração do Dominio de Objetos e Campos em Algebra

de Mapas. In: GIS BRASIL, 1999, Salvador, BA.

Referencias de Uso:

AMORIM, R.F.; SILVA, F.M. Modelagem do processo de vulnerabilidade

e erosão do solo utilizando o SIG Spring. In: SIMPÓSIO BRASILEIRO DE

SENSOREAMENTO REMOTO, 5., 2009, Natal. Anais.

ANDERSON, L.O. et al. Influence of landscape heterogeneity on spatial

patterns of wood productivity, wood specific density and above ground

biomass. Amazonia, Biogeosciences, v. 6, p. 1883-1902, 2009.

BERKA, L.M.S.; RUDORFF, B.F.T. Sistema de informação geográfica no

acompanhamento da safra de soja através de modelo agrometeorológico.

Goiânia: INPE, 2005. p.33-40.

CÂNDIDO, A.K.A.; SANTOS, J.W.M. Mapeamento das áreas com solos com

alto potencial de erosão na área da bacia do Rio Manso – MT. In: SIMPÓSIO

DE GEOTECNOLOGIAS NO PANTANAL, 2., 2009.

Referencias de Uso:

MOTA, M. et al. Using LEGAL: map algebra - as a tool to support estimation of

amazonian deforestation. In: SIMPOSIO LATINOAMERICANO SÔBRE

PERCEPCION REMOTA Y SISTEMAS DE INFORMACION ESPACIAL, 11.

2004, Santiago, Chile.

MOTA, M. et al. Integração de dados ambientais através de álgebra de mapas –

caso de estudo: geração da vulnerabilidade ambiental do municipio Assis Brasil –

Acre. In: GIS-Brasil 1999, Salvador.

SILVA, M.S.D. Avaliação de aspectos da fragilidade ambiental para o

ecoturismo no entorno da represa do 29 São Carlos (SP). 2007. Dissertação

(Mestrado em Engenharia Urbana) - Universidade de São Paulo, São Carlos.

SOARES-FILHO, B.S. Et al. Dinamica: a stochastic cellular automata model

designed to simulate landscape dynamics in an amazonian colonization frontier.

Ecological Modelling, v. 154, p. 217–235, 2002.

Extents

Exercício: Para obter uma imagem de refletância, deve-se primeiro transformar o número digital (ND) em radiância, utilizando parâmetros de calibração de pré-lançamento. A transformação de ND para radiância é feita através da fórmula:

RAD = Lmin + (Lmax - Lmin) * ND / 255

onde: RAD = radiância espectral (mW cm-2 sr-1 μm-1); Lmin = radiância espectral do ND mínimo; Lmax = radiância espectral do ND máximo;

Posteriormente, os valores de radiância são utilizados para calcular as refletâncias aparentes pela equação abaixo:

π L d2 / Esol cos(θ) onde: RAP= refletância aparente; L= radiância espectral no detector (mW cm-2 sr-1 μm-1); d = distância Terra-Sol, em unidades astronômicas; ESol = irradiância solar topo da atmosfera (mW cm-2 m-1); θ = ângulo solar zenital, em graus.

Essa transformação de radiância para refletância analisa as diferenças entre os ângulos de elevação solar, normalizando-as sob este aspecto, mas não considera as diferenças topográficas nem atmosféricas