{-| Module: Data.Astro.Effects.Aberration Description: Calculation effects of aberration. Copyright: Alexander Ignatyev, 2016 Calculation effects of aberration. -} module Data.Astro.Effects.Aberration ( includeAberration ) where import Data.Astro.Types (DecimalDegrees, toRadians, fromDMS) import Data.Astro.Time.JulianDate (JulianDate) import Data.Astro.Coordinate (EclipticCoordinates(..)) -- | Includes aberration effect. -- It takes true Ecliptic Coordinates, -- the Sun's longitude at the given Julian Day (the third parameter). -- Returns apparent ecliptic coordinates. -- The Sun's longitude can be calculated using 'sunEclipticLongitude1' or 'sunEclipticLongitude2' of "Data.Astro.Sun" module. includeAberration :: EclipticCoordinates -> JulianDate -> DecimalDegrees -> EclipticCoordinates includeAberration (EcC beta lambda) jd sunLambda = let lambdaDiff = toRadians $ sunLambda - lambda beta' = toRadians beta dLambda = -20.5 * (cos lambdaDiff) / (cos beta') dBeta = -20.5 * (sin lambdaDiff) * (sin beta') in EcC (beta + fromDMS 0 0 dBeta) (lambda + fromDMS 0 0 dLambda)