Você está na página 1de 9

SPRING - Operaes em Legal

Pgina 1 de 9

Uso de Operaes em LEGAL:


Operaes Pontuais Operaes de transformao Pondere Fatie Reclassifique Operaes booleanas Operaes matemticas Operaes Condicionais Operaes de Vizinhana Operaes Zonais Veja como executar um programa em LEGAL

Veja sobre LEGAL no SPRING

Operaes Pontuais
Operaes pontuais envolvem posies equivalentes, localizadas em diferentes planos de informao. A maioria dos operadores envolvidos em expresses Imagem, Numricas e Temticas so pontuais, a saber: Operadores matemticos: : so os operadores aritmticos e as funes matemticas aplicadas ponto a ponto sobre dados quantitativos; tais como as grades numricas e as imagens Operadores de transformao : os operadores de transformao (Reclassifique, Fatie e Pondere) implementam o mapeamento entre um plano Temtico, Imagem ou Numrico de entrada e um plano Temtico ou Numrico de sada. O valor de cada posio de entrada definido por uma tabela (Reclassificao, Fatiamento ou Ponderacao) previamente definida. Operadores booleanos : so definidos partir de operadores de comparao (<, <=, ==, !=, >=, >) e dos operadores lgicos (&&, ||, !). Os operadores de comparao se baseam nas relaes de ordem, aplicveis a dados quantitativos (imagens, grades numricas e atributos numricos de objetos) as relaes de igualdade so aplicveis a dados tanto quantitativos qunto qualitativos (temticos e atributos testuais de objetos). Os elementos comparados so os resultados da avaliao de operaes pontuais descritas por expresses algbricas dos outros tipos descritos aqui. Os resultados podem assumir os valores VERDADEIRO ou FALSO. Operadores Condicionais : uma expresso booleana avaliada sobre cada posio pontual para decidir qual entre duas operaes alternativas, descritas por expresses de um mesmo tipo, deve ser avaliada para a determinao do resultado final que deve ter o mesmo tipo das expresses alternativas. Voltar ao Incio

Operadores Matemticos

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 2 de 9

As operaes matemticas atuam somente sobre planos de informao da categoria NUMRICO e IMAGEM, incluindo: operaes aritmticas: soma (+), subtrao (-), multiplicao (*) e diviso (/); funes matemticas: seno (sin), cosseno (cos), tangente (tan), arcoseno (asin), arco-cosseno (acos), arco-tangente (atan), logaritmo (log), logaritimo base 10 (log10), exponencial (exp), raiz quadrada (sqrt), parte inteira (int), valor absoluto (abs); valor aleatrio (rand) Como exemplo de operao matemtica, tome-se a figura a seguir, onde o plano da esquerda um mapa de solos ponderado e o da direita um mapa de declividade. Consideremos que desejamos computar um indicador de adequao de solos como a soma do valor atribudo ao solo com o inverso da declividade. A operao a seguir poderia ser utilizada como passo intermedirio ao calcular um mapa de adequao de solos (quanto maior o valor, mais adequado). aptidao = solos_pond + 1/decliv

O programa em LEGAL para fazer a operao acima mostrado a seguir. { // Parte 1 - Declarao Numerico solo_pond ("Solo_ponderado"), decliv ("Declividade"), aptidao ("AdequacaoNumerico"); // Parte 2 - Instanciao decliv = Recupere(Nome = "Decliv94"); solo_pond = Recupere (Nome = "Solos94"); aptidao = Novo (Nome = "adequcao94", ResX=50, ResY=50, Min=0, Max=2, Escala = 50000); // Parte 3 - Operacao aptidao = solo_pond + 1/decliv; } Outros exemplos de operaes matemticas so: LS = (0.00984*(decliv ^ 1.18)*(rampa ^ 0.63)); IV = (red / infrared) * 128; radAVHRR4 = 0.155 * ima + 150; tempAVHRR4 = 1.435*845.19/log(1+1.191 *10-5/radiancia); Voltar ao Incio

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 3 de 9

Operadores de Transformao
Os operadores de transformao realizam um mapeamento de valores definidos por variveis temticas e numricas para valores que podem ser associados a outras variveis numricas ou temticas, segundo mapeamento definido por tabelas de transformao de tipo especfico, que pode ser Reclassificacao, Fatiamento e Ponderao. Tais tabelas, previamente declaradas e instanciadas atuam como argumentos para os operadores. :Na Legal existem trs tipos de operadores de transformao implementadas. Pondere: mapeia um dado TEMTICO em um NUMRICO; Fatie: mapeia um dado NUMERICO em um TEMTICO; Reclassifique: mapeia um dado TEMTICO em outro TEMTICO. Alguns exemplos de operadores de transformao: * "Reclassificar um mapa de vegetao com as classes {Floresta Ombrfila Densa, Floresta Ombrfila Aberta, Campinarana, Floresta Estacional} em um mapa com as classes {Floresta Densa, Floresta Aberta}." * "Obter um mapa hipsomtrico a partir de um mapa de altimetria com o mapeamento { (0-300m) Plancie, (300-500m) - Planalto, (>500m) - Serras}". * "Quantizar uma imagem de satlite do infravermelho termal num mapa de temperaturas a partir da equao Temp = 27*Imagem/100." Voltar ao Incio

Ponderao
Um operador de ponderao transforma um dado temtico em um numrico, segundo a sintaxe: Pondere (varivel_ temtica, tabela_ponderao) A Figura abaixo mostra um exemplo do operador de ponderao (converso de um mapa de solos em um mapa de solos ponderado). Neste caso, o plano de informao de entrada um mapa de solos com as classes { Le, Li, Ls, Aq } e o de sada um MNT cujos valores esto entre 0.0 e 1.0 e a operao de ponderao consiste na associao {(Le-0.60), (Li-0.20), (Ls-0.35), (Aq-0.10)}.

Exemplo de um operador de ponderao: se "SOLOpond" for uma varivel do modelo numrico, "SOLOS" do modelo temtico e "ponderaSOLO" uma tabela de ponderao, a sentena abaixo mostra sintaxe deste operador: SOLOpond = Pondere (SOLOS, ponderaSOLO); Um exemplo de programa em LEGAL para realizar tal operao mostrado a seguir.

{ // Parte 1- Declaracao

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 4 de 9

Tematico SOLOS ("Solos"); Tabela ponderaSOLO (Ponderacao); Numerico SOLOpond ("SoloPonderado"); // Definicao da Tabela de Pesos ponderaSOLO = Novo (CategoriaIni = "Solos", Le : 0.60, Li : 0.2, Ls : 0.35, Aq : 0.1); // Parte 2 - Instanciacao do mapa de solos SOLOS = Recupere (Nome = "SoloCE"); // Criacao do novo mapa de solos ponderado SOLOpond = Novo (Nome = "solop", ResX = 30, ResY = 30, Escala = 100000, Min = 0, Max = 1); // Parte 3 - Operacao de Ponderacao SOLOpond = Pondera (SOLOS, ponderaSOLO); } O programa acima opera nos seguintes passos: 1. Inicialmente, os planos de informao e a tabela de ponderao so definidos (trs primeiras linhas do programa, no considerando as linhas comentrio). A tabela de ponderao criada, sendo definidos os pesos atribudos cada classe; 2. A seguir, o mapa de solos a ser ponderado recuperado, atravs da funo Recupere. O plano de informao de sada criado, atravs do operador Novo. O novo plano ser criado como uma grade regular de resoluo 30 x 30 metros, na escala 1:100.000 e valores mximo e mnimo; 3. A operao de ponderao realizada, atravs da funo Pondere. Voltar ao Incio

Fatiamento
A operao de fatiamento transforma um plano de informao numrico em um temtico, segundo a sintaxe: Fatie (varivel_ numrica, tabela_fatiamento) A figura abaixo mostra um exemplo de uso do operador de fatiamento no qual um mapa de declividade em graus convertido para um mapa de classes de declividade a partir da transformao:

de 0 a 5% de 5 a 15% maior que 15%

"baixa" "media" "alta"

Exemplo de programa em LEGAL que executaria esta operao: {

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 5 de 9

// Parte 1 - Declarao // Declarao de Variveis Tematico classes_decl ("Declividade"); Numerico decliv_num ("Declividade_Numerica"); Tabela tab_fatia (Fatiamento); // Definicao da tabela de fatiamento tab_fatia:= Novo ( CategoriaFim = "Declividade", [0.0, 5.0] : "Baixa", [5.0, 15.0]: "Media", [15.0, 45.0]: "Alta"); // Parte 2 - Instanciao // Recuperao do PI de Declividade Numrica decliv_num = Recupere (Nome = "Declive_SJC"); // Geracao do PI de saida classes_decl = Novo (Nome = "Classes_Decl", ResX = 50, ResY = 50, Escala = 100000); // Parte 3 - Operao // Operao de Fatiamento classes_decl = Fatie (decliv_num, tab_fatia); }

O programa acima opera nos seguintes passos: 1. Inicialmente, os PIs e a tabela de fatiamento so declarados (trs primeiras linhas do programa, no considerando as linhas de comentrio). A tabela de fatiamento criada, afim de definir o mapeamento entre classes temticas e intervalos numricos. 2. A seguir, o mapa de declividade a ser fatiado recuperado, atravs do operador Recupere. 3. O PI de sada criado, atravs do operador Novo. Este PI ser criado como uma imagem temtica de resoluo 50 x 50 metros, na escala 1:100.000. 4. A operao de fatiamento finalmente realizada, atravs da funo Fatie, afim de atribuir valores s posies no novo plano criado acima. Voltar ao Incio

Reclassificao
A operao de reclassificao transforma um plano de informao temtico em outro temtico segundo a sintaxe: Reclasasifique (variavel_tematica, tabela_reclassificacao) Como exemplo, temos um mapa de cobertura do solo na Amaznia com diferentes classes {"Floresta Densa", "Floresta Vrzea", "Rebrota", "rea Desmatada", "Cerrado"}. Este mapa temtico ser reclassificado para um novo mapa, apenas com as classes {"Floresta", "Desmatamento", "Cerrado"}. Exemplo de programa em LEGAL que executaria esta operao: { // Parte 1 - Declarao Tematico cobertura ("Floresta"); Tematico desmat ("Desmatamento"); Tabela tab_recl (Reclassificacao); tab_recl= Novo(CategoriaIni = "Floresta", CategoriaFim = "Desmatamento", "FlorestaDensa" : "Floresta", "FlorestaVarzea" : "Floresta", "Rebrota" : "Desmatamento", "AreaDesmatada" : "Desmatamento",

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 6 de 9

"Cerrado" : "Cerrado"); // Parte 2 - Instanciao // Recuperao da varivel cobertura = Recupere (Nome = "Uso_JiParana"); // Criao do novo PI desmat = Novo (Nome = "Desmat_JiParana", ResX= 30, ResY = 30, Escala = 100000); // Parte 3 - Operao // Reclassificao desmat= Reclassifique (cobertura, tab_recl); } Voltar ao Incio

Operadores Booleanos
Operaes booleanas so de grande utilidade em anlise espacial qualitativa na gerao de dados temticos, a partir de regras aplicadas a dados de entrada de qualquer outro modelo (Temtico, Numrico e Imagem). Entretanto, qualquer tipo de dado pode ser definido por expresses booleanas. No existe um tipo de dados previsto no modelo de dados Spring para representar explicitamente os resultados de operaes booleanas, estas so tomadas como auxiliares na determinao de campos dos diversos modelos. No exemplo abaixo, o operador "Atribua" usado para determinar o plano "adequao", no qual as classes "inadequado" e "adequado", em funo de expresses booleanas. Cada expresso booleana compem-se de expresses de classe que envolvem a grade numrica de "Declividade" e o mapa temtico "Solos". Exemplo: Como exemplo de uso de operaes booleanas, considere a determinao de um mapa de aptido agrcola, a partir dos mapas de solo, declividade, precipitao e do conjunto hipottico de regras expresso na tabela abaixo. REGRAS PARA APTIDO AGRCOLA

Aptido Agrcola Solos Declividade Boa Latossolo Roxo 0-3% Mdia Latossolo Vermelho-Amarelo 3-8% Inapto Areia Quartzosa >8%

Em LEGAL, necessrio especificar um conjunto de condies a serem satisfeitas para cada classe de sada, atravs do operador Atribua. No programa descrito a seguir, um mapa de Aptido Agrcola determinado, com base na topografia e tipo de solo. { Tematico solos ("Solos"), aptidao ("Aptidao"); Numerico decliv ("Altimetria"); decliv = Recupere(Nome = "Declividade"); solos = Recupere (Nome = "Mapa de Solos"); aptidao = Novo (Nome = "AptidaoAgricola", ResX=50, ResY=50, Escala = 50000); aptidao= Atribua { "Boa" : solo == "LatosoloRoxo" && decliv.>= O && decliv < 3" ), "Media" : solo == "LatosolVeAm" && decliv.>= 3 && decliv < 8" ), "Inapto" : Outros) };

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 7 de 9

} Voltar ao Incio

Operador Condicional
Uma expresso condicional baseia-se na avaliao de uma expresso booleana para decidir entre duas expresses alternativas de um mesmo tipo, que deve ser avaliada para obteno do resultado final, segundo a sintaxe expressao_booleana ? expressao1 : expresso2 Exemplo: Restrio de uma imagem TM a uma regio descrita por expresso booleana: { // Exemplo de como Mascarar uma Imagem Imagem tm5, tm5M ("Imagens-TM"); Tematico masc ("Fazendas"); tm5 = Recupere(Nome = "Banda-5"); masc = Recupere (Nome = "Mapa_Fazendas"); tm5M = Novo(Nome="Imagem_Fazendas", ResX=100, ResY=100); // Operacao tm5M = masc == "Fazendas-Gado" ? tm5 : Imagem(255) ; } O programa acima recorta (mascara) a imagem de satlite "tm5, apenas nas regies onde existe a classe "Fazenda-Gado" do plano de informao "Fazendas". Como as expresses alternativas devem ser de tipo Imagem neste caso, o valor 255 deve ser "maqueado" como uma imagem. Ao ser instanciada a varivel tm5M pelo operador Novo, um novo plano de informao foi efetivamente criado, contendo uma imagem "em branco", isto , com valor 255 associado a cada um de seus pixels, isso nos oferece uma alternativa para a operao do programa acima dada pela expresso: tm5M = ( masc == "Fazendas-Gado" ) ? tm5 : tm5M ; Na verdade as expresses do tipo Imagem usadas como alternativas do exemplo acima so as mais simples possveis, consistindo de apenas nomes de variveis ou nmeros. Expresses mais complexas poderiam ser usadas, considere, por exemplo a obtencao no apenas de um simples recorte das regies de fazendas de gado, mas sim de uma imagem contendo os ndices de vegetao em tais imagens. A operao seria similar a: ivdn = ( masc == "Fazendas-Gado" ) ? ( tm3 - tm4 ) / ( tm3 + tm4 ) : ivdn ; Novas expresses condicionais podem ser usadas tambm como expresses alternativas, permitindo a definio de uma vasta classe de operaes, no exemplo acima poderamos estar interessados em Fazendas-Gado de todos os estados da regio sul e Fazendas-Agricolas da regio norte do pais, representados em um mapa temtico de regies do Brasill. A operao poderia ser descrita de uma maneira similar a: ivdn = ( masc == "Fazendas-Gado" ) ? ( tm3 - tm4 ) / ( tm3 + tm4 ) : ( regiao == "Sul" ) ? Imagem ( 128 ) : Imagem ( 255 ) ;

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 8 de 9

Voltar ao Incio

Operaes de Vizinhana
Em Legal possvel realizar muitas operaes com base no acesso, e envolvimento em operaes, das posies vizinhas cada posio de uma representao matricial que se deseja caracterizar. So referenciadas por um par de coordenadas relativas, que indica valores de deslocamento em termos de nmero de linhas e colunas. Por exemplo: variavel [i, j] Os ndices i e j referem-se ao deslocamento relativo cada posio numa representao matricial, em termos do numero de linhas e colunas. Podem ser aplicados a qualquer varivel associada a planos matriciais envolvidos em uma expresso pontual genrica. No exemplo abaixo uma grade numrica gerada, e a cada posio atribudo o valor 1, sempre que alguma, entre as posies vizinhas (acima, abaixo, esquerda ou direita), numa grade numrica de Altitudes, for de maior valor. Exemplo: { Numerico descen, altitude ("Altimetria"); altitude = Recupere (Nome = "Altitudes"); descen = Novo (Nome="Descendentes", ResX=25, ResY=25, Escala=100000, Min=0, Max=255) ; descen = altitude < altitude[1,1] || altitude < altitude[1,0] || altitude < altitude[1,-1] || altitude < altitude[0,1] ? 1 : 0 ; } A posio de referncia a cada passo da gerao do resultado, corresponde posio de ndices "[0,0]", que normalmente expressa sem ndices, como pode ser observado no exemplo acima (ondel a varivel "altitude" aparece sem ndices). Voltar ao Incio

Operaes Zonais
Atributos de dados do modelo Objeto podem ser envolvidos em expresses da linguagem, graas ao mecanismo adotado para representar sua distribuio, baseado no conceito de mapa cadastral. Mapas cadastrais oferecem suporte representao de objetos em diferentes escalas, e so categorizados no ambiente Spring atravs do modelo Cadastral. Os elementos de um tal mapa so dados sob a forma de polgonos, linhas e pontos que podem estar associados a objetos de interesse, de uma maneira semelhante que define um plano de informao qualquer. A principal finalidade associada s expresses envolvendo objetos cadastrais, est relacionada a seu uso junto classe de operadores Zonais, o operador Espacialize, o operador Atualize e o FatieAtributo, que atuam sobre atributos de Objetos. O operador FatieAtributo mapeia, atravs de uma tabela de Fatiamento, os valores associados a algum atributo numrico de Objetos associados um mapa de categoria Cadastral e cuja representao no Spring sempre vetorial. O operador Espacialize permite a gerao de mapas temticos ou de grades numricas a partir de atributos numricos ou textuais de objetos cadastrais. Os operadores Zonais efetuam sumarizaes de valores resultantes da avaliao de expresses temticas,

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008

SPRING - Operaes em Legal

Pgina 9 de 9

numricas, imagens e booleanas.envolvendo um ou mais planos de informao, sobre regies delimitadas por zonas dadas por expresses booleanas ou por mapas cadastrais. Tais sumarizaes correspondem a estatsticas simples, tais como: Maioria, Maximo, Media, Variedade etc. O operador Atualize mapeia valores resultantes de operadores zonais, em atributos de objetos cadastrais, permitindo a extrao de resultados sob a forma de atributos em tabelas de bancos de dados. No exemplo abaixo, o atributo "DECLIVE" do objeto "Quadras" atualizado partir de valores mdios obtidos atravs de valores de declividade fornecidos pela grade numrica "Declividade", sobre as zonas definidas pelos polgonos de um mapa cadastral, associadas s instncias do objeto. Exemplos: { Objeto zonas ("Quadras"); Cadastral cad ("Cad_Urbano"); Numerico decliv ("Altimetria"); cad = Recupere (Nome = "Mapa_quadras"); decliv = Recupere (Nome = "Declividade"); zonas. "DECLIVE" = MediaZonal (decliv, zonas OnMap cad ); } O mesmo efeito do programa acima pode ser obtido atravs do operador Atualiza combinado com o de MediaZonal { ... zonas. "DECLIVE" = Atualize (decliv, zonas OnMap cad, MediaZonal); } Voltar ao Incio

file://C:\Arquivos%20de%20programas\spring50Beta4_Port\helpport\legal4.htm

09/06/2008