Apresentamos a seguir alguns exemplos de programas em LEGAL.
EXEMPLO 1
// Exemplo de cruzamento entre 2 planos temáticos
{
//Definindo as variáveis e suas categorias
Tematico solo("Solos"), decl("Declividade"), apti("Aptidao");
//Recuperando planos
decl=Recupere (Nome = "dec");
solo=Recupere (Nome = "soil");
//Criando novo plano
apti=Novo(Nome="aptidao", ResX=200, ResY=200, Escala=100000);
//Definindo as relações entre classes
apti = Atribua (CategoriaFim = "Aptidao")
{
"boa": (solo.Classe == "Cd1" && decl.Classe == "0-3"),
"media": (solo.Classe == "Cd1" && decl.Classe == "3-8"),
"baixa": (solo.Classe == "Cd1" && decl.Classe == "8-20")
};
}
EXEMPLO 2
// Exemplo de fatiamento utilizando dados da EMBRAPA-SOLOS
{
Numerico grd ("Decliv_numerico");
Tematico fat ("declividade");
Tabela fati (Fatiamento);
grd = Recupere(Nome="decliv-30x30");
fat = Novo(Nome= "decli_fat_30x30", ResX=30, ResY=30, Escala=100000);
fati=Novo(CategoriaIni="Decliv_numerico",CategoriaFim = declividade",
[0.0,3.0] : "A-0a3",
[3.0, 8.0] : "B-3a8",
[8.0, 12.0] : "C-8a12",
[12.0, 20.0] : "D-12a20",
[20.0, 45.0] : "E-20a45",
[45.0 ,90.0] : "F-45",
[90 , 900] : "F-45");
fat = Fatie(grd,fati);
}
EXEMPLO 3
// Exemplo de Ponderação utilizando os dados da EMBRAPA-SOLOS
{
Tematico solo("solos");
Numerico solero ("Erodibilidade");
Imagem solima ("Imagem");
Tabela pond (Ponderacao) ;
solo = Retrieve (Nome = "solos");
solero=Novo(Nome="soloPond",ResX=30,ResY=30,Escala=100000,Min=0,Max=100);
solima = Novo (Nome ="soloPond", ResX=30, ResY=30);
pond = Novo (CategoriaIni = "solos", CategoriaFim = "Erodibilidade",
"LV1" : 0,
"AR" : 50,
"LV2" : 100,
"PV1" : 150);
solero = Pondere (solo,pond );
solima = Imagem (solero);
}
EXEMPLO 4
{
Tematico uso, recl ("usoatual");
Tabela juntar (Reclassificacao);
uso = Recupere (Nome="usoatual");
recl = Novo (Nome= "recla_alg", ResX=30, ResY=30, Escala = 100000);
juntar = Novo (CategoriaIni = "usoatual", CategoriaFim = "usoatual",
"mata": "Veg_nat",
"cap+mato": "Veg_nat",
"capoeira" : "Veg_nat",
"acude": "agua",
"cultura": "agricola",
"capoeira+cult" : "agricola",
"pasto": "pastoril",
"pasto+pastosujo": "pastoril",
"pasto+cult": "pastoril",
"pasto": "pastoril",
"pastosujo" : "pastoril",
"eucalipto" : "silvicola",
"escola" : "urbano",
"terraco" : "terraco",
"erosao" : "erosao");
recl = Reclassifique (uso, juntar);
}
EXEMPLO 5
// Exemplo de conversão de Imagem-ND para Imagem-Reflectância aparente pela
// equação geral proposta por Markham & Baker (1987):
{
Imagem IV255, ima3, ima4, tm3, tm4,IV2("Imagem_TM");
Numerico re3("Numerico"), re4("Numerico"), IVNAl ("Numerico") ;
tm3 = Recupere (Nome="tm3_030895");
tm4 = Recupere (Nome="tm4_030895");
re3=Novo(Nome="tm3_refl",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
re4=Novo(Nome="tm4_refl",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
IVNAl=Novo(Nome="IV_Refalg",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
IV2 = Novo (Nome = "IVDN_RefAlg", ResX = 30, ResY = 30);
IV255 = Novo (Nome = "IV255", ResX = 30, ResY = 30);
ima3 = Novo (Nome = "ima3reflect", ResX = 30, ResY = 30);
ima4 = Novo (Nome = "ima4reflect", ResX = 30, ResY = 30);
c1 = 1.0119;
c2 = 0.607735;
re3=Digital((PI*(C1^2)/155.7*C2)*((tm3/255)*(20.43-(-0.12))+(-0.12)));
re4=Digital((PI*(C1^2)/104.7*C2)*((tm4/255)*(20.62-(-0.15))+(-0.15)));
ima3= Imagem (re3 * 255);
ima4= Imagem (re4 * 255);
IVNAl = (re4-re3)/(re4+re3);
IV2= Imagem ((re4-re3)/(re4+re3));
IV255 = Imagem (255*((re4-re3)/(re4+re3)));
}
EXEMPLO 6
// Exemplo de índice de vegetação a partir de TM
{
Image tm3, tm4, viimg("Imagem_TM");
Digital ndvi("Numerico");
Thematic veget("Vegetation");
tm3 = Retrieve (Name = "tm3_86");
tm4 = Retrieve (Name = "tm4_86");
viimg = New (Name = "Vegetation", ResX = 120, ResY = 120);
viimg = 40*((tm4-tm3)/(tm4+tm3))+64;
Tabela slice(Slicing);
slice = New(CategoryOut = "Vegetation",
[0.0,0.2] : "Non_forest",
[0.2,0.5] : "Transition",
[0.5,1.0] : "Forest");
veget = New(Name="SoilCoverage",ResX=120,ResY=120,Scale=250000);
veget = Slice(Digital((tm4-tm3)/(tm4+tm3)), slice);
}
Veja
como executar um programa em LEGAL
Veja
sobre LEGAL no SPRING