-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A parser for SWMM 5 binary .OUT files -- -- The United States Environmental Protection Agency (EPA) Storm Water -- Management Model (SWMM) is a dynamic hydrology-hydraulic water quality -- simulation model for single event or long-term (continuous) simulation -- of runoff quantity and quality from primarily urban areas. SWMM 5, -- which is currently the newest version of SWMM, produces a binary .OUT -- file as its output. SWMMoutGetMB is a SWMM binary reader using the Get -- monad in Haskell to retrieve contents of this binary file and save it -- into a SWMMObject, which can then be used in Haskell programs. @package SWMMoutGetMB @version 0.1.1.1 module Water.SWMM data SWMMParams SWMMParams :: Header -> ObjectIds -> ObjectProperties -> ReportingVariables -> ReportingInterval -> ClosingRecord -> SWMMParams [header] :: SWMMParams -> Header [ids] :: SWMMParams -> ObjectIds [properties] :: SWMMParams -> ObjectProperties [variables] :: SWMMParams -> ReportingVariables [intervals] :: SWMMParams -> ReportingInterval [closingRecord] :: SWMMParams -> ClosingRecord data Header Header :: Int -> Int -> Int -> Int -> Int -> Int -> Int -> Header [headerIdNumber] :: Header -> Int [versionNumber] :: Header -> Int [codeNumber] :: Header -> Int [numberOfSubcatchments] :: Header -> Int [numberOfNodes] :: Header -> Int [numberOfLinks] :: Header -> Int [numberOfPollutants] :: Header -> Int data ObjectIds ObjectIds :: [ByteString] -> [ByteString] -> [ByteString] -> [ByteString] -> [Int] -> ObjectIds [subcatchmentIds] :: ObjectIds -> [ByteString] [nodeIds] :: ObjectIds -> [ByteString] [linkIds] :: ObjectIds -> [ByteString] [pollutantIds] :: ObjectIds -> [ByteString] [concentrationIds] :: ObjectIds -> [Int] data ObjectProperties ObjectProperties :: Properties -> Properties -> Properties -> ObjectProperties [subcatchmentProperties] :: ObjectProperties -> Properties [nodeProperties] :: ObjectProperties -> Properties [linkProperties] :: ObjectProperties -> Properties data ReportingVariables ReportingVariables :: Variables -> Variables -> Variables -> Variables -> ReportingVariables [subcatchmentVariables] :: ReportingVariables -> Variables [nodeVariables] :: ReportingVariables -> Variables [linkVariables] :: ReportingVariables -> Variables [systemVariables] :: ReportingVariables -> Variables data ReportingInterval ReportingInterval :: Double -> Int -> ReportingInterval [startDateTime] :: ReportingInterval -> Double [timeIntervals] :: ReportingInterval -> Int data ValuesForOneDateTime ValuesForOneDateTime :: Double -> [[Float]] -> [[Float]] -> [[Float]] -> [Float] -> ValuesForOneDateTime [dateTimeValue] :: ValuesForOneDateTime -> Double [subcatchmentValue] :: ValuesForOneDateTime -> [[Float]] [nodeValue] :: ValuesForOneDateTime -> [[Float]] [linkValue] :: ValuesForOneDateTime -> [[Float]] [systemValue] :: ValuesForOneDateTime -> [Float] data ClosingRecord ClosingRecord :: Int -> Int -> Int -> Int -> Int -> Int -> ClosingRecord [idBytePosition] :: ClosingRecord -> Int [propertiesBytePosition] :: ClosingRecord -> Int [resultBytePosition] :: ClosingRecord -> Int [numberOfPeriods] :: ClosingRecord -> Int [errorCode] :: ClosingRecord -> Int [closingIdNumber] :: ClosingRecord -> Int data Properties Properties :: Int -> [Int] -> [Float] -> Properties [numberOfProperties] :: Properties -> Int [codeNumberProperties] :: Properties -> [Int] [valueProperties] :: Properties -> [Float] data Variables Variables :: Int -> [Int] -> Variables [numberOfVariables] :: Variables -> Int [codeNumberVariables] :: Variables -> [Int] -- | Get a 4 byte integer getInt :: Get Int -- | Get a string getString :: Get ByteString getHeader :: Get Header getObjectIds :: Header -> Get ObjectIds getProperties :: Int -> Get Properties getObjectProperties :: Header -> Get ObjectProperties getVariables :: Get Variables getReportingVariables :: Get ReportingVariables getReportingInterval :: Get ReportingInterval getSWMMTopParams :: Get (Header, ObjectIds, ObjectProperties, ReportingVariables, ReportingInterval) getClosingRecord :: Get ClosingRecord -- | Extract the SWMM parameters from the file, and return the remainder of -- the binary file (containing only the result data now) as a lazy -- bytestring. If the bytestring is small, it can be forced and held in -- memory, otherwise it needs to be streamed strictly. extractSWMMParams :: FilePath -> IO (SWMMParams, ByteString) getSplitValues :: Int -> Int -> Get [[Float]] getValues :: Int -> Get [Float] getResults :: Header -> ReportingVariables -> Get ValuesForOneDateTime instance GHC.Classes.Eq Water.SWMM.SWMMParams instance GHC.Show.Show Water.SWMM.SWMMParams instance GHC.Classes.Eq Water.SWMM.ReportingVariables instance GHC.Show.Show Water.SWMM.ReportingVariables instance GHC.Classes.Eq Water.SWMM.Variables instance GHC.Show.Show Water.SWMM.Variables instance GHC.Classes.Eq Water.SWMM.ObjectProperties instance GHC.Show.Show Water.SWMM.ObjectProperties instance GHC.Classes.Eq Water.SWMM.Properties instance GHC.Show.Show Water.SWMM.Properties instance GHC.Classes.Eq Water.SWMM.ClosingRecord instance GHC.Show.Show Water.SWMM.ClosingRecord instance GHC.Show.Show Water.SWMM.ValuesForOneDateTime instance GHC.Classes.Eq Water.SWMM.ReportingInterval instance GHC.Show.Show Water.SWMM.ReportingInterval instance GHC.Classes.Eq Water.SWMM.ObjectIds instance GHC.Show.Show Water.SWMM.ObjectIds instance GHC.Classes.Eq Water.SWMM.Header instance GHC.Show.Show Water.SWMM.Header instance GHC.Classes.Ord Water.SWMM.ValuesForOneDateTime instance GHC.Classes.Eq Water.SWMM.ValuesForOneDateTime