Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
spring:legal:func [2008/12/04 11:57] jpedro |
spring:legal:func [2008/12/05 16:40] (current) jpedro |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === Novas Funcionalidades (versão Spring 5) === | ||
- | **Generalizações e Agregações** | + | ==== Generalização e 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 de estatísticas básicas tais como: | 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: | ||
Line 32: | 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: | 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: | ||
Line 62: | Line 63: | ||
red_av = Media ((Distance() < 3) * red)); | red_av = Media ((Distance() < 3) * red)); | ||
ndvi_av = Media ((Distance() < 3) * ((nir - red)/(nir + 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. |