module Gis.Saga.Types where
import qualified Data.Map as M
-- | Parameters passed in with command-line
type CmdPars = M.Map String String
-- | Information needed to call saga_cmd
data SagaCmd = SagaCmd {
sLib :: String -- ^ library to call
,sMod :: String -- ^ module number
,sInOutKey:: (String,String) -- ^ Keys to use for input and output
,sParas :: ParaMap -- ^ Parameters in addition to input and output
,sPre :: Maybe (FilePath -> FilePath -> IO ()) -- ^ Pre-processing (input/output-file)
,sPost :: Maybe (FilePath -> FilePath -> IO ()) -- ^ Post-processing (input/output-file)
,sOutFile :: FilePath -- ^ Output-file
,sInFile :: FilePath -- ^ Input-file
}
-- | Parameter-Map in a 'SagaCmd'
type ParaMap = M.Map String (String,String)
-- | Saga Command which takes only one input-, and one output-file
type SagaIoCmd = FilePath -> FilePath -> SagaCmd
-- | SagaIO-Command with output file extension
type SagaIoCmdExt = (SagaIoCmd, String)
-- | Data-base with available Saga-Input-Output-commands
type SagaIoCmdDB = M.Map String SagaIoCmdExt
-- | Node-map for form-to-combinations
type NodeMap = M.Map String ([String],[String])