{-| Module: Data.Astro.Planet Description: Planet calculations Copyright: Alexander Ignatyev, 2016 Planet calculations. = Example === /Initialisation/ @ import Data.Astro.Time.JulianDate import Data.Astro.Coordinate import Data.Astro.Types import Data.Astro.Effects import Data.Astro.CelestialObject.RiseSet import Data.Astro.Planet ro :: GeographicCoordinates ro = GeoC (fromDMS 51 28 40) (-(fromDMS 0 0 5)) dt :: LocalCivilTime dt = lctFromYMDHMS (DH 1) 2017 6 25 10 29 0 today :: LocalCivilDate today = lcdFromYMD (DH 1) 2017 6 25 jupiterDetails :: PlanetDetails jupiterDetails = j2010PlanetDetails Jupiter earthDetails :: PlanetDetails earthDetails = j2010PlanetDetails Earth jupiterPosition :: JulianDate -> EquatorialCoordinates1 jupiterPosition = planetPosition planetTrueAnomaly1 jupiterDetails earthDetails @ === /Calcaulate Coordinates/ @ jupiterEC1 :: EquatorialCoordinates1 jupiterEC1 = jupiterPosition (lctUniversalTime dt) -- EC1 {e1Declination = DD (-4.104626810672402), e1RightAscension = DH 12.863365504382228} jupiterHC :: HorizonCoordinates jupiterHC = ec1ToHC ro (lctUniversalTime dt) jupiterEC1 -- HC {hAltitude = DD (-30.67914598469227), hAzimuth = DD 52.29376845044007} @ === /Calculate Distance/ @ jupiterDistance :: AstronomicalUnits jupiterDistance = planetDistance1 jupiterDetails earthDetails (lctUniversalTime dt) -- AU 5.193435872521039 @ === /Calculate Angular Size/ @ jupiterAngularSize :: DecimalDegrees jupiterAngularSize = planetAngularDiameter jupiterDetails jupiterDistance -- DD 1.052289877865987e-2 toDMS jupiterAngularSize -- (0,0,37.88243560317554) @ === /Calculate Rise and Set/ @ verticalShift :: DecimalDegrees verticalShift = refract (DD 0) 12 1012 -- DD 0.5660098245614035 jupiterRiseSet :: RiseSetMB jupiterRiseSet = riseAndSet2 0.000001 jupiterPosition ro verticalShift today -- RiseSet -- (Just (2017-06-25 13:53:27.3109 +1.0,DD 95.88943953535569)) -- (Just (2017-06-25 01:21:23.5835 +1.0,DD 264.1289033612776)) @ -} module Data.Astro.Planet ( Details.Planet(..) , Details.PlanetDetails(..) , Details.j2010PlanetDetails , Mechanics.planetTrueAnomaly1 , Mechanics.planetPosition , Mechanics.planetPosition1 , Mechanics.planetDistance1 , Mechanics.planetAngularDiameter , Mechanics.planetPhase1 , Mechanics.planetBrightLimbPositionAngle ) where import qualified Data.Astro.Planet.PlanetDetails as Details import qualified Data.Astro.Planet.PlanetMechanics as Mechanics