module Algebras.Base.Raster
(
loadRasterFile, loadRaster, Rasters (..), importRaster, importRasterWParameter
)
where
import TerraHS.Misc.Databases
import TerraHS.TerraLib.TeRaster
import TerraHS.TerraLib.TeLayer
import TerraHS.TerraLib.TeDatabase
import Foreign.C.String
import qualified Foreign.Ptr (Ptr)
import TerraHS.Misc.Object
class Rasters r where
getValues :: r a -> [[a]]
setValues :: [[a]] -> r a
instance Rasters TeRaster where
getValues (TeRaster rs) = rs
setValues rs = (TeRaster rs)
instance Databases (TeRaster Double) TeDatabase where
retrieve db ln = do
layer <- loadLayer db ln
ptr <- getRaster layer
raster <- fromPointer ptr
return raster
store db name rs = do
l <- newCString name
rsptr <- new rs
teimportraster l rsptr db