# Data.Astro.Sun: exported symbols usage examples

## Symbols

• RiseSet No usage example found for this symbol :( Collapse [-]
equationOfTime No usage example found for this symbol :( Collapse [-]
j2010SunDetails No usage example found for this symbol :( Collapse [-]
solarElongation No usage example found for this symbol :( Collapse [-]
sunAngularSize No usage example found for this symbol :( Collapse [-]
sunDetails See 4 Occurences [+] Collapse [-]
Found in Data.Astro.Moon from the package astro
```-- | Calculate the Moon's angular size at the given distance.
moonAngularSize :: MoonDistanceUnits -> DecimalDegrees
moonAngularSize (MDU p) = (mdBigTheta j2010MoonDetails) / (DD p)

-- | Calculates the Moon's horizontal parallax at the given distance.
moonHorizontalParallax :: MoonDistanceUnits -> DecimalDegrees
moonHorizontalParallax (MDU p) = (mdPi j2010MoonDetails) / (DD p)

-- | Calculates the Moon's phase (the area of the visible segment expressed as a fraction of the whole disk)
-- at the given universal time.
moonPhase :: MoonDetails -> JulianDate -> Double
moonPhase md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ ml _ _ = correctedMoonQuantities lambdaS ms mmq
d = toRadians \$ ml - lambdaS
```

Found in Data.Astro.Moon from the package astro
```-- to obtain the distance to the Moon you can use `moonDistance1` function.
-- `moonPosition2` takes into account parallax effect.
moonPosition2 :: MoonDetails -> MoonDistanceUnits -> GeographicCoordinates -> Double -> JulianDate -> EquatorialCoordinates1
moonPosition2 md distance coords height jd =
let p = moonPosition1 md jd
in parallax coords height (kmToAU \$ mduToKm distance) jd p

-- | Calculates the Moon's Distance at the given julian date.
-- Returns distance to the Moon
-- moonDistance1 :: JulianDate -> MoonDistanceUnits
-- you can use 'mduToKm' (defined in "Data.Astro.Moon.MoonDetails") to convert result to kilometers
moonDistance1 :: MoonDetails -> JulianDate -> MoonDistanceUnits
moonDistance1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
cmq = correctedMoonQuantities lambdaS ms mmq
mm' = toRadians \$ mqAnomaly cmq
```

Found in Data.Astro.Moon from the package astro
```import Data.Astro.Moon.MoonDetails (MoonDetails(..), MoonDistanceUnits(..), j2010MoonDetails, mduToKm)
import Data.Astro.Effects (parallax)

-- | Reduce the value to the range [0, 360)
reduceDegrees :: DecimalDegrees -> DecimalDegrees
reduceDegrees = U.reduceToZeroRange 360

-- | Calculate Equatorial Coordinates of the Moon with the given MoonDetails and at the given JulianDate.
--
-- It is recommended to use 'j2010MoonDetails' as a first parameter.
moonPosition1 :: MoonDetails -> JulianDate -> EquatorialCoordinates1
moonPosition1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ lm'' _ nm' = correctedMoonQuantities lambdaS ms mmq
```

Found in Data.Astro.Moon from the package astro
```  , moonDistance1
, moonAngularSize
, moonHorizontalParallax
, moonPhase
, moonBrightLimbPositionAngle
)

where

import qualified Data.Astro.Utils as U
import Data.Astro.Time.JulianDate (JulianDate(..), numberOfDays)
import Data.Astro.Coordinate (EquatorialCoordinates1(..), EclipticCoordinates(..), eclipticToEquatorial)
import Data.Astro.Planet (planetBrightLimbPositionAngle)
import Data.Astro.Sun (sunDetails, sunMeanAnomaly2, sunEclipticLongitude2)
import Data.Astro.Moon.MoonDetails (MoonDetails(..), MoonDistanceUnits(..), j2010MoonDetails, mduToKm)
import Data.Astro.Effects (parallax)

-- | Reduce the value to the range [0, 360)
```

sunDistance No usage example found for this symbol :( Collapse [-]
sunEclipticLongitude1 No usage example found for this symbol :( Collapse [-]
sunEclipticLongitude2 See 4 Occurences [+] Collapse [-]
Found in Data.Astro.Moon from the package astro
```moonAngularSize :: MoonDistanceUnits -> DecimalDegrees
moonAngularSize (MDU p) = (mdBigTheta j2010MoonDetails) / (DD p)

-- | Calculates the Moon's horizontal parallax at the given distance.
moonHorizontalParallax :: MoonDistanceUnits -> DecimalDegrees
moonHorizontalParallax (MDU p) = (mdPi j2010MoonDetails) / (DD p)

-- | Calculates the Moon's phase (the area of the visible segment expressed as a fraction of the whole disk)
-- at the given universal time.
moonPhase :: MoonDetails -> JulianDate -> Double
moonPhase md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ ml _ _ = correctedMoonQuantities lambdaS ms mmq
d = toRadians \$ ml - lambdaS
f = 0.5 * (1 - cos d)
```

Found in Data.Astro.Moon from the package astro
```-- `moonPosition2` takes into account parallax effect.
moonPosition2 :: MoonDetails -> MoonDistanceUnits -> GeographicCoordinates -> Double -> JulianDate -> EquatorialCoordinates1
moonPosition2 md distance coords height jd =
let p = moonPosition1 md jd
in parallax coords height (kmToAU \$ mduToKm distance) jd p

-- | Calculates the Moon's Distance at the given julian date.
-- Returns distance to the Moon
-- moonDistance1 :: JulianDate -> MoonDistanceUnits
-- you can use 'mduToKm' (defined in "Data.Astro.Moon.MoonDetails") to convert result to kilometers
moonDistance1 :: MoonDetails -> JulianDate -> MoonDistanceUnits
moonDistance1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
cmq = correctedMoonQuantities lambdaS ms mmq
mm' = toRadians \$ mqAnomaly cmq
ec = toRadians \$ centreEquation mm'
```

Found in Data.Astro.Moon from the package astro
```import Data.Astro.Effects (parallax)

-- | Reduce the value to the range [0, 360)
reduceDegrees :: DecimalDegrees -> DecimalDegrees
reduceDegrees = U.reduceToZeroRange 360

-- | Calculate Equatorial Coordinates of the Moon with the given MoonDetails and at the given JulianDate.
--
-- It is recommended to use 'j2010MoonDetails' as a first parameter.
moonPosition1 :: MoonDetails -> JulianDate -> EquatorialCoordinates1
moonPosition1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ lm'' _ nm' = correctedMoonQuantities lambdaS ms mmq
i = toRadians \$ mdI md
```

Found in Data.Astro.Moon from the package astro
```  , moonDistance1
, moonAngularSize
, moonHorizontalParallax
, moonPhase
, moonBrightLimbPositionAngle
)

where

import qualified Data.Astro.Utils as U
import Data.Astro.Time.JulianDate (JulianDate(..), numberOfDays)
import Data.Astro.Coordinate (EquatorialCoordinates1(..), EclipticCoordinates(..), eclipticToEquatorial)
import Data.Astro.Planet (planetBrightLimbPositionAngle)
import Data.Astro.Sun (sunDetails, sunMeanAnomaly2, sunEclipticLongitude2)
import Data.Astro.Moon.MoonDetails (MoonDetails(..), MoonDistanceUnits(..), j2010MoonDetails, mduToKm)
import Data.Astro.Effects (parallax)

-- | Reduce the value to the range [0, 360)
```

sunMeanAnomaly2 See 4 Occurences [+] Collapse [-]
Found in Data.Astro.Moon from the package astro
```moonAngularSize (MDU p) = (mdBigTheta j2010MoonDetails) / (DD p)

-- | Calculates the Moon's horizontal parallax at the given distance.
moonHorizontalParallax :: MoonDistanceUnits -> DecimalDegrees
moonHorizontalParallax (MDU p) = (mdPi j2010MoonDetails) / (DD p)

-- | Calculates the Moon's phase (the area of the visible segment expressed as a fraction of the whole disk)
-- at the given universal time.
moonPhase :: MoonDetails -> JulianDate -> Double
moonPhase md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ ml _ _ = correctedMoonQuantities lambdaS ms mmq
d = toRadians \$ ml - lambdaS
f = 0.5 * (1 - cos d)
in f
```

Found in Data.Astro.Moon from the package astro
```moonPosition2 :: MoonDetails -> MoonDistanceUnits -> GeographicCoordinates -> Double -> JulianDate -> EquatorialCoordinates1
moonPosition2 md distance coords height jd =
let p = moonPosition1 md jd
in parallax coords height (kmToAU \$ mduToKm distance) jd p

-- | Calculates the Moon's Distance at the given julian date.
-- Returns distance to the Moon
-- moonDistance1 :: JulianDate -> MoonDistanceUnits
-- you can use 'mduToKm' (defined in "Data.Astro.Moon.MoonDetails") to convert result to kilometers
moonDistance1 :: MoonDetails -> JulianDate -> MoonDistanceUnits
moonDistance1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
cmq = correctedMoonQuantities lambdaS ms mmq
mm' = toRadians \$ mqAnomaly cmq
ec = toRadians \$ centreEquation mm'
e = mdE md
```

Found in Data.Astro.Moon from the package astro
```-- | Reduce the value to the range [0, 360)
reduceDegrees :: DecimalDegrees -> DecimalDegrees
reduceDegrees = U.reduceToZeroRange 360

-- | Calculate Equatorial Coordinates of the Moon with the given MoonDetails and at the given JulianDate.
--
-- It is recommended to use 'j2010MoonDetails' as a first parameter.
moonPosition1 :: MoonDetails -> JulianDate -> EquatorialCoordinates1
moonPosition1 md ut =
let sd = sunDetails ut
lambdaS = sunEclipticLongitude2 sd
ms = sunMeanAnomaly2 sd
mmq = meanMoonQuantities md ut
MQ lm'' _ nm' = correctedMoonQuantities lambdaS ms mmq
i = toRadians \$ mdI md
y = (sin a) * (cos i)
```

Found in Data.Astro.Moon from the package astro
```  , moonDistance1
, moonAngularSize
, moonHorizontalParallax
, moonPhase
, moonBrightLimbPositionAngle
)

where

import qualified Data.Astro.Utils as U
import Data.Astro.Time.JulianDate (JulianDate(..), numberOfDays)
import Data.Astro.Coordinate (EquatorialCoordinates1(..), EclipticCoordinates(..), eclipticToEquatorial)
import Data.Astro.Planet (planetBrightLimbPositionAngle)
import Data.Astro.Sun (sunDetails, sunMeanAnomaly2, sunEclipticLongitude2)
import Data.Astro.Moon.MoonDetails (MoonDetails(..), MoonDistanceUnits(..), j2010MoonDetails, mduToKm)
import Data.Astro.Effects (parallax)

-- | Reduce the value to the range [0, 360)
```

sunPosition1 No usage example found for this symbol :( Collapse [-]
sunPosition2 No usage example found for this symbol :( Collapse [-]
sunRiseAndSet No usage example found for this symbol :( Collapse [-]
SunDetails No usage example found for this symbol :( Collapse [-]