Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
spring:legal:func [2008/11/25 15:34]
jpedro
spring:legal:func [2008/12/05 16:40] (current)
jpedro
Line 1: Line 1:
-=== Novas Funcionalidades (versão Spring 5) === 
  
-**Generalizações ​Agregações**+==== Generalização ​Agregação ====
  
-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 das estatísticas básicas tais como: 
-Media, Mediana, Maioria, Minoria, Maximo e Minimo. A figura abaixo ilustra essa situação. 
  
-Por exemploobserve ​a expressão abaixo:+A lingaugem LEGALa 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:​\\ 
 + 
 +{{spring:​legal:​wikleg001_.jpg|}} 
 + 
 +Observe ​a expressão abaixo:\\
  
   ndvi_20 = (nir - red)/(nir + red);   ndvi_20 = (nir - red)/(nir + red);
  
-Supondo que as as bandas radiometricas ("red" ​"near-infrared"​) tem resolução 20x20m, ​essa equação nos dá o indice de vegetação ​cada local (pixel, cela) de uma área de trabalho. Entretanto ​poderemos ​ter generalizações baseadas nesses dados de sensores a diferentes resoluções,​ por exemplo:+Supondo que as variáveis //red// //nir// representam imagens radiometricas nas bandas do vermelho e o infra-vermelho proximo, na resolução 20x20m, ​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) );   ndvi_200 = Maximo ( (nir - red)/(nir + red) );
Line 28: Line 32:
 Dessa maneira o LEGAL pode ajudar em estudos visando a adequação de escala e resolução para integrar dados de sensores em modelagem. 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 **+==== Operações de Vizinhança ==== 
 +(a partir da versão Spring 5.0.4.2) 
 + 
 +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: 
 + 
 +{{spring:​legal:​legwik002.jpg|}} 
 + 
 +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: 
 + 
 +{{spring:​legal:​wikleg003.jpg|}} 
 + 
 +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))); 
 + 
 +Segue-se um exemplinho que descreve um método de detecção de alvos, cuja expressão matemática pode ser dada pela equação:​ 
 +  det = (m0 - m1) / s1  
 +  
 +Aqui, **m0** representa uma imagem com os valores médios nas vizinhanças 3x3 de cada pixel de uma imagem original, **m1** por sua vez representa outra imagem com as médias sobre vizinhanças definidas pelo conjunto diferença entre vizinhanças 9x9 e 3x3, sobre essas mesmas vizinhanças é então determinado o desvio padrão correspondente,​ representado pela variável **s1**. As linhas relevantes de um programa em LEGAL para implementar esse método são exemplificadas abaixo: 
 +  m0 =  Media((Distance() <= 1) * m) ; 
 +  m1 =  Media((1 < Distance() < 4) * m) ; 
 +  s1 =  sqrt (Media((1<​(Distance()<​ 4) * (m- m1)^2)) ; 
 +  det = (m0- m1) / s1 ; 
 + 
 +A figura a seguir ilustra as diferentes vizinhanças envolvidas no programa acima, a imagem de entrada representada pela variável **m**, as médias e a imagem resultante associada à variável **det** 
 + 
 +{{spring:​legal:​legwik004.jpg|}} 
 + 
 +As mesmas considerações discutidas até agora são tambem válidas para outra função distancia, tambem implementada,​ conhecida como "city block" ou "​quarteirão"​. A distancia city block entre dois pontos p0, p1, no plano, de coordenadas (y0, x0) e (y1, x1)respectivamente é dada por: 
 +  D(p0, p1) = |y0 - y1| + |x0 - x1| 
 + 
 +Um circulo de raio 2 segundo essa medida de distancia teria a forma como indica a figua abaixo: 
 + 
 +{{spring:​legal:​legwik005.jpg|}} 
 + 
 +A partir daí todas as operações discutidas anteriormente podem fazer uso da distancia cityblock, bastando para isso substituir nas expressões,​ a chamada "​Distancia()"​ pela nova chamada "​Cityblock()"​ ou "​Quarteirao()",​ como nos exemplos abaixo: 
 + 
 +  (Cityblock()== 20) 
 +  (10 < Cityblock() < 30) 
 +  (20 <​=Cityblock() < 30) 
 +  ... 
 +Vale ainda observar que as distancias e valores envolvidos nas expressoes correspondem a escalas metricas convencionais,​ as mesmas usadas para definir a resolução dos dados.
  
 +Na sintaxe das funções distancia discutidas, a ausencia de parametros indicada pelo "​()",​ indica que cada local da área de trabalho é tomado como referencia (ou foco) para o calculo; novas versões da LEGAL no futuro devem fazer uso de parâmetros para indicar outras situações de interesse, como a distância a locais ou conjuntos de locais específicos.

Navigation