This is an old revision of the document!
Novas Funcionalidades (versão Spring 5)
Generalizações e Agregações
A lingaugem LEGAL, a partir da versão 5 do Spring permite explorar as diferenças de resolução entre dados em modelagem a partir de estatísticas básicas tais como:
Media, Mediana, Maioria, Minoria, Maximo e Minimo.
A figura abaixo ilustra as perdas de informação para representar um mapa a diferentes resoluções:
Observe a expressão abaixo:
ndvi_20 = (nir - red)/(nir + red);
Supondo que as variáveis red e nir representam imagens radiometricas nas bandas do vermelho e o infra-vermelho proximo, na resolução 20x20m, a equação acima nos dá o indice de vegetação para cada local (pixel, cela) de uma área de trabalho. Entretanto pode-se ter generalizações baseadas nesses dados de sensores a diferentes resoluções, por exemplo:
ndvi_200 = Maximo ( (nir - red)/(nir + red) );
Aqui um mapa de resolução 200x200m é obtido a partir dos dados originais de sensores. É claro que as variáveis devem estar declaradas e instanciadas corretamente. Por exemplo:
red= Recupere (Nome = "Red"); nir= Recupere (Nome = "NIR"); ndvi_20 = Novo (Nome = "Ndvi_20", ResX = 20, ResY = 20); ndvi_200 = Novo (Nome = "Ndvi_200", ResX = 200, ResY = 200);
Na verdade o uso desse recurso sintático pode ser bem mais flexivel como nos exemplos abaixo:
ndvi_200 = Maximo (banda4 - banda3)/ Media (banda4 + banda3); ndvi_200 = (Maximo (banda4) - Media(banda3))/ Minimo(banda4 + banda3);
Dessa maneira o LEGAL pode ajudar em estudos visando a adequação de escala e resolução para integrar dados de sensores em modelagem.
Operações de Vizinhança
Com o objetivo de permitir o desenho mais flexivel e explicito de operações envolvendo vizinhanças foi introduzida uma Função “Distancia” que implementa a distancia dada pelo número mínimo de celas entre cada local e o foco da vizinhança que o contém, como na figura:
A partir de operações de ordem ou igualdade pode-se então efetivamente definir vizinhanças. Por exemplo a região ressaltada na figura anterior pode ser descrita de diversas maneiras:
(Distancia()== 2) (1 < Distancia() < 3) (2 <=Distancia() < 3) ...
Uma grande variedade de vizinhanças podem ser assim especificadas, como ilustrado na figura:
A interação entre as vizinhanças assim definidas e os dados matriciais de uma base de dados pode entao ser modelada como o “produto” entre a região e as variáveis que representam mapas, grades e imagens, de uma base de dados, resultando em expressões tais como:
((Distancia() < 3) * nir) ((Distancia() < 3) * red)
A partir daí pode-se então extrair estatisticas simples tais como:
Media, Mediana, Maioria, Minoria, Maximo e Minimo.
Permitindo a descrição de diversas operações de vizinhança, como ilustrado abaixo:
nir_av = Media ((Distance() < 3) * nir)); red_av = Media ((Distance() < 3) * red)); ndvi_av = Media ((Distance() < 3) * ((nir - red)/(nir + red)));