module Data.Astro.Moon.MoonDetails
(
MoonDetails(..)
, MoonDistanceUnits(..)
, j2010MoonDetails
, mduToKm
)
where
import Data.Astro.Types (DecimalDegrees)
import Data.Astro.Time.Epoch (j2010)
import Data.Astro.Time.JulianDate (JulianDate(..))
data MoonDetails = MoonDetails {
mdEpoch :: JulianDate
, mdL :: DecimalDegrees
, mdP :: DecimalDegrees
, mdN :: DecimalDegrees
, mdI :: DecimalDegrees
, mdE :: Double
, mdA :: Double
, mdBigTheta :: DecimalDegrees
, mdPi :: DecimalDegrees
} deriving (Show)
newtype MoonDistanceUnits = MDU Double deriving (Show)
j2010MoonDetails = MoonDetails j2010 91.929336 130.143076 291.682547 5.145396 0.0549 384401 0.5181 0.9507
mduToKm :: MoonDistanceUnits -> Double
mduToKm (MDU p) = p * (mdA j2010MoonDetails)