Ejemplos de Programas LEGAL

Presentamos a continuación algunos ejemplos de programas en el LEGAL.

EJEMPLO 1

 
// Ejemplo de cruzamiento entre 2 planos temáticos
{
//Definiendo las variables y sus categorías
Temático suelos("Suelos"), pend("Pendiente"), apti("Aptitud");
 
//Recuperando planos
pend=Recupere (Nombre = "pend");
suelos=Recupere (Nome = "suelos");
 
//Creando un nuevo plano
apti=Nuevo(Nombre="aptidao", ResX=200, ResY=200, Escala=100000);
 
//Definiendo las relaciones entre clases
apti = Atribua (CategoriaFim = "Aptidao")
           {
   "buena": (suelo.Classe == "Cd1" && pend.Clase == "0-3"),
   "media": (suelo.Classe == "Cd1" && pend.Clase == "3-8"),
   "baja": (suelo.Classe == "Cd1" && pend.Clase == "8-20")
           };
}


EJEMPLO 2

 
//  Ejemplo de clasificación utilizando datos de EMBRAPA-SOLOS
{
Numérico grd ("Decliv_numerico");
Temático fat ("declividade");
Tabela fati (Fatiamento);
 
grd = Recupere(Nome="decliv-30x30");
fat = Novo(Nome= "decli_fat_30x30", ResX=30, ResY=30, Escala=100000);
 
fati=Nuevo(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);
}


EJEMPLO 3

 
// Ejemplo de Ponderación utilizando los datos de EMBRAPA-SOLOS
{
Temático solo("solos");
Numérico solero ("Erodibilidade");
Imagen solima ("Imagen");
Tabla pond (Ponderación) ;
 
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);
}


EJEMPLO 4

 
{
Tematico  uso, recl ("usoactual");
Tabla juntar (Reclasificacion);
 
uso = Recupere (Nombre="usoatual");
recl = Nuevo (Nombre= "recla_alg", ResX=30, ResY=30, Escala = 100000);
juntar = Nuevo (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",
   "erosion" : "erosion");
 
recl = Reclasifique (uso, juntar); 
}


EJEMPLO 5

 
// Ejemplo de conversión de Imagen-ND para Imagen-Reflectancia aparente por la
// ecuación general propuesta por Markham & Baker (1987):
{
Imagen IV255, ima3, ima4, tm3, tm4,IV2("Imagen_TM");
Numérico re3("Numérico"), re4("Numérico"), IVNAl ("Numérico") ;
 
tm3 = Recupere (Nombre="tm3_030895");
tm4 = Recupere (Nombre="tm4_030895");
 
re3=Nuevo(Nombre="tm3_refl",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
re4=Nuevo(Nombre="tm4_refl",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
 
IVNAl=Nuevo(Nombre="IV_Refalg",ResX=30,ResY=30,Escala=100000,Min=0,Max=50);
IV2 = Nuevo (Nombre = "IVDN_RefAlg", ResX = 30, ResY = 30);
IV255 = Novo (Nombre = "IV255", ResX = 30, ResY = 30);
 
ima3 = Novo (Nombre = "ima3reflect", ResX = 30, ResY = 30);
ima4 = Novo (Nombre = "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= Imagen (re3 * 255);
ima4= Imagen (re4 * 255);
 
IVNAl = (re4-re3)/(re4+re3);
IV2= Imagen ((re4-re3)/(re4+re3));
IV255 = Imagen (255*((re4-re3)/(re4+re3)));
}


EJEMPLO 6

 
// Ejemplo de índice de vegetación a partir de TM
{
Image tm3, tm4, viimg("Imagen_TM");
Digital ndvi("Numérico");
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);
}

 

Vea como ejecutar un programa en LEGAL

  Vea sobre LEGAL en SPRING