-- Exemplo 1 module Main(main) where import Foreign.C.String --import TerraHS import Algebras.Base import Algebras.Base.Operations import TerraHS.TerraLib import TerraHS.Misc.Generic import TerraHS.Misc.Object import TerraHS.TerraLib.TeDatabase --import Spatial2 import Algebras.Functor.Category import Algebras.Functor.GeoModel import Algebras.Model host = "localhost"; dbname = "rondonia"; user = "root"; password = "root"; layername ="recorte91_pol_2"; fclass :: Value -> Value fclass (DbValue v) | v < 0.2 = (StValue "1") | ((v > 0.2) && (v < 0.5)) = (StValue "2") | (v > 0.5) && (v < 0.8) = (StValue "3") | v > 0.8 = (StValue "4") | otherwise = (StValue "0") soma :: Value -> Value -> Value soma (DbValue v1) (DbValue v2) = (DbValue (v1+v2)) main:: IO() main = do -- abre o banco de dados db <- open (TeMySQL host user password dbname) -- carrega o modelo f1 <- (loadModel db layername)::(IO Layer) let fdef = fun f1 "FERT_ALTA" -- fdef é um spatial value let fc = lift1 fclass fdef -- classifica let fl = toLayer "teste" fc -- crio uma função do tipo Layer para ser salva no banco --let fout = foldr1 (lift2 soma) (cod fdef) let fout = foldr1 (+) (cod fdef) let fout2 = lift2 (+) fdef fdef -- classifica --print (cod fdef) print (cod fout2) storeModel db "novo42" fl close db