AA+ v2.53

Welcome to AA+, a collection of freeware C++ classes which provide an implementation of the algorithms as presented in the book "Astronomical Algorithms" (2nd Edition) by Jean Meeus.

Example areas covered include the positions of the planets, comets, minor planets and the moon, calculation of times of Rising, Setting and Transit, calculation of times of Equinoxes and Solstices plus calculation of the positions of the moons of Jupiter and Saturn as well as many other algorithms presented in the book.

 

Features
Usage
Copyright
History
Class Framework Reference
References
Contacting the Author

 

 

 

Features

 

 

 

Usage

 

 

 

Copyright

 

 

 

History

v2.53 (7 October 2023)

v2.52 (12 July 2023)

v2.51 (11 July 2023)

v2.50 (16 April 2023)

v2.49 (29 January 2023)

v2.48 (23 December 2022)

2.47 (13 November 2022)

v2.46 (1 October 2022)

v2.45 (28 August 2022)

v2.44 (14 July 2022)

v2.43 (27 March 2022)

v2.42 (20 March 2022)

v2.41 (24 January 2022)

v2.40 (22 December 2021)

v2.39 (22 November 2021)

v2.38 (6 November 2021)

v2.37 (24 October 2021)

v2.36 (12 September 2021)

v2.35 (21 August 2021)

v2.34 (20 August 2021)

v2.33 (11 August 2021)

v2.32 (9 August 2021)

v2.31 (8 July 2021)

v2.30 (5 June 2021)

v2.29 (1 May 2021)

v2.28 (20 April 2021)

v2.27 (2 April 2021)

17 March 2021

v2.26 (12 March 2021)

v2.25 (7 March 2021)

v2.24 (5 February 2021)

v2.23 (10 January 2021)

v2.22 (9 January 2021)

v2.21 (4 December 2020)

v2.20 (23 November 2020)

v2.19 (22 November 2020)

v2.18 (21 November 2020)

v2.17 (11 June 2020)

v2.16 (2 June 2020)

v2.15 (1 June 2020)

v2.14 (29 April 2020)

v2.13 (22 April 2020)

v2.12 (1 January 2020)

v2.11 (10 December 2019)

v2.10 (16 November 2019)

v2.09 (2 November 2019)

v2.08 (22 October 2019)

v2.07 (28 September 2019)

v2.06 (28 September 2019)

v2.05 (8 September 2019)

v2.04 (18 August 2019)

v2.03 (15 July 2019)

v2.02 (13 July 2019)

v2.01 (23 June 2019)

v2.0 (8 June 2019)

v1.99 (16 January 2019)

v1.98 (3 January 2019)

v1.97 (22 September 2018)

v1.96 (24 July 2018)

24 April 2018

v1.95 (19 April 2018)

v1.94 (3 March 2018)

v1.93 (2 March 2018)

v1.92 (20 January 2018)

v1.91 (1 August 2017)

v1.90 (30 July 2017)

v1.80 (15 May 2017)

v1.79 (27 April 2017)

23 April 2017

v1.78 (19 February 2017)

v1.77 (18 February 2017)

v1.76 (12 February 2017)

v1.75 (11 February 2017)

v1.74 (5 February 2017)

v1.73 (16 October 2016)

v1.72 (7 July 2016)

v1.71 (28 April 2016)

v1.70 (10 April 2016)

v1.69 (28 March 2016)

v1.68 (27 March 2016)

v1.67 (20 March 2016)

v1.66 (9 March 2016)

v1.65 (4 January 2016)

v1.64 (31 December 2015)

v1.63 (16 September 2015)

v1.62 (12 July 2015)

v1.61 (5 July 2015)

v1.60 (29 March 2015)

v1.59 (15 February 2015)

v1.58 (12 November 2014)

v1.57 (28 October 2013)

v1.56 (8 September 2013)

v1.55 (4 August 2013)

v1.54 (27 October 2012)

v1.53 (13 October 2012)

v1.52 (12 October 2012)

v1.51 (5 May 2012)

v1.50 (2 May 2012)

v1.49 (1 May 2012)

v1.48 (18 March 2012)

v1.47 (10 September 2011)

v1.46 (8 May 2011)

v1.45 (26 November 2010)

v1.44 (4 July 2010)

v1.43 (3 July 2010)

v1.42 (21 May 2010)

v1.41 (10 May 2010)

v1.40 (30 December 2009)

v1.39 (24 November 2009)

v1.38 (3 October 2009)

v1.37 (30 April 2009)

v1.36 (28 March 2009)

v1.35 (16 March 2009)

v1.34 (12 February 2009)

v1.33 (7 February 2009)

v1.32 (11 November 2008)

v1.31 (26 July 2008)

v1.30 (29 January 2007)

v1.29 (26 January 2007)

v1.28 (25 January 2007)

v1.27 (17 January 2007)

v1.26 (29 November 2006)

23 October 2006

v1.25 (5 June 2006)

18 May 2006

v1.24 (12 May 2006)

1 May 2006

v1.23 (16 November 2005)

v1.22 (5 July 2005)

v1.21 (3 June 2005)

v1.20 (2 June 2005)

v1.19 (13 May 2005)

v1.18 (21 April 2005)

v1.17 (1 February 2005)

v1.16 (31 January 2005)

v1.15 (30 January 2005)

v1.14 (21 January 2005)

v1.13 (31 December 2004)

v1.12 (10 November 2004)

v1.11 (15 October 2004)

v1.10 (17 September 2004)

6 September 2004

v1.09 (15 June 2004)

v1.08 (31 May 2004)

v1.07 (24 May 2004)

27 April 2004

V1.06 (22 February 2004)

V1.05 (22 February 2004)

V1.04 (21 February 2004)

V1.03 (14 February 2004)

V1.02 (9 February 2004)

V1.01 (9 February 2004)

V1.0 (6 February 2004)

 

 

 

Class Framework Reference

The framework consists of the following classes:

 

CAAAberration

CAAAngularSeparation

CAABinaryStar

CAACoordinateTransformation

CAADate

CAADiameters

CAADynamicalTime

CAAEarth

CAAEaster

CAAEclipses

CAAEclipticalElements

CAAElementsPlanetaryOrbit

CAAElliptical

CAAELP2000

CAAELPMPP02

CAAEquationOfTime

CAAEquinoxesAndSolstices

CAAEquinoxesAndSolstices2

CAAFK5

CAAGalileanMoons

CAAGlobe

CAAIluminatedFraction

CAAInterpolate

CAAJewishCalendar

CAAJupiter

CAAKepler

CAAMars

CAAMercury

CAAMoon

CAAMoonIlluminatedFraction

CAAMoonMaxDeclinations

CAAMoonMaxDeclinations2

CAAMoonNodes

CAAMoonNodes2

CAAMoonPerigeeApogee

CAAMoonPerigeeApogee2

CAAMoonPhases

CAAMoonPhases2

CAAMoslemCalendar

CAANearParabolic

CAANeptune

CAANodes

CAANutation

CAAParabolic

CAAParallactic

CAAParallax

CAAPhysicalJupiter

CAAPhysicalMars

CAAPhysicalMoon

CAAPhysicalSun

CAAPlanetaryPhenomena

CAAPlanetaryPhenomena2

CAAPlanetPerihelionAphelion

CAAPlanetPerihelionAphelion2

CAAPluto

CAAPrecession

CAARefraction

CAARiseTransitSet (Deprecated)

CAARiseTransitSet2

CAASaturn

CAASaturnMoons

CAASaturnRings

CAASidereal

CAAStellarMagnitudes

CAASun

CAAUranus

CAAVenus

CAAVSOP2013

CAAVSOP87_EMB

CAAVSOP87_Jupiter

CAAVSOP87_Mars

CAAVSOP87_Mercury

CAAVSOP87_Neptune

CAAVSOP87_Saturn

CAAVSOP87_Uranus

CAAVSOP87_Venus

CAAVSOP87A_Earth

CAAVSOP87A_EMB

CAAVSOP87A_Jupiter

CAAVSOP87A_Mars

CAAVSOP87A_Mercury

CAAVSOP87A_Neptune

CAAVSOP87A_Saturn

CAAVSOP87A_Uranus

CAAVSOP87A_Venus

CAAVSOP87B_Earth

CAAVSOP87B_Jupiter

CAAVSOP87B_Mars

CAAVSOP87B_Mercury

CAAVSOP87B_Neptune

CAAVSOP87B_Saturn

CAAVSOP87B_Uranus

CAAVSOP87B_Venus

CAAVSOP87C_Earth

CAAVSOP87C_Jupiter

CAAVSOP87C_Mars

CAAVSOP87C_Mercury

CAAVSOP87C_Neptune

CAAVSOP87C_Saturn

CAAVSOP87C_Uranus

CAAVSOP87C_Venus

CAAVSOP87D_Earth

CAAVSOP87D_Jupiter

CAAVSOP87D_Mars

CAAVSOP87D_Mercury

CAAVSOP87D_Neptune

CAAVSOP87D_Saturn

CAAVSOP87D_Uranus

CAAVSOP87D_Venus

CAAVSOP87E_Earth

CAAVSOP87E_Jupiter

CAAVSOP87E_Mars

CAAVSOP87E_Mercury

CAAVSOP87E_Neptune

CAAVSOP87E_Saturn

CAAVSOP87E_Sun

CAAVSOP87E_Uranus

CAAVSOP87E_Venus

 

 

CAAberration

This class provides for calculation of the effects of aberration. This refers to Chapter 23 in the book.

 

Functions this class provides include:

EarthVelocity

EclipticAberration

EquatorialAberration

 

CAAAberration::EarthVelocity

static CAA3DCoordinate EarthVelocity(double JD, bool bHighPrecision)

Return Value

3D rectangular heliocentric equatorial velocity of the Earth based on the fixed equator and equinox of FK5 for the epoch J2000.0. The units of each coordinate returned are in 10 to the power of -8 astronomical units per day.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAAberration::EclipticAberration

static CAA2DCoordinate EclipticAberration(double Lambda, double Beta, double JD, bool bHighPrecision)

Return Value

Returns the correction due to aberration. The X value will contain the ecliptic longitude correction in degrees and Y will contain the ecliptic latitude correction in degrees.

Parameters

Lambda The ecliptic longitude in degrees.

Beta The ecliptic latitude in degrees.

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAAberration::EquatorsialAberration

static CAA2DCoordinate EquatorialAberration(double Alpha, double Delta, double JD, bool bHighPrecision)

Return Value

Returns the correction due to aberration. The X value will contain the right ascension correction expressed as an hour angle and Y will contain the declination correction in degrees.

Parameters

Alpha The right ascension expressed as an hour angle.

Delta The declination in degrees.

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAAngularSeparation

This class provides the algorithms which obtain various separation distances between celestial objects. This refers to Chapter 17, 19 & 20 in the book.

 

Functions this class provides include:

Separation

PositionAngle

DistanceFromGreatArc

SmallestCircle

 

CAAAngularSeparation::Separation

static double Separation(double Alpha1, double Delta1, double Alpha2, double Delta2)

Return Value

Returns the distance between the two positions in degrees.

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

 

CAAAngularSeparation::PositionAngle

static double PositionAngle(double Alpha1, double Delta1, double Alpha2, double Delta2)

Return Value

Returns the position angle of (Alpha1, Delta1) relative to (Alpha2, Delta2) in degrees.

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

 

CAAAngularSeparation::DistanceFromGreatArc

static double DistanceFromGreatArc(double Alpha1, double Delta1, double Alpha2, double Delta2, double Alpha3, double Delta3)

Return Value

Returns the distance of (Alpha3, Delta3) to the great circle (Alpha1, Delta1) - (Alpha2, Delta2) in degrees.

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

Alpha3 The third right ascension expressed as an hour angle.

Delta3 The third declination in degrees

 

CAAAngularSeparation::SmallestCircle

static double SmallestCircle(double Alpha1, double Delta1, double Alpha2, double Delta2, double Alpha3, double Delta3, bool& bType1)

Return Value

Returns the diameter of the smallest circle encompassing the 3 points in degrees.

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

Alpha3 The third right ascension expressed as an hour angle.

Delta3 The third declination in degrees

bType1 Upon return will be true if the smallest circle is of type 1, otherwise false, implying smallest circle is of type 2.

 

 

CAABinaryStar

This class provides for calculation of the position of a Binary Star system. This refers to Chapter 57 in the book.

 

Functions this class provides include:

Calculate

ApparentEccentricity

 

CAABinaryStar::Calculate

static CAABinaryStarDetails Calculate(double t, double P, double T, double e, double a, double i, double omega, double w)

Return Value

A class containing

r The radius vector of the secondary star in arc seconds of a degree.

Theta The apparent position angle of the secondary star in degrees.

Rho The angular separation between the two stars in arc seconds of a degree.

x The x cartesian coordinate value of the secondary star in arc seconds of a degree.

y The y cartesian coordinate value of the secondary star in arc seconds of a degree.

Parameters

t The time given in years and decimals to perform the calculation for.

P The period of revolution expressed in mean solar years.

T The time of periastron passage given in years and decimals.

e Eccentricity of the true orbit.

a The semi major axis expressed in seconds of a degree.

i The inclination of the plane of the true orbit in degrees to the plane at right angles to the line of sight.

omega The position angle of the ascending node in degrees.

w The longitude of the periastron in degrees.

 

CAABinaryStar::ApparentEccentricty

static double ApparentEccentricity(double e, double i, double w)

Return Value

The apparent eccentricity of the binary star orbit

Parameters

e Eccentricity of the true orbit.

i The inclination of the plane of the true orbit in degrees to the plane at right angles to the line of sight.

w The longitude of the periastron in degrees.

 

 

CAACoordinateTransformation

This class provides for the transformations of the coordinates as well as helper angle methods. This refers to Chapter 13 and parts of Chapter 1 in the book.

 

Functions this class provides include:

Equatorial2Ecliptic

Ecliptic2Equatorial

Equatorial2Horizontal

Horizontal2Equatorial

Equatorial2Galactic

Galactic2Equatorial

PI

DegreesToRadians

RadiansToDegrees

RadiansToHours

HoursToRadians

HoursToDegrees

DegreesToHours

DMSToDegrees

MapTo0To360Range

MapTo0To24Range

MapTo0To2PIRange

MapToMinus90To90Range

 

CAACoordinateTransformation::Equatorial2Ecliptic

static CAA2DCoordinate Equatorial2Ecliptic(double Alpha, double Delta, double Epsilon)

Return Value

Returns the converted ecliptic coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the ecliptic longitude in degrees and the y value corresponds to the ecliptic latitude in degrees.

Parameters

Alpha The right ascension expressed as decimal hours.

Delta The declination in degrees.

Epsilon The obliquity of the ecliptic in degrees.

Remarks

The transformation of coordinates from Equatorial to Ecliptic. This refers to algorithm 13.1 and 13.2 on page 93.

 

CAACoordinateTransformation::Ecliptic2Equatorial

static CAA2DCoordinate Ecliptic2Equatorial(double Lambda, double Beta, double Epsilon)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the right ascension in decimal hours and the y value corresponds to the declination in degrees.

Parameters

Lambda The ecliptic longitude in degrees.

Beta The ecliptic latitude in degrees.

Epsilon the obliquity of the ecliptic in degrees.

Remarks

The transformation of coordinates from Ecliptic to Equatorial. This refers to algorithm 13.3 and 13.4 on page 93.

 

CAACoordinateTransformation::Equatorial2Horizontal

static CAA2DCoordinate Equatorial2Horizontal(double LocalHourAngle, double Delta, double Latitude)

Return Value

Returns the converted horizontal coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the azimuth in degrees west of south and the y value corresponds to the altitude in degrees.

Parameters

LocalHourAngle The local hour angle in decimal hours, measured westwards from the South. To convert a equatorial right ascension to a local hour angle you can use the formula as mentioned on page 92: Local hour angle (H) = apparent sidereal time at Greenwich (theta) - observer's longitude (L, positive west, negative east from Greenwich) - right ascension. You should of course make sure that all the values used in this formula are expressed as decimal hours before applying the formula (in particular the observer's longitude "L" value).

Delta The declination in degrees.

Latitude The standard latitude of the position in degrees.

Remarks

The transformation of coordinates from Equatorial to Horizontal. This refers to algorithm 13.5 and 13.6 on page 93.

 

CAACoordinateTransformation::Horizontal2Equatorial

static CAA2DCoordinate Horizontal2Equatorial(double A, double h, double Latitude)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the local hour angle in decimal hours and the y value corresponds to the declination in degrees.

Parameters

A The azimuth in degrees west of south.

h The altitude in degrees

Latitude The standard latitude of the position in degrees.

Remarks

The transformation of coordinates from Horizontal to Equatorial. This refers to the two algorithms on the top of page 94. To convert the returned local hour angle back to a right ascension in decimal hours you can use the formula as mentioned on page 92: right ascension (alpha) = apparent sidereal time at Greenwich (theta) - Local hour angle (H) - observer's longitude (L, positive west, negative east from Greenwich). You should of course make sure that all the values used in this formula are expressed as decimal hours before applying the formula (in particular the observer's longitude "L" value).

 

CAACoordinateTransformation::Equatorial2Galactic

static CAA2DCoordinate Equatorial2Galactic(double Alpha, double Delta)

Return Value

Returns the converted galactic coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the galactic longitude in degrees and the y value corresponds to the galactic latitude in degrees.

Parameters

Alpha The right ascension in decimal hours.

Delta The declination in degrees.

Remarks

The transformation of coordinates from Equatorial to Galactic. This refers to algorithm 13.7 and 13.8 on page 94.

 

CAACoordinateTransformation::Galactic2Equatorial

static CAA2DCoordinate Galactic2Equatorial(double l, double b)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the right ascension in decimal hours and the y value corresponds to the declination in degrees.

Parameters

l  The galactic longitude expressed in degrees.

b The galactic latitude expressed in degrees.

Remarks

The transformation of coordinates from Galactic to Equatorial. This refers to the last two algorithms on page 94.

 

CAACoordinateTransformation::PI

static double PI()

Return Value

Returns the constant value of pi i.e 3.1415926...

 

CAACoordinateTransformation::DegreesToRadians

static double DegreesToRadians(double Degrees)

Return Value

Returns the value in radians which was converted from degrees.

Parameters

Degrees The angular value to convert measured in degrees.

 

CAACoordinateTransformation::RadiansToDegrees

static double RadiansToDegrees(double Radians)

Return Value

Returns the value in degrees which was converted from radians.

Parameters

Radians The angular value to convert measured in radians.

 

CAACoordinateTransformation::RadiansToHours

static double RadiansToHours(double Radians)

Return Value

Returns the value expressed as an hour angle which was converted from radians.

Parameters

Radians The angular value to convert measured in radians.

 

CAACoordinateTransformation::HoursToRadians

static double HoursToRadians(double Hours)

Return Value

Returns the value in radians which was converted from hours.

Parameters

Hours The numeric value to convert measured in hours.

 

CAACoordinateTransformation::HoursToDegrees

static double HoursToDegrees(double Hours)

Return Value

Returns the value in degrees which was converted from hours.

Parameters

Hours The numeric value to convert measured in hours.

 

CAACoordinateTransformation::DegreesToHours

static double DegreesToHours(double Degrees)

Return Value

Returns the value in hours which was converted from degrees.

Parameters

Degrees The angular value to convert measured in degrees.

 

CAACoordinateTransformation::DMSToDegrees

DMSToDegrees(double Degrees, double Minutes, double Seconds, bool bPositive = true)

Return Value

Returns the value in degrees which was converted from degrees, minutes and seconds.

Parameters

Degrees  The degree part of the angular value to convert.

Minutes The minute part of the angular value to convert.

Seconds The second part of the angular value to convert.

bPositive true if the input value corresponds to a non-negative value with false implying the value is positive

Remarks

To convert the angle 21° 44' 07" you would use DMSToDegrees(21, 44, 7, true).

To convert the angle -12° 47' 22" you would use DMSToDegrees(12, 47, 22, false) or DMSToDegrees(-12, -47, -22, true).

To convert the angle -0° 32' 41" you must use DMSToDegrees(0, 32, 41, false).

 

CAACoordinateTransformation::MapTo0To360Range

static double MapTo0To360Range(double Degrees)

Return Value

Maps an arbitrary angular value to the range 0 to 360. i.e. inputting the value -2 will return a value of 258.

Parameters

Degrees The angular value.

 

CAACoordinateTransformation::MapTo0To24Range

static double MapTo0To24Range(double HourAngle)

Return Value

Maps an arbitrary value to the range 0 to 24. i.e. inputting the value -2 will return a value of 22.

Parameters

HourAngle The hour angle.

 

CAACoordinateTransformation::MapTo0To2PIRange

static double MapTo0To2PIRange(double Angle)

Return Value

Maps an arbitrary value to the range 0 to 2*PI. i.e. inputting the value -1 will return a value of 5.2831853071795862.

Parameters

Angle The angle in radians.

 

CAACoordinateTransformation::MapToMinus90To90Range

static double MapToMinus90To90Range(double Degrees)

Return Value

Maps an arbitrary angular value to the range -90 to 90.

Parameters

Degrees The angular value.

 

 

CAADate

This class provides the algorithms which convert between the Gregorian and Julian calendars and the Julian Day. This refers to Chapter 7 and parts of Chapter 9 in the book.

 

Functions this class provides include:

CAADate

IsLeap

Julian

operator double

Day

Month

Year

Hour

Minute

Second

Set

SetInGregorianCalendar

InGregorianCalendar

Get

DayOfWeek

DayOfYear

DaysInMonth

DaysInYear

DayOfYearToDayAndMonthAndDate

JulianToGregorian

GregorianToJulian

Leap

FractionalYear

AfterPapalReform

 

CAADate::CAADate

CAADate()

CAADate(long Year, long Month, double Day, bool bGregorianCalendar)

CAADate(long Year, long Month, double Day, double Hour, double Minute, double Second, bool bGregorianCalendar)

CAADate(double JD, bool bGregorianCalendar)

Parameters

Year The year. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year (1 for January to 12 for December).

Day The day of the month (Can include decimals).

Hour The hour (Can include decimals).

Minute The minute (Can include decimals).

Second The seconds (Can include decimals).

JD The Julian day including decimals.

bGregorianCalendar true to imply a date in the Gregorian Calendar, false means use the Julian Calendar.

Remarks

Constructs a date given a variety of parameters.

 

CAADate::IsLeap

static bool IsLeap(long Year, bool bGregorianCalendar)

Return Value

true if the specified year is leap otherwise false.

Parameters

Year The year. (Years are counted astronomically i.e. 1 BC = Year 0)

bGregorianCalendar true to imply a date in the Gregorian Calendar, false means use the Julian Calendar.

 

CAADate::Julian

double Julian() const

Return Value

Returns the underlying Julian Day including decimals.

 

CAADate::operator double

operator double() const

Return Value

Returns the underlying Julian Day including decimals.

 

CAADate::Day

long Day() const

Return Value

Returns the day of the month this date represents.

 

CAADate::Month

long Month() const

Return Value

Returns the month (1 - 12) this date represents.

 

CAADate::Year

long Year() const

Return Value

Returns the year this date represents.

 

CAADate::Hour

long Hour() const

Return Value

Returns the hour this date represents.

 

CAADate::Minute

long Minute() const

Return Value

Returns the minute this date represents.

 

CAADate::Second

double Second() const

Return Value

Returns the seconds this date represents.

 

CAADate::Set

void Set(long Year, long Month, double Day, double Hour, double Minute, double Second, bool bGregorianCalendar)

void Set(double JD, bool bGregorianCalendar)

Parameters

Year The year. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year (1 for January to 12 for December).

Day The day of the month (Can include decimals).

Hour The hour (Can include decimals).

Minute The minute (Can include decimals).

Second The seconds (Can include decimals).

JD The Julian day including decimals

bGregorianCalendar true to imply a date in the Gregorian Calendar, false means use the Julian Calendar.

Remarks

Allows the date to be modified after construction.

 

CAADate::SetInGregorianCalendar

void SetInGregorianCalendar(bool bGregorianCalendar)

Parameters

bGregorianCalendar true to imply a date in the Gregorian Calendar, false means use the Julian Calendar.

Remarks

Allows the date's calendar type to be changed after construction.

 

CAADate::InGregorianCalendar

bool InGregorianCalendar() const

Return Value

Returns true if this date is in the Gregorian calendar, false means the Julian Calendar.

 

CAADate::Get

void Get(long& Year, long& Month, long& Day, long& Hour, long& Minute, double& Second)

Parameters

Year Upon return will contain the year. (Years are counted astronomically i.e. 1 BC = Year 0)

Month Upon return will contain the month of the year (1 for January to 12 for December).

Day Upon return will contain the day of the month.

Hour Upon return will contain the hour.

Minute Upon return will contain the minute.

Second Upon return will contain the seconds (Can include decimals).

Remarks

Allows the date parts to be retrieved.

 

CAADate::DayOfWeek

DAY_OF_WEEK DayofWeek() const

Return Value

Returns an enum which identifies which day of the week this date represents.

 

CAADate::DayOfYear

double DayofYear() const

Return Value

Returns the day of year (including decimals) this date represents.

 

CAADate::DaysInMonth

long DaysInMonth() const

static DaysInMonth(long Month, bool bLeap)

Return Value

Returns the total number of days in the month (28 - 31) which this date represents. The static version of the function can be used if you do not want to construct a CAADate instance to do this test.

 

CAADate::DaysInYear

long DaysInYear() const

Return Value

Returns the total number of days in the year (365 or 366) which this date represents.

 

CAADate::DayOfYearToDayAndMonth

static DayOfYearToDayAndMonth(long DayOfYear, bool bLeap, long& DayOfMonth, long& Month)

Parameters

DayOfYear The day of the year where 1st of January is 1 going up to 365 or 366 for 31st of December

bLeap true if the year being considered is a leap year, otherwise false.

DayOfMonth Upon return will contain the day of the month.

Month Upon return will contain the month.

 

CAADate::JulianToGregorian

static CAACalendarDate JulianToGregorian(long Year, long Month, long Day)

Return Value

A class containing

Year The year in the Gregorian Calendar. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year in the Gregorian Calendar (1 for January to 12 for December).

Day The day of the month in the Gregorian Calendar.

Parameters

Year The year in the Julian Calendar to convert. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year in the Julian Calendar (1 for January to 12 for December).

Day The day of the month in the Julian Calendar.

Remarks

Converts a calendrical date expressed in the Julian Calendar to the equivalent date in the Gregorian Calendar. It is assumed that the adoption of the Gregorian Calendar occurred in 1582.

 

CAADate::GregorianToJulian

static CAACalendarDate GregorianToJulian(long Year, long Month, long Day)

Return Value

A class containing

Year The year in the Julian Calendar. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year in the Julian Calendar (1 for January to 12 for December).

Day The day of the month in the Julian Calendar.

Parameters

Year The year in the Gregorian Calendar to convert. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year in the Gregorian Calendar (1 for January to 12 for December).

Day The day of the month in the Gregorian Calendar.

Remarks

Converts a calendrical date expressed in the Gregorian Calendar to the equivalent date in the Julian Calendar.

 

CAADate::Leap

bool Leap() const

Return Value

true if the year which this date represents is leap otherwise false.

 

CAADate::FractionalYear

double FractionalYear() const

Return Value

Returns the years with decimals this date represents e.g. the middle of the year 2000 would be returned as 2000.5.

 

CAADate::AfterPapalReform

bool AfterPapalReform(long Year, long Month, double Day)
bool AfterPapalReform(double
JD)

Parameters

Year The year. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year (1 for January to 12 for December).

Day The day of the month (Can include decimals).

JD The Julian day including decimals

Remarks

Returns true if the date occurs on or after the Gregorian calendar reform which occurred on 15th October 1582 (which corresponds to Julian Day 2299160.5), otherwise false. Please note that the CAADate class assumes the calendar change occured on this date. Historically of course different countries adopted the reform at different times.

 

 

CAADiameters

This class provides the algorithms for the semi diameters of the Sun, Moon, Planets and Asteroids. This refers to Chapter 55 in the book.

 

Functions this class provides include:

SunSemidiameterA

MercurySemidiameterA

VenusSemidiameterA

MarsSemidiameterA

JupiterEquatorialSemidiameterA

JupiterPolarSemidiameterA

SaturnEquatorialSemidiameterA

SaturnPolarSemidiameterA

ApparentSaturnPolarSemidiameterA

UranusSemidiameterA

NeptuneSemidiameterA

MercurySemidiameterB

VenusSemidiameterB

MarsSemidiameterB

JupiterEquatorialSemidiameterB

JupiterPolarSemidiameterB

SaturnEquatorialSemidiameterB

SaturnPolarSemidiameterB

ApparentSaturnPolarSemidiameterB

UranusSemidiameterB

NeptuneSemidiameterB

PlutoSemidiameterB

GeocentricMoonSemidiameter

TopocentricMoonSemidiameter

AsteroidDiameter

ApparentAsteroidDiameter

 

CAADiameters::SunSemidiameterA

static double SunSemidiameterA(double Delta)

Return Value

The suns semi diameter in arc seconds.

Parameters

Delta The distance to the Sun in astronomical units.

 

CAADiameters::MercurySemidiameterA

static double MercurySemidiameterA(double Delta)

Return Value

Mercury's semi diameter in arc seconds.

Parameters

Delta The distance to Mercury in astronomical units.

 

CAADiameters::VenusSemidiameterA

static double VenusSemidiameterA(double Delta)

Return Value

Venus's semi diameter in arc seconds.

Parameters

Delta The distance to Venus in astronomical units.

 

CAADiameters::MarsSemidiameterA

static double MarsSemidiameterA(double Delta)

Return Value

Mars's semi diameter in arc seconds.

Parameters

Delta The distance to Mars in astronomical units.

 

CAADiameters::JupiterEquatorialSemidiameterA

static double JupiterEquatorialSemidiameterA(double Delta)

Return Value

Jupiter's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

 

CAADiameters::JupiterPolarSemidiameterA

static double JupiterPolarSemidiameterA(double Delta)

Return Value

Jupiter's polar semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

 

CAADiameters::SaturnEquatorialSemidiameterA

static double SaturnEquatorialSemidiameterA(double Delta)

Return Value

Saturn's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

 

CAADiameters::SaturnPolarSemidiameterA

static double SaturnPolarSemidiameterA(double Delta)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

 

CAADiameters::ApparentSaturnPolarSemidiameterA

static double ApparentSaturnPolarSemidiameterA(double Delta, double B)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

B The Saturnicentric latitude of the Earth in degrees.

Remarks

Due to the large inclinations of Saturn, the apparent polar semi diameter can be different to the true polar semi diameter.

 

CAADiameters::UranusSemidiameterA

static double UranusSemidiameterA(double Delta)

Return Value

Uranus's semi diameter in arc seconds.

Parameters

Delta The distance to Uranus in astronomical units.

 

CAADiameters::NeptuneSemidiameterA

static double NeptuneSemidiameterA(double Delta)

Return Value

Neptune's semi diameter in arc seconds.

Parameters

Delta The distance to Neptune in astronomical units.

 

CAADiameters::MercurySemidiameterB

static double MercurySemidiameterB(double Delta)

Return Value

Mercury's semi diameter in arc seconds.

Parameters

Delta The distance to Mercury in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::VenusSemidiameterB

static double VenusSemidiameterB(double Delta)

Return Value

Venus's semi diameter in arc seconds.

Parameters

Delta The distance to Venus in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::MarsSemidiameterB

static double MarsSemidiameterB(double Delta)

Return Value

Mars's semi diameter in arc seconds.

Parameters

Delta The distance to Mars in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::JupiterEquatorialSemidiameterB

static double JupiterEquatorialSemidiameterB(double Delta)

Return Value

Jupiter's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::JupiterPolarSemidiameterB

static double JupiterPolarSemidiameterB(double Delta)

Return Value

Jupiter's polar semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::SaturnEquatorialSemidiameterB

static double SaturnEquatorialSemidiameterB(double Delta)

Return Value

Saturn's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::SaturnPolarSemidiameterB

static double SaturnPolarSemidiameterB(double Delta)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::ApparentSaturnPolarSemidiameterB

static double ApparentSaturnPolarSemidiameterB(double Delta, double B)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

B The Saturnicentric latitude of the Earth in degrees.

Remarks

Due to the large inclinations of Saturn, the apparent polar semi diameter can be different to the true polar semi diameter. Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::UranusSemidiameterB

static double UranusSemidiameterB(double Delta)

Return Value

Uranus's semi diameter in arc seconds.

Parameters

Delta The distance to Uranus in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::NeptuneSemidiameterB

static double NeptuneSemidiameterB(double Delta)

Return Value

Neptune's semi diameter in arc seconds.

Parameters

Delta The distance to Neptune in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::PlutoSemidiameterB

static double PlutoSemidiameterB(double Delta)

Return Value

Pluto's semi diameter in arc seconds.

Parameters

Delta The distance to Pluto in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::GeocentricMoonSemidiameter

static double GeocentricMoonSemidiameter(double Delta)

Return Value

The Moon's semi diameter in arc seconds.

Parameters

Delta The distance to the Moon in kilometres.

 

CAADiameters::TopocentricMoonSemidiameter

static double TopocentricMoonSemidiameter(double DistanceDelta, double Delta, double H, double Latitude, double Height)

Return Value

The Moon's semi diameter in arc seconds.

Parameters

DistanceDelta The distance to the Moon in kilometres.

Delta The geocentric declination of the Moon in degrees.

H The geocentric hour angle of the Moon.

Latitude  The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAADiameters::AsteroidDiameter

static double AsteroidDiameter(double H, double A)

Return Value

The asteroid's diameter in kilometres.

Parameters

H The absolute magnitude of the asteroid.

A The albedo of the asteroid.

 

CAADiameters::ApparentAsteroidDiameter

static double ApparentAsteroidDiameter(double Delta, double d)

Return Value

The asteroid's apparent diameter in arc seconds.

Parameters

Delta The distance to the asteroid in astronomical units.

d The diameter of the asteroid in kilometres.

 

 

CAADynamicalTime

This class provides for conversion between Universal Time (both UT1 and UTC) and Terrestrial Time (TT) aka Terrestrial Dynamical Time (TDT) aka Ephemeris Time (ET). This refers to Chapter 10 in the book.

 

Functions this class provides include:

DeltaT

CumulativeLeapSeconds

SetUserDefinedDeltaT

TT2UTC

UTC2TT

TT2TAI

TAI2TT

TT2UT1

UT12TT

UT1MinusUTC

 

CAADynamicalTime::DeltaT

static double DeltaT(double JD)

Return Value

The difference DeltaT which is equal to TT - UT1 in seconds of time.

Parameters

date The Julian day to calculate DeltaT for. Because DeltaT changes so slowly, the time used can be in the TT, the UTC or UT1 timeframes.

 

CAADynamicalTime::CumulativeLeapSeconds

static double CumulativeLeapSeconds(double JD)

Return Value

The cumulative total of Leap seconds which have been applied to this point in seconds of time.

Parameters

date The Julian day to calculate Cumulative leap seconds for. Because Leap seconds change so slowly, the time used can be in the TT, the UTC or UT1 timeframes although technically leap seconds are only relevant to the UTC timescale.

 

CAADynamicalTime::SetUserDefinedDeltaT

static CAADynamicalTime::DELTAT_PROC SetUserDefinedDeltaT (DELTAT_PROC pProc)

Return Value

The previous DeltaT function in use. If the CAADynamicalTime::DeltaT method was using its own lookup tables and polynomials prior to calling this method, then the return value from this method will be "nullptr".

Parameters

pProc The new function to use for calculating DeltaT through calls to the method CAADynamicalTime::DeltaT. The function signature of this parameter is "double (*) (double JD)" which is the same as the CAADynamicalTime::DeltaT function signature.

Remarks

This method allows the logic used by the CAADynamicalTime::DeltaT method to determine the DeltaT value to be changed by a user defined function. This advanced routine could prove useful where you have knowledge of the value for DeltaT for times far in the past or the future which is not included in the built-in tables provided by CAADynamicalTime class. Please note that changing the underlying function pointer by this method is not thread protected. This means that application code should provide appropriate thread protection if you are potentially calling this method from multiple threads at the same time.

 

CAADynamicalTime::TT2UTC

static double TT2UTC(double JD)

Return Value

The Julian day in the UTC timeframe.

Parameters

JD The Julian day in the TT timeframe to convert.

 

CAADynamicalTime::UTC2TT

static double TT2UTC(double JD)

Return Value

The Julian day in the TT timeframe.

Parameters

JDThe Julian day in the UTC timeframe to convert.

 

CAADynamicalTime::TT2TAI

static double TT2TAI(double JD)

Return Value

The Julian day in the TAI timeframe.

Parameters

JD The Julian day in the TT timeframe to convert.

 

CAADynamicalTime::TAI2TT

static double TAI2TT(double JD)

Return Value

The Julian day in the TT timeframe.

Parameters

JD The Julian day in the TAI timeframe to convert.

 

CAADynamicalTime::TT2UT1

static double TT2UT1(double JD)

Return Value

The Julian day in the UT1 timeframe.

Parameters

JD The Julian day in the TT timeframe to convert.

 

CAADynamicalTime::UT12TT

static double UT12TT(double JD)

Return Value

The Julian day in the TT timeframe.

Parameters

JD The Julian day in the UT1 timeframe to convert.

 

CAADynamicalTime::UT1MinusUTC

static double UT12TT(double JD)

Return Value

The difference between UT1 and UTC in seconds of time.

Parameters

JD The Julian day in the UT1 timeframe.

 

 

 

CAAEarth

This class provides for calculation of the heliocentric position of the Earth. This refers to Chapter 32 and parts of Chapter 26 and 47 in the book

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

EclipticLongitudeJ2000

EclipticLatitudeJ2000

Eccentricity

SunMeanAnomaly

 

CAAEarth::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEarth::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEarth::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEarth::EclipticLongitudeJ2000

static double EclipticLongitudeJ2000(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of J2000 in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEarth::EclipticLatitudeJ2000

static double EclipticLatitudeJ2000(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of J2000 defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEarth::Eccentricity

static double Eccentricity(double JD)

Return Value

the eccentricity of Earth's orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAEarth::SunMeanAnomaly

static double SunMeanAnomaly(double JD)

Return Value

the mean anomaly of the Sun in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAEaster

This class provides for calculation of the date of Easter in both the Julian and Gregorian calendars. This refers to Chapter 8 in the book.

 

Functions this class provides include:

Calculate

 

CAAEaster::Calculate

static CAAEasterDetails Calculate(int nYear, bool bGregorianCalendar)

Return Value

A class containing

Month The month on which Easter Sunday occurs.

Day The day of the month on which Easter Sunday occurs.

Parameters

nYear The year to perform the calculation for.

bGregorianCalendar true if the calculation is to be performed for the Gregorian calendar, false implies the Julian Calendar

 

 

CAAEclipses

This class provides for calculation of Solar and Lunar Eclipses. This refers to Chapter 54 in the book.

 

Functions this class provides include:

CalculateSolar

CalculateLunar

 

CAAEclipses::CalculateSolar

static CAASolarEclipseDetails CalculateSolar(double k)

Return Value

A struct containing the following values:

Flags A bitmask which indicates the type of solar eclipse which has occurred. See the constant values defined in CAASolarEclopseDetails for more information.

TimeOfMaximumEclipse The date in Dynamical time of maximum eclipse.

F The moons argument of Latitude in degrees at the time of the eclipse.

u The U term for the eclipse.

gamma The gamma term for the eclipse.

GreatestMagnitude The greatest magnitude of the eclipse if the eclipse is partial.

Parameters

k The same K term as returned from CAAMoonPhases::K. For a solar eclipse, this value should be a value without any decimals as a solar eclipse refers to a New Moon.

 

CAAEclipses::CalculateLunar

static CAALunarEclipseDetails CalculateLunar(double k)

Return Value

A struct containing the following values:

bEclipse true if a lunar eclipse occurs at this Full Moon.

TimeOfMaximumEclipse The date in Dynamical time of maximum eclipse.

F The moons argument of Latitude in degrees at the time of the eclipse.

u The U term for the eclipse.

gamma The gamma term for the eclipse.

PenumbralRadii The radii of the eclipse for the penumbra in equatorial earth radii.

UmbralRadii The radii of the eclipse for the umbra in equatorial earth radii.

PenumbralMagnitude The magnitude of the eclipse if the eclipse is penumbral.

UmbralMagnitude The magnitude of the eclipse if the eclipse is umbral.

PartialPhaseSemiDuration The semi-duration of the eclipse during the partial phase.

TotalPhaseSemiDuration The semi-duration of the eclipse during the total phase.

PartialPhasePenumbralSemiDuration The semi-duration of the partial phase in the penumbra.

Parameters

k The same K term as returned from CAAMoonPhases::K. For a lunar eclipse, this value should be decimal value incremented by 0.5 as a lunar eclipse refers to a Full Moon.

 

 

CAAEclipticalElements

This class provides the algorithms which map ecliptical elements from one equinox to another. This refers to Chapter 24 in the book.

 

Functions this class provides include:

Calculate

FK4B1950ToFK5J200

 

CAAEclipticalElements::Calculate

static CAAEclipticalElementDetails Calculate(double i0, double w0, double omega0, double JD0, double JD)

Return Value

A struct containing the following values:

i The reduced inclination in degrees.

w The reduced argument of perihelion in degrees.

omega The reduced longitude of the ascending node in degrees

Parameters

i0 The inclination in degrees to reduce.

w0 The argument of perihelion in degrees to reduce.

omega0 The longitude of the ascending node in degrees to reduce.

JD0 The initial epoch in Dynamical time to calculate for.

JD The epoch in Dynamical time to reduce the elements to.

 

CAAEclipticalElements::FK4B1950ToFK5J2000

static CAAEclipticalElementDetails KF4B1950ToFK5J2000(double i0, double w0, double omega0)

Return Value

A struct containing the following values:

i The reduced inclination in degrees.

w The reduced argument of perihelion in degrees.

omega The reduced longitude of the ascending node in degrees

Parameters

i0 The inclination in degrees to reduce.

w0 The argument of perihelion in degrees to reduce.

omega0 The longitude of the ascending node in degrees to reduce.

 

 

CAAElementsPlanetaryOrbit

This class provides the algorithms to calculate the elements of the planetary orbits. This refers to Chapter 31 in the book.

 

Functions this class provides include:

MercuryMeanLongitude

MercurySemimajorAxis

MercuryEccentricity

MercuryInclination

MercuryLongitudeAscendingNode

MercuryLongitudePerihelion

VenusMeanLongitude

VenusSemimajorAxis

VenusEccentricity

VenusInclination

VenusLongitudeAscendingNode

VenusLongitudePerihelion

EarthMeanLongitude

EarthSemimajorAxis

EarthEccentricity

EarthInclination

EarthLongitudePerihelion

MarsMeanLongitude

MarsSemimajorAxis

MarsEccentricity

MarsInclination

MarsLongitudeAscendingNode

MarsLongitudePerihelion

JupiterMeanLongitude

JupiterSemimajorAxis

JupiterEccentricity

JupiterInclination

JupiterLongitudeAscendingNode

JupiterLongitudePerihelion

SaturnMeanLongitude

SaturnSemimajorAxis

SaturnEccentricity

SaturnInclination

SaturnLongitudeAscendingNode

SaturnLongitudePerihelion

UranusMeanLongitude

UranusSemimajorAxis

UranusEccentricity

UranusInclination

UranusLongitudeAscendingNode

UranusLongitudePerihelion

NeptuneMeanLongitude

NeptuneSemimajorAxis

NeptuneEccentricity

NeptuneInclination

NeptuneLongitudeAscendingNode

NeptuneLongitudePerihelion

MercuryMeanLongitudeJ2000

MercuryInclinationJ2000

MercuryLongitudeAscendingNodeJ2000

MercuryLongitudePerihelionJ2000

VenusMeanLongitudeJ2000

VenusInclinationJ2000

VenusLongitudeAscendingNodeJ2000

VenusLongitudePerihelionJ2000

EarthMeanLongitudeJ2000

EarthInclinationJ2000

EarthLongitudeAscendingNodeJ2000

EarthLongitudePerihelionJ2000

MarsMeanLongitudeJ2000

MarsInclinationJ2000

MarsLongitudeAscendingNodeJ2000

MarsLongitudePerihelionJ2000

JupiterMeanLongitudeJ2000

JupiterInclinationJ2000

JupiterLongitudeAscendingNodeJ2000

JupiterLongitudePerihelionJ2000

SaturnMeanLongitudeJ2000

SaturnInclinationJ2000

SaturnLongitudeAscendingNodeJ2000

SaturnLongitudePerihelionJ2000

UranusMeanLongitudeJ2000

UranusInclinationJ2000

UranusLongitudeAscendingNodeJ2000

UranusLongitudePerihelionJ2000

NeptuneMeanLongitudeJ2000

NeptuneInclinationJ2000

NeptuneLongitudeAscendingNodeJ2000

NeptuneLongitudePerihelionJ2000

 

CAAElementsPlanetaryOrbit::MercuryMeanLongitude

static double MercuryMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MercurySemimajorAxis

static double MercurySemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MercuryEccentricity

static double MercuryEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryInclination

static double MercuryInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudeAscendingNode

static double MercuryLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudePerihelion

static double MercuryLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusMeanLongitude

static double VenusMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::VenusSemimajorAxis

static double VenusSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::VenusEccentricity

static double VenusEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusInclination

static double VenusInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudeAscendingNode

static double VenusLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudePerihelion

static double VenusLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthMeanLongitude

static double EarthMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::EarthSemimajorAxis

static double EarthSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::EarthEccentricity

static double EarthEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthInclination

static double EarthInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudePerihelion

static double EarthLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsMeanLongitude

static double MarsMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MarsSemimajorAxis

static double MarsSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MarsEccentricity

static double MarsEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsInclination

static double MarsInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudeAscendingNode

static double MarsLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudePerihelion

static double MarsLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterMeanLongitude

static double JupiterMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::JupiterSemimajorAxis

static double JupiterSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::JupiterEccentricity

static double JupiterEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterInclination

static double JupiterInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudeAscendingNode

static double JupiterLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudePerihelion

static double JupiterLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnMeanLongitude

static double SaturnMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::SaturnSemimajorAxis

static double SaturnSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::SaturnEccentricity

static double SaturnEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnInclination

static double SaturnInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudeAscendingNode

static double SaturnLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudePerihelion

static double SaturnLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusMeanLongitude

static double UranusMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::UranusSemimajorAxis

static double UranusSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::UranusEccentricity

static double UranusEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusInclination

static double UranusInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudeAscendingNode

static double UranusLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudePerihelion

static double UranusLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneMeanLongitude

static double NeptuneMeanLongitude(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::NeptuneSemimajorAxis

static double NeptuneSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::NeptuneEccentricity

static double NeptuneEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneInclination

static double NeptuneInclination(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudeAscendingNode

static double NeptuneLongitudeAscendingNode(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudePerihelion

static double NeptuneLongitudePerihelion(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the ecliptic and mean equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryMeanLongitudeJ2000

static double MercuryMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryInclinationJ2000

static double MercuryInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudeAscendingNodeJ2000

static double MercuryLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudePerihelionJ2000

static double MercuryLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusMeanLongitudeJ2000

static double VenusMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusInclinationJ2000

static double VenusInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudeAscendingNodeJ2000

static double VenusLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudePerihelionJ2000

static double VenusLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthMeanLongitudeJ2000

static double EarthMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthInclinationJ2000

static double EarthInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudeAscendingNodeJ2000

static doubleEarthLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudePerihelionJ2000

static double EarthLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsMeanLongitudeJ2000

static double MarsMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsInclinationJ2000

static double MarsInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudeAscendingNodeJ2000

static double MarsLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudePerihelionJ2000

static double MarsLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterMeanLongitudeJ2000

static double JupiterMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterInclinationJ2000

static double JupiterInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudeAscendingNodeJ2000

static double JupiterLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudePerihelionJ2000

static double JupiterLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnMeanLongitudeJ2000

static double SaturnMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnInclinationJ2000

static double SaturnInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudeAscendingNodeJ2000

static double SaturnLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudePerihelionJ2000

static double SaturnLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusMeanLongitudeJ2000

static double UranusMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusInclinationJ2000

static double UranusInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudeAscendingNodeJ2000

static double UranusLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudePerihelionJ2000

static double UranusLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneMeanLongitudeJ2000

static double NeptuneMeanLongitudeJ2000(double JD)

Return Value

the mean longitude of the planet in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneInclinationJ2000

static double NeptuneInclinationJ2000(double JD)

Return Value

the inclination on the plane of the ecliptic in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudeAscendingNodeJ2000

static double NeptuneLongitudeAscendingNodeJ2000(double JD)

Return Value

the longitude of the ascending node in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudePerihelionJ2000

static double NeptuneLongitudePerihelionJ2000(double JD)

Return Value

the longitude of the perihelion in degrees with respect to the fixed ecliptic of J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAElliptical

This class provides for calculation of the position of an object in an elliptical orbit. This refers to Chapter 33 in the book.

 

Functions this class provides include:

Calculate

DistanceToLightTime

SemiMajorAxisFromPerihelionDistance

MeanMotionFromSemiMajorAxis

InstantaneousVelocity

VelocityAtPerihelion

VelocityAtAphelion

LengthOfEllipse

CometMagnitude

MinorPlanetMagnitude

 

CAAElliptical::Calculate

static CAAEllipticalPlanetaryDetails Calculate(double JD, EllipticalObject object, bool bHighPrecision)

Return Value

A class containing

ApparentGeocentricEclipticalLongitude The apparent geocentric ecliptical longitude in degrees of the object.

ApparentGeocentricEclipticalLatitude The apparent geocentric ecliptical latitude in degrees of the object.

ApparentGeocentricDistance The apparent distance in astronomical units between the object and the Earth.

ApparentLightTime The apparent light travel time in days.

ApparentGeocentricRA The apparent right ascension of the planet as an hour angle.

ApparentGeocentricDeclination The apparent declination of the planet in degrees.

TrueGeocentricRectangularEcliptical True 3D rectangular geocentric ecliptical coordinates of the object.

TrueHeliocentricEclipticalLongitude True heliocentric ecliptical longitude in degrees of the object.

TrueHeliocentricEclipticalLatitude True heliocentric ecliptical latitude in degrees of the object.

TrueHeliocentricDistance The true distance in astronomical units between the object and the Sun.

TrueGeocentricEclipticalLongitude The true geocentric ecliptical longitude in degrees of the object.

TrueGeocentricEclipticalLatitude The true geocentric ecliptical latitude in degrees of the object

TrueGeocentricDistance The true distance in astronomical units between the object and the Earth.

TrueLightTime The true light travel time in days.

TrueGeocentricRA The true right ascension of the planet as an hour angle.

TrueGeocentricDeclination The true declination of the planet in degrees.

Parameters

JD The date in Dynamical time to calculate for.

object An enum specifying which object (Planet except Earth or the Sun) the calculation is to be carried out for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

static CAAEllipticalObjectDetails Calculate(double JD, const CAAEllipticalObjectElements& elements, bool bHighPrecision)

Return Value

A class containing

HeliocentricRectangularEquatorial 3D rectangular heliocentric equatorial coordinates of the object.

HeliocentricRectangularEcliptical 3D rectangular heliocentric ecliptical coordinates of the object.

HeliocentricEclipticLongitude The heliocentric ecliptical longitude in degrees of the object.

HeliocentricEclipticLatitude The heliocentric ecliptical latitude in degrees of the object.

TrueGeocentricRA The geocentric right ascension of the object as an hour angle (i.e. without light time correction applied).

TrueGeocentricDeclination The geocentric declination of the object in degrees (i.e. without light time correction applied).

TrueGeocentricDistance The true distance in astronomical units between the Earth and the object.

TrueGeocentricLightTime The light travel time in days from the Earth to the object.

AstrometricGeocentricRA The geocentric right ascension of the object as an hour angle (i.e. with light time correction applied)

AstrometricGeocentricDeclination The geocentric declination of the object in degrees (i.e. with light time correction applied)

AstrometricGeocentricDistance The observed distance of the object in astronomical units.

AstrometricGeocentricLightTime The observed light travel time of the object in days.

Elongation The elongation of the object to the Sun in degrees.

PhaseAngle The phase angle (the angle Sun - object - Earth) in degrees.

Parameters

JD The date in Dynamical time to calculate for.

elements A class containing the following orbital elements

a The semi major axis in astronomical units.

e The eccentricity of the orbit.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox The Julian day for which equatorial coordinates should be calculated for.

T The Julian date of the time of passage in perihelion.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAElliptical::DistanceToLightTime

static double DistanceToLightTime(double Distance)

Return Value

The light travel time in days corresponding to the distance.

Parameters

Distance The distance in astronomical units to convert.

 

CAAElliptical::SemiMajorAxisFromPerihelionDistance

static double SemiMajorAxisFromPerihelionDistance(double q, double e)

Return Value

The semi major axis of the orbit in astronomical units.

Parameters

q The perihelion distance in astronomical units.

e The eccentricity of the orbit.

 

CAAElliptical::MeanMotionFromSemiMajorAxis

static double MeanMotionFromSemiMajorAxis(double a)

Return Value

The mean motion in degrees / day.

Parameters

a The semi major axis of the orbit in astronomical units.

 

CAAElliptical::InstantaneousVelocity

static double InstantaneousVelocity(double r, double a)

Return Value

The instantaneous velocity of the object in kilometres per second.

Parameters

r The distance of the object from the Sun in astronomical units.

a The semi major axis of the orbit in astronomical units.

 

CAAElliptical::VelocityAtPerihelion

static double VelocityAtPerihelion(double e, double a)

Return Value

The velocity of the object in kilometres per second at perihelion.

Parameters

e The eccentricity of the orbit.

a The semi major axis of the orbit in astronomical units.

 

CAAElliptical::VelocityAtAphelion

static double VelocityAtAphelion(double e, double a)

Return Value

The velocity of the object in kilometres per second at aphelion.

Parameters

e The eccentricity of the orbit.

a The semi major axis of the orbit in astronomical units.

 

CAAElliptical::LengthOfEllipse

static double LengthOfEllipse(double e, double a)

Return Value

The length of the eclipse in astronomical units.

Parameters

e The eccentricity of the orbit.

a The semi major axis of the orbit in astronomical units.

 

CAAElliptical::CometMagnitude

static double CometMagnitude(double g, double delta, double k, double r)

Return Value

The magnitude of the comet.

Parameters

g The absolute magnitude of the comet.

delta Distance of the comet to the Earth in astronomical units.

k A constant which differs from one comet to another.

r Distance of the comet from the Sun in astronomical units

Remarks

This refers to algorithm 33.13 on page 231

 

CAAElliptical::MinorPlanetMagnitude

static double MinorPlanetMagnitude(double H, double delta, double G, double r, double PhaseAngle)

Return Value

The magnitude of the minor planet.

Parameters

H The mean absolute visual magnitude of the minor planet.

delta Distance of the minor planet to the Earth in astronomical units.

G The so called "slope parameter" which differs from one minor planet to another.

r Distance of the minor planet from the Sun in astronomical units

PhaseAngle the Sun - body - Earth angle in degrees

Remarks

This refers to algorithm 33.14 on page 231

 

 

CAAELP2000

This class provides for calculation of the position of the Moon using the full ELP2000-82b theory. Please refer to http://cdsweb.u-strasbg.fr/cgi-bin/qcat?VI/79/for further details.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

EclipticRectangularCoordinates

EclipticRectangularCoordinatesJ2000

EquatorialRectangularCoordinatesFK5

 

CAAELP2000::EclipticLongitude

static double EclipticLongitude(double JD)

Return Value

the ecliptic longitude in degrees referred to the ecliptic and equinox of the ELP2000-82b theory.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAELP2000::EclipticLatitude

static double EclipticLatitude(double JD)

Return Value

the ecliptic latitude in degrees referred to the ecliptic and equinox of the ELP2000-82b theory.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAELP2000::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in kilometers.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAELP2000::EclipticRectangularCoordinates

static CAA3DCoordinate EclipticRectangularCoordinates(double JD)

Return Value

A class containing the ecliptic 3D rectangular coordinates in kilometers referred to the ecliptic and equinox of the ELP2000-82b theory.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAELP2000::EclipticRectangularCoordinatesJ2000

static CAA3DCoordinate EclipticRectangularCoordinatesJ2000(double JD)

Return Value

A class containing the ecliptic 3D rectangular coordinates in kilometers referred to the J2000 ecliptic and equinox.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAELP2000::EquatorialRectangularCoordinatesFK5

static CAA3DCoordinate EquatorialRectangularCoordinatesFK5(double JD)

Return Value

A class containing the equatorial 3D rectangular coordinates in kilometers referred to the FK5 J2000 FK5 reference frame.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAELPMPP02

This class provides for calculation of the position of the Moon using the full ELP\MPP02 theory. Please refer to ftp://cyrano-se.obspm.fr/pub/2_lunar_solutions/2_elpmpp02/ for further details.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

EclipticRectangularCoordinates

EclipticRectangularCoordinatesJ2000

 

CAAELPMPP02::EclipticLongitude

static double EclipticLongitude(double JD, Correction correction = LLR, double* pDerivative = nullptr)

Return Value

the ecliptic longitude in degrees referred to the ecliptic and equinox of the ELP/MPP02 theory.

Parameters

JD The date in Dynamical time to calculate for.

correction enum value which specifies what fit of the theory to use. This can be Nominal, LLR, DE405 or DE406.

pDerivative An optional output parameter which if provided will return the derivative of the ecliptic longitude in degrees per day.

 

CAAELPMPP02::EclipticLatitude

static double EclipticLatitude(double JD, Correction correction = LLR, double* pDerivative = nullptr)

Return Value

the ecliptic latitude in degrees referred to the ecliptic and equinox of the ELP/MPP02 theory.

Parameters

JD The date in Dynamical time to calculate for.

correction enum value which specifies what fit of the theory to use. This can be Nominal, LLR, DE405 or DE406.

pDerivative An optional output parameter which if provided will return the derivative of the ecliptic latitude in degrees per day.

 

CAAELPMPP02::RadiusVector

static double RadiusVector(double JD, Correction correction = LLR, double* pDerivative = nullptr)

Return Value

the radius vector in kilometers.

Parameters

JD The date in Dynamical time to calculate for.

correction enum value which specifies what fit of the theory to use. This can be Nominal, LLR, DE405 or DE406.

pDerivative An optional output parameter which if provided will return the derivative of the radius vector in kilometers per day.

 

CAAELPMPP02::EclipticRectangularCoordinates

static CAA3DCoordinate EclipticRectangularCoordinates(double JD, Correction correction = LLR, CAA3DCoordinate* pDerivative = nullptr)

Return Value

A class containing the ecliptic 3D rectangular coordinates in kilometers referred to the ecliptic and equinox of the ELP/MPP02 theory.

Parameters

JD The date in Dynamical time to calculate for.

correction enum value which specifies what fit of the theory to use. This can be Nominal, LLR, DE405 or DE406.

pDerivative An optional output parameter which if provided will return the derivative of the rectangular coordinates in Kilometers per day in the ecliptic and equinox of the ELP/MPP02 theory.

 

CAAELPMPP02::EclipticRectangularCoordinatesJ2000

static CAA3DCoordinate EclipticRectangularCoordinatesJ2000(double JD, CAA3DCoordinate* pDerivative = nullptr)

Return Value

A class containing the ecliptic 3D rectangular coordinates in kilometers referred to the J2000 ecliptic and equinox.

Parameters

JD The date in Dynamical time to calculate for.

correction enum value which specifies what fit of the theory to use. This can be Nominal, LLR, DE405 or DE406.

pDerivative An optional output parameter which if provided will return the derivative of the rectangular coordinates in kilometers per day in the J2000 ecliptic and equinox

 

 

CAAEquationOfTime

This class provides for calculation of the Equation of Time. This refers to Chapter 28 in the book.

 

Functions this class provides include:

Calculate

 

CAAEquationOfTime::Calculate

static double Calculate(double JD, bool bHighPrecision)

Return Value

the equation of time in decimal minutes.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAEquinoxesAndSolstices

This class provides the algorithms to calculate the dates of the Equinoxes and Solstices. This refers to Chapter 27 in the book.

 

Functions this class provides include:

NorthwardEquinox

NorthernSoltice

SouthwardEquinox

SouthernSolstice

LengthOfSpring

LengthOfSummer

LengthOfAutumn

LengthOfWinter

 

CAAEquinoxesAndSolstices::NorthwardEquinox

static double NorthwardEquinox(long Year, bool bHighPrecision)

Return Value

The date in Dynamical time when the sun crosses the equator in a northerly direction.

Parameters

Year The year to calculate the occurrence for. Note that this method refers to "Northward Equinox" instead of "Spring Equinox" to avoid a northern hemisphere-specific bias.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::NorthernSolstice

static double NorthernSolstice(long Year, bool bHighPrecision)

Return Value

The date in Dynamical time when the sun reaches its highest relative to the celestial equator and appears directly over the Tropic of Cancer.

Parameters

Year The year to calculate the occurrence for. Note that this method refers to "Northern Solstice" instead of "Summer Solstice" to avoid a northern hemisphere-specific bias.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::SouthwardEquinox

static double SouthwardEquinox(long Year, bool bHighPrecision)

Return Value

The date in Dynamical time when the Southward Equinox occurs.

Parameters

Year The year to calculate the occurrence for. Note that this method refers to "Southward Equinox" instead of "Fall or Autumn equinox" to avoid a northern hemisphere-specific bias.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::SouthernSolstice

static double SouthernSolstice(long Year, bool bHighPrecision)

Return Value

The date in Dynamical time when the sun reaches its lowest relative to the celestial equator and appears directly over the Tropic of Capricorn.

Parameters

Year The year to calculate the occurrence for. Note that this method refers to "Southern Solstice" instead of "Winter Solstice" to avoid a northern hemisphere-specific bias.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::LengthOfSpring

static double LengthOfSpring(long Year, bool bNorthernHemisphere, bool bHighPrecision)

Return Value

The length of the astronomical Spring season in days.

Parameters

Year The year to calculate for.

bNorthernHemisphere true to indicate the observer is in the northern hemisphere, while false means the southern hemisphere.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::LengthOfSummer

static double LengthOfSummer(long Year, bool bNorthernHemisphere, bool bHighPrecision)

Return Value

The length of the astronomical Summer season in days.

Parameters

Year The year to calculate for.

bNorthernHemisphere true to indicate the observer is in the northern hemisphere, while false means the southern hemisphere.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::LengthOfAutumn

static double LengthOfAutumn(long Year, bool bNorthernHemisphere, bool bHighPrecision)

Return Value

The length of the astronomical Autumn season in days.

Parameters

Year The year to calculate for.

bNorthernHemisphere true to indicate the observer is in the northern hemisphere, while false means the southern hemisphere.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAEquinoxesAndSolstices::LengthOfWinter

static double LengthOfWinter(long Year, bool bNorthernHemisphere, bool bHighPrecision)

Return Value

The length of the astronomical Winter season in days.

Parameters

Year The year to calculate for.

bNorthernHemisphere true to indicate the observer is in the northern hemisphere, while false means the southern hemisphere.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAEquinoxesAndSolstices2

This class uses interpolation to calculate the same details as those provided with the existing CAAEquinoxesAndSolstices class.

 

Functions this class provides include:

Calculate

 

CAAEquinoxesAndSolstices2::Calculate

static std::vector<CAAEquinoxesAndSolsticestDetails2> Calculate(double StartJD, double EndJD, double StepInterval = 0.007, bool bHighPrecision = false)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be NorthwardEquinox, NorthernSolstice, SouthwardEquinox or SouthernSolstice.

JD The date in Dynamical time on which the event occurs.

Declination Valid only for NorthernSolstice or SouthernSolstice events, this will be the apparent declination of the Sun.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAFK5

This class provides the algorithms to convert to the FK5 standard reference frame. This refers to parts of Chapter 26 and 32 in the book.

 

Functions this class provides include:

CorrectionInLongitude

CorrectionInLatitude

ConvertVSOPToFK5J2000

ConvertVSOPToFK5B1950

ConvertVSOPToFK5AnyEquinox

 

CAAFK5::CorrectionInLongitude

static double CorrectionInLongitude(double longitude, double Latitude, double JD)

Return Value

The correction in degrees to convert a VSOP heliocentric longitude to the FK5 reference frame.

Parameters

Longitude The VSOP heliocentric longitude in degrees.

Latitude The VSOP heliocentric latitude in degrees.

JD The date in Dynamical time to calculate for.

 

CAAFK5::CorrectionInLatitude

static double CorrectionInLatitude(double longitude, double JD)

Return Value

The

Parameters

Longitude The VSOP heliocentric longitude in degrees.

JD The date in Dynamical time to calculate for.

 

CAAFK5::ConvertVSOPToFK5J2000

static CAA3DCoordinate ConvertVSOPToFK5J2000(const CAA3DCoordinate& value)

Return Value

A class containing the converted equatorial FK5 J2000 reference frame coordinates.

Parameters

value The geometric rectangular ecliptical coordinates of the object (e.g. the Sun) to convert from the dynamical reference frame (VSOP) to the equatorial FK5 J2000 reference frame.

 

CAAFK5::ConvertVSOPToFK5B1950

static CAA3DCoordinate ConvertVSOPToFK5B1950(const CAA3DCoordinate& value)

Return Value

A class containing the converted equatorial FK5 B1950 reference frame coordinates.

Parameters

value The geometric rectangular ecliptical coordinates of the object (e.g. the Sun) to convert from the dynamical reference frame (VSOP) to the equatorial FK5 B1950 reference frame.

 

CAAFK5::ConvertVSOPToFK5AnyEquinox

static CAA3DCoordinate ConvertVSOPToFK5AnyEquinox(const CAA3DCoordinate& value, double JDEquinox)

Return Value

A class containing the converted equatorial FK5 reference frame coordinates.

Parameters

value The geometric rectangular ecliptical coordinates of the object (e.g. the Sun) to convert from the dynamical reference frame (VSOP) to the equatorial FK5 reference frame of JDEquinox.

JDEquinox The Julian day for which equatorial coordinates should be calculated for.

 

 

CAAGalileanMoons

This class provides for calculation of the positions of the Galilean moons of Jupiter. This refers to Chapter 44 in the book.

 

Functions this class provides include:

Calculate

 

CAAGalileanMoons::Calculate

static CAAGalileanMoonsDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class which itself contains a class for each moon. This contained class itself contains

MeanLongitude The mean longitude of the moon in degrees.

TrueLongitude The true longitude of the moon in degrees.

TropicalLongitude The tropical longitude of the moon in degrees.

EquatorialLatitude The latitude in degrees of the moon with respect to Jupiter's equatorial plane.

r The radius vector of the moon in equatorial radii of Jupiter.

TrueRectangularCoordinates The true 3D rectangular coordinates of the moon.

ApparentRectangularCoordinates The apparent 3D rectangular coordinates of the moon.

bInTransit A Boolean which if true means that the moon is in front of Jupiter as viewed from the Earth otherwise false.

bInOccultation A Boolean which if true means that the moon is behind Jupiter as viewed from the Earth otherwise false.

bInEclipse A Boolean which if true means that the moon is behind Jupiter as viewed from the Sun otherwise false.

bInShadowTransit A Boolean which if true means that the moon is in front of Jupiter as viewed from the Earth otherwise false.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAGlobe

This class provides some basic algorithms related to the figure of the Earth's surface.

 

Functions this class provides include:

RhoSinThetaPrime

RhoCosThetaPrime

RadiusOfParallelOfLatitude

RadiusOfCurvature

DistanceBetweenPoints

 

CAAGlobe::RhoSinThetaPrime

static double RhoSinThetaPrime(double GeographicalLatitude, double Height)

Return Value

A numeric value of your position relative to the centre of the earth expressed in units of the equatorial radius. For more information refer to the diagram on Page 81.

Parameters

GeographicalLatitude The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAAGlobe::RhoCosThetaPrime

static double RhoCosThetaPrime(double GeographicalLatitude, double Height)

Return Value

A numeric value of your position relative to the centre of the earth expressed in units of the equatorial radius. For more information refer to the diagram on Page 81.

Parameters

GeographicalLatitude The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAAGlobe::RadiusOfParallelOfLatitude

static double RadiusOfParallelOfLatitude(double GeographicalLatitude)

Return Value

The radius of parallel of latitude expressed in kilometres.

Parameters

GeographicalLatitude The latitude of the position in degrees.

 

CAAGlobe::RadiusOfCurvature

static double RadiusOfCurvature(double GeographicalLatitude)

Return Value

The radius of curvature of latitude expressed in kilometres.

Parameters

GeographicalLatitude The latitude of the position in degrees.

 

CAAGlobe::DistanceBetweenPoints

static double DistanceBetweenPoints(double GeographicalLatitude1, double GeographicalLongitude1, double GeographicalLatitude2, double GeographicalLongitude2)

 

Return Value

The shortest distance between two known points on the surface of the Earth expressed in kilometres.

Parameters

GeographicalLatitude1 The latitude of the first point in degrees.

GeographicLongitude1 The longitude of the first point in degrees (Positive west, negative east from Greenwich).

GeographicLatitude2 The latitude of the second point in degrees.

GeographicalLongitude2 The longitude of the second point in degrees (Positive west, negative east from Greenwich).

 

 

CAAIlluminatedFraction

This class provides the algorithms to calculate a planet's phase angle, illuminated fraction and magnitude. This refers to Chapter 41 in the book.

 

Functions this class provides include:

PhaseAngle

PhaseAngleRectangular

IlluminatedFraction

MercuryMagnitudeAA

MercuryMagnitudeMuller

VenusMagnitudeAA

VenusMagnitudeMuller

MarsMagnitudeAA

MarsMagnitudeMuller

JupiterMagnitudeAA

JupiterMagnitudeMuller

SaturnMagnitudeAA

SaturnMagnitudeMuller

UranusMagnitudeAA

UranusMagnitudeMuller

NeptuneMagnitudeAA

NeptuneMagnitudeMuller

PlutoMagnitudeAA

 

CAAIlluminatedFraction::PhaseAngle

static double PhaseAngle(double r, double R, double Delta)

static double PhaseAngle(double R, double R0, double B, double L, double L0, double Delta)

Return Value

The phase angle in degrees.

Parameters (First Version)

r The planet's distance to the Sun in astronomical units.

R The distance of the Sun from the Earth in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Parameters (Second Version)

R The planet's distance to the Sun in astronomical units.

R0 The distance of the Sun from the Earth in astronomical units.

B The planet's heliocentric latitude in degrees.

L The planet's heliocentric longitude in degrees.

L0 The heliocentric latitude of the Earth in degrees.

Delta The planet's distance from the Earth in astronomical units.

 

CAAIlluminatedFraction::PhaseAngleRectangular

static double PhaseAngleRectangular(double x, double y, double z, double B, double L, double Delta)

Return Value

The phase angle in degrees.

Parameters

x The geocentric rectangular ecliptical X coordinate of the object.

y The geocentric rectangular ecliptical Y coordinate of the object.

z The geocentric rectangular ecliptical Y coordinate of the object.

B The planet's heliocentric latitude in degrees.

L The planet's heliocentric longitude in degrees.

Delta The planet's distance from the Earth in astronomical units.

 

CAAIlluminatedFraction::IlluminatedFraction

static double IlluminatedFraction(double r, double R, double Delta)

static double IlluminatedFraction(double PhaseAngle)

Return Value

The phase angle in degrees.

r The planet's distance to the Sun in astronomical units.

R The distance of the Sun from the Earth in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

PhaseAngle The planet's phase angle in degrees.

 

CAAIlluminatedFraction::MercuryMagnitudeAA

static double MercuryMagnitudeAA(double r, double Delta, double i)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::MercuryMagnitudeMuller

static double MercuryMagnitudeMuller(double r, double Delta, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::VenusMagnitudeAA

static double VenusMagnitudeAA(double r, double Delta, double i)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::VenusMagnitudeMuller

static double VenusMagnitudeMuller(double r, double Delta, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::MarsMagnitudeAA

static double MarsMagnitudeAA(double r, double Delta, double i)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::MarsMagnitudeMuller

static double MarsMagnitudeMuller(double r, double Delta, double i)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::JupiterMagnitudeAA

static double JupiterMagnitudeAA(double r, double Delta, double i)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

i The planet's phase angle in degrees.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::JupiterMagnitudeMuller

static double JupiterMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::SaturnMagnitudeAA

static double SaturnMagnitudeAA(double r, double Delta, double DeltaU, double B)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

DeltaU The difference between the Saturnicentric longitudes of the Sun and the Earth, measured in the plane o the ring in degrees.

B The Saturnicentric latitude of the Earth referred to the plane of the ring in degrees

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::SaturnMagnitudeMuller

static double SaturnMagnitudeMuller(double r, double Delta, double DeltaU, double B)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

DeltaU The difference between the Saturnicentric longitudes of the Sun and the Earth, measured in the plane o the ring in degrees.

B The Saturnicentric latitude of the Earth referred to the plane of the ring in degrees

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::UranusMagnitudeAA

static double UranusMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::UranusMagnitudeMuller

static double UranusMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::NeptuneMagnitudeAA

static double NeptuneMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

CAAIlluminatedFraction::NeptuneMagnitudeMuller

static double NeptuneMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided by G. Muller.

 

CAAIlluminatedFraction::PlutoMagnitudeAA

static double PlutoMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

r The planet's distance to the Sun in astronomical units.

Delta The planet's distance from the Earth in astronomical units.

Remarks

Uses the formula to calculate the magnitude as provided in the Astronomical Almanac.

 

 

CAAInterpolate

This class provides the algorithms for interpolation. This refers to Chapter 3 in the book.

 

Functions this class provides include:

Interpolate

InterpolateToHalves

LangrangeInterpolate

Extremum

Zero

Zero2

 

CAAInterpolate::Interpolate

static double Interpolate(double n, double Y1, double Y2, double Y3)

static double Interpolate(double n, double Y1, double Y2, double Y3, double Y4, double Y5)

Return Value

The interpolated Y value.

Parameters

n The interpolating factor.

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Y5 The fifth Y value to interpolate from.

Remarks

Interpolates a function from 3 or 5 points.

 

CAAInterpolate::InterpolateToHalves

static double InterpolateToHalves(double Y1, double Y2, double Y3, double Y4)

Return Value

The interpolated Y value.

Parameters

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Remarks

Interpolates a function to the middle location where 4 evenly spaced values are provided.

 

CAAInterpolate::LagrangeInterpolate

static double LagrangeInterpolate(double X, int n, const double* pX, const double* pY)

Return Value

The interpolated Y value.

Parameters

X The X value to interpolate for.

n The size of the pX and pY arrays.

pX Pointer to the array of X coordinates to interpolate from.

pY Pointer to the array of Y coordinates to interpolate from.

Remarks

Interpolates a function using Lagrange's formula where an arbitrary number of values are provided.

 

CAAInterpolate::Extremum

static double Extremum(double Y1, double Y2, double Y3, double& nm)

static double Extremum(double Y1, double Y2, double Y3, double Y4, double Y5, double& nm, double epsilon = 1e-12)

Return Value

The extreme Y value.

Parameters

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Y5 The fifth Y value to interpolate from.

epsilon The value used to terminate iteration loops inside the method.

nm Upon return will contain the corresponding value of the argument X where the extremum is reached.

Remarks

Interpolates a function to determine where the function reaches an extremum.

 

CAAInterpolate::Zero

static double Zero(double Y1, double Y2, double Y3, double epsilon = 1e-12)

static double Zero(double Y1, double Y2, double Y3, double Y4, double Y5, double epsilon = 1e-12)

Return Value

The value of the argument X for which the function y becomes zero.

Parameters

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Y5 The fifth Y value to interpolate from.

epsilon The value used to terminate iteration loops inside the methods.

Remarks

Finds where a function reaches zero when the function is "almost a straight line".

 

CAAInterpolate::Zero2

static double Zero2(double Y1, double Y2, double Y3, double epsilon = 1e-12)

static double Zero2(double Y1, double Y2, double Y3, double Y4, double Y5, double epsilon = 1e-12)

Return Value

The value of the argument X for which the function y becomes zero.

Parameters

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Y5 The fifth Y value to interpolate from.

epsilon The value used to terminate iteration loops inside the methods.

Remarks

Finds where a function reaches zero when the curvature of the function is important.

 

 

CAAJewishCalendar

This class provides the algorithms which convert between the Gregorian, Julian and Jewish calendars. This refers to Chapter 9 in the book.

 

Functions this class provides include:

DateOfPesach

DaysInYear

IsLeap

 

CAAJewishCalendar::DateOfPesach

static CAACalendarDate DateOfPesach(long Year, bool bGregorianCalendar = false)

Return Value

A class containing

Year The year in the Jewish Calendar.

Month The month of the year in the Gregorian or Julian Calendar corresponding to when Pesach occurs.

Day The day of the month in the Gregorian or Julian Calendar corresponding to when Pesach occurs.

Parameters

Year The year in the Julian or Gregorian Calendar to calculate Jewish Easter or Pesach for. (Years are counted astronomically i.e. 1 BC = Year 0)

bGregorianCalendar true to imply a date in the Gregorian Calendar, false means use the Julian Calendar.

 

CAAJewishCalendar::DaysInYear

static long DaysInYear(long Year)

Return Value

The number of days in the specified Jewish Year

Parameters

Year The year in the Jewish Calendar.

 

CAAJewishCalendar::IsLeap

static bool IsLeap(long Year)

Return Value

true if the specified year is leap otherwise false.

Parameters

Year The year in the Jewish calendar.

 

 

CAAJupiter

This class provides for calculation of the heliocentric position of Jupiter. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAJupiter::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAJupiter::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAJupiter::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAKepler

This class provides for the solution of Kepler's equation. This refers to Chapter 30 in the book.

 

Functions this class provides include:

Calculate

 

CAAKepler::Calculate

static double Calculate(double M, double e, int nIterations = 53)

Return Value

The Eccentric anomaly in degrees (i.e. the solution to Kepler's equation).

Parameters

M The mean anomaly in degrees.

e The eccentricity of the orbit

nIterations The method uses the third method to solve the equation. This uses a binary chop to find the solution. The default value of 53 is the number of iterations required to obtain the accuracy of the standard Visual C "double".

 

 

CAAMars

This class provides for calculation of the heliocentric position of Mars. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAMars::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAMars::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAMars::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAMercury

This class provides for calculation of the heliocentric position of Mercury. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAMercury::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAMercury::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAMercury::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAMoon

This class provides the algorithms which obtain the position of the Moon. This refers to Chapter 47 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

MeanAnomaly

MeanElongation

MeanLongitude

MeanLongitudeAscendingNode

TrueLongitudeAscendingNode

MeanLongitudePergiee

ArgumentOfLatitude

RadiusVectorToHorizontalParallax

HorizontalParallaxToRadiusVector

 

CAAMoon::EclipticLongitude

static double EclipticLongitude(double JD)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::EclipticLatitude

static double EclipticLatitude(double JD)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in kilometres.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanAnomaly

static double MeanAnomaly(double JD)

Return Value

the mean anomaly of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanElongation

static double MeanElongation(double JD)

Return Value

the mean elongation of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitude

static double MeanLongitude(double JD)

Return Value

the mean longitude of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitudeAscendingNode

static double MeanLongitudeAscendingNode(double JD)

Return Value

the mean longitude of the ascending node of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::TrueLongitudeAscendingNode

static double TrueLongitudeAscendingNode(double JD)

Return Value

the true longitude of the ascending node of the lunar orbit in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitudePerigee

static double MeanLongitudePerigee(double JD)

Return Value

the mean longitude of the perigee of the lunar orbit in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::ArgumentOfLatitude

static double ArgumentOfLatitude(double JD)

Return Value

the argument of latitude (mean distance of the Moon from its ascending node) in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::RadiusVectorToHorizontalParallax

static double RadiusVectorToHorizontalParallax(double RadiusVector)

Return Value

the parallax of the object in degrees.

Parameters

RadiusVector The distance to the object (e.g. Moon) in kilometres.

 

CAAMoon::HorizontalParallaxToRadiusVector

static double HorizontalParallaxToRadiusVector(double Parallax)

Return Value

RadiusVector The distance to the object in kilometres.

Parameters

the parallax of the object (e.g. Moon) in degrees.

 

 

CAAMoonIlluminatedFraction

This class provides algorithms for the Moon's elongation, phase angle and illuminated fraction. This refers to Chapter 48 in the book.

 

Functions this class provides include:

GeocentricElongation

PhaseAngle

IlluminatedFraction

PositionAngle

 

CAAMoonIlluminatedFraction::GeocentricElongation

static double GeocentricElongation(double ObjectAlpha, double ObjectDelta, double SunAlpha, double SunDelta)

Return Value

the elongation of the object from the Sun

Parameters

ObjectAlpha The geocentric right ascension of the object (e.g. the Moon) expressed as an hour angle.

ObjectDelta The geocentric declination of the object (e.g. the Moon) in degrees.

SunAlpha The geocentric right ascension of the Sun expressed as an hour angle.

SunDelta The geocentric declination of the Sun in degrees.

 

CAAMoonIlluminatedFraction::PhaseAngle

static double PhaseAngle(double GeocentricElongation, double EarthObjectDistance, double EarthSunDistance)

Return Value

the phase angle in degrees.

Parameters

GeocentricElongation The geocentric elongation in degrees.

EarthObjectDistance The distance in astronomical units between the Earth and the object (the Moon)

EarthSunDistance The distance in astronomical units between the Earth and the Sun

Remarks

The EarthObjectDistance and EarthSunDistance should be expressed in the same units for instance in kilometres.

 

CAAMoonIlluminatedFraction::IlluminatedFraction

static double IlluminatedFraction(double PhaseAngle)

Return Value

the illuminated fraction (a value form 0 to 1).

Parameters

PhaseAngle The phase angle in degrees.

 

CAAMoonIlluminatedFraction::PositionAngle

static double PositionAngle(double Alpha0, double Delta0, double Alpha, double Delta)

Return Value

the position angle of the midpoint of the illuminated limb of the object (the Moon) in degrees.

Parameters

Alpha0 The geocentric right ascension of the Sun expressed as an hour angle.

Delta0 The geocentric declination of the Sun in degrees.

Alpha The geocentric right ascension of the object (e.g. the Moon) expressed as an hour angle.

Delta The geocentric declination of the object (e.g. the Moon) in degrees.

 

 

CAAMoonMaxDeclinations

This class provides algorithms to calculate the times when the Moon reaches its maximum Northerly and Southerly declinations. This refers to Chapter 52 in the book.

 

Functions this class provides include:

K

MeanGreatestDeclination

MeanGreatestDeclinationValue

TrueGreatestDeclination

TrueGreatestDeclinationValue

 

CAAMoonMaxDeclinations::K

static double K(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAMoonMaxDeclinations) for calculation of the Moon's max declination.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded to an integer by client code before calling other methods in this class with this K value. Any other value of K will give meaningless values.

 

CAAMoonMaxDeclinations::MeanGreatestDeclination

static double MeanGreatestDeclination(double k, bool bNortherly)

Return Value

Returns the date in Dynamical time when the mean maximum declination occurs.

Parameters

k The K value to calculate the max declination for. This K value must be an integer value. Any other value of K will give meaningless values.

bNortherly true if this is a calculation for a maximum northerly declination, false implies a calculation of the a maximum southerly declination.

 

CAAMoonMaxDeclinations::MeanGreatestDeclinationValue

static double MeanGreatestDeclinationValue(double k)

Return Value

Returns the mean maximum declination in degrees.

Parameters

k The K value to calculate the max declination for. This K value must be an integer value. Any other value of K will give meaningless values.

 

CAAMoonMaxDeclinations::TrueGreatestDeclination

static double TrueGreatestDeclination(double k, bool bNortherly)

Return Value

Returns the date in Dynamical time when the true maximum declination occurs.

Parameters

k The K value to calculate the max declination for. This K value must be an integer value. Any other value of K will give meaningless values.

bNortherly true if this is a calculation for a maximum northerly declination, false implies a calculation of the a maximum southerly declination.

 

CAAMoonMaxDeclinations::TrueGreatestDeclinationValue

static double TrueGreatestDeclinationValue(double k)

Return Value

Returns the true maximum declination in degrees.

Parameters

k The K value to calculate the max declination for. This K value must be an integer value. Any other value of K will give meaningless values.

 

 

CAAMoonMaxDeclinations2

This class uses interpolation to calculate the same details as those provided with the existing CAAMoonMaxDeclinations class.

 

Functions this class provides include:

Calculate

 

CAAMoonMaxDeclinations2::Calculate

static std::vector<CAAMoonMaxDeclinationsDetails2> Calculate(double StartJD, double EndJD, double StepInterval = 0.007, Algorithm algorithm = Algorithm::MeeusTruncated)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be MaxNorthernDeclination or MaxSourthernDeclination.

JD The date in Dynamical time on which the event occurs.

Declination this will be the maximum geocentric declination of the Moon at time JD.

RA this will be the Right Ascension of the Moon at time JD

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

Algorithm An enum class representing the algorithm to use for the calculation. Can be MeeusTruncated which represents the truncated ELP2000 algorithm presented in the book, ELP2000 which uses the full ELP2000 algorithm, ELPMPP02Nominal which uses the ELPMPP02 Nominal fit, ELPMPP02LLR which uses the ELPMPP02 Lunar Laser Ranging fit, ELPMPP02DE405 which uses the ELPMPP02 DE405 fit and ELPMPP02DE406 which uses the ELPMPP02 DE406 fit.

 

 

CAAMoonNodes

This class provides algorithms which obtain dates when the Moon passes through its nodes. This refers to Chapter 51 in the book.

 

Functions this class provides include:

K

PassageThroNode

 

CAAMoonNodes::K

static double K(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAMoonNodes) for calculation of the specified passage thro the node.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded to an integer or an integer + 0.5 by client code before calling other methods in this class with this K value. Any other value of K will give meaningless values.

 

CAAMoonNodes::PassageThroNode

static double PassageThroNode(double k)

Return Value

Returns the date in Dynamical time when the specified passage thro the node occurs.

Parameters

k The K value to calculate the passage thro the node for. This K value must be an integer value or an integer value + 0.5. Any other value of K will give meaningless values.

 

 

CAAMoonNodes2

This class uses interpolation to calculate the same details as those provided with the existing CAAMoonNodes class.

 

Functions this class provides include:

Calculate

 

CAAMoonNodes2::Calculate

static std::vector<CAAMoonNodesDetails2> Calculate(double StartJD, double EndJD, double StepInterval = 0.007, Algorithm algorithm = Algorithm::MeeusTruncated)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Ascending or Descending.

JD The date in Dynamical time on which the event occurs.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

Algorithm An enum class representing the algorithm to use for the calculation. Can be MeeusTruncated which represents the truncated ELP2000 algorithm presented in the book, ELP2000 which uses the full ELP2000 algorithm, ELPMPP02Nominal which uses the ELPMPP02 Nominal fit, ELPMPP02LLR which uses the ELPMPP02 Lunar Laser Ranging fit, ELPMPP02DE405 which uses the ELPMPP02 DE405 fit and ELPMPP02DE406 which uses the ELPMPP02 DE406 fit.

 

 

CAAMoonPerigeeApogee

This class provides algorithms to calculate the approximate times when the distance between the Earth and the Moon is a minimum (perigee) or a maximum (apogee). This refers to Chapter 50 in the book.

 

Functions this class provides include:

K

MeanPerigee

MeanApogee

TruePerigee

TrueApogee

PerigeeParallax

ApogeeParallax

 

CAAMoonPerigeeApogee::K

static double K(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAMoonPerigeeApogee) for calculation of the specified phase.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded to an integer or an integer + 0.5 by client code before calling other methods in this class with this K value. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::MeanPerigee

static double MeanPerigee(double k)

Return Value

Returns the date in Dynamical time when the mean perigee occurs.

Parameters

k The K value to calculate the perigee for. This K value must be an integer value. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::MeanApogee

static double MeanApogee(double k)

Return Value

Returns the date in Dynamical time when the specified mean apogee occurs.

Parameters

k The K value to calculate the apogee for. This K value must be an integer value + 0.5. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::TruePerigee

static double TruePerigee(double k)

Return Value

Returns the date in Dynamical time when the specified true perigee occurs.

Parameters

k The K value to calculate the perigee for. This K value must be an integer value. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::TrueApogee

static double TrueApogee(double k)

Return Value

Returns the date in Dynamical time when the specified true apogee occurs.

Parameters

k The K value to calculate the apogee for. This K value must be an integer value + 0.5. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::PerigeeParallax

static double PerigeeParallax(double k)

Return Value

Returns the parallax at the specified perigee in degrees.

Parameters

k The K value to calculate the perigee parallax for. This K value must be an integer value. Any other value of K will give meaningless values.

 

CAAMoonPerigeeApogee::ApogeeParallax

static double ApogeeParallax(double k)

Return Value

Returns the parallax at the specified apogee in degrees.

Parameters

k The K value to calculate the apogee parallax for. This K value must be an integer value + 0.5. Any other value of K will give meaningless values.

 

 

CAAMoonPerigeeApogee2

This class uses interpolation to calculate the same details as those provided with the existing CAAMoonPerigeeApogee class.

 

Functions this class provides include:

Calculate

 

CAAMoonPerigeeApogee2::Calculate

static std::vector<CAAMoonPerigeeApogeeDetails2> Calculate(double StartJD, double EndJD, double StepInterval = 0.007, Algorithm algorithm = Algorithm::MeeusTruncated)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Perigee or Apogee.

JD The date in Dynamical time on which the event occurs.

Value this will be the distance of the Moon in Kilometers at time JD.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

Algorithm An enum class representing the algorithm to use for the calculation. Can be MeeusTruncated which represents the truncated ELP2000 algorithm presented in the book, ELP2000 which uses the full ELP2000 algorithm, ELPMPP02Nominal which uses the ELPMPP02 Nominal fit, ELPMPP02LLR which uses the ELPMPP02 Lunar Laser Ranging fit, ELPMPP02DE405 which uses the ELPMPP02 DE405 fit and ELPMPP02DE406 which uses the ELPMPP02 DE406 fit.

 

 

CAAMoonPhases

This class provides algorithms which obtain the dates for the phases of the Moon. This refers to Chapter 49 in the book.

 

Functions this class provides include:

K

MeanPhase

TruePhase

 

CAAMoonPhases::K

static double K(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAMoonPhases) for calculation of the specified phase.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded to an integer, an integer + 0.25, an integer + 0.5 or an integer + 0.75 by client code before calling other methods in this class with this K value. Any other value of K will give meaningless values.

 

CAAMoonPhases::MeanPhase

static double MeanPhase(double k)

Return Value

Returns the date in Dynamical time when the specified mean moon phase occurs.

Parameters

k The K value to calculate the phase for. This K value must be an integer value for New Moon, an integer value + 0.25 for First Quarter, an integer value + 0.5 for Full Moon or an integer value + 0.75 fr Last Quarter. Any other value of K will give meaningless values.

 

CAAMoonPhases::TruePhase

static double TruePhase(double k)

Return Value

Returns the date in Dynamical time when the specified true moon phase occurs.

Parameters

k The K value to calculate the phase for. This K value must be an integer value for New Moon, an integer value + 0.25 for First Quarter, an integer value + 0.5 for Full Moon or an integer value + 0.75 fr Last Quarter. Any other value of K will give meaningless values.

 

 

CAAMoonPhases2

This class uses interpolation to calculate the same details as those provided with the existing CAAMoonPhases class.

 

Functions this class provides include:

Calculate

 

CAAMoonPhases2::Calculate

static std::vector<CAAMoonPhasesDetails2> Calculate(double StartJD, double EndJD, double StepInterval = 0.007, Algorithm algorithm = Algorithm::MeeusTruncated)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be NewMoon, FirstQuarter, FullMoon or LastQuarter

JD The date in Dynamical time on which the event occurs.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

Algorithm An enum class representing the algorithm to use for the calculation. Can be MeeusTruncated which represents the truncated ELP2000 algorithm presented in the book, ELP2000 which uses the full ELP2000 algorithm, ELPMPP02Nominal which uses the ELPMPP02 Nominal fit, ELPMPP02LLR which uses the ELPMPP02 Lunar Laser Ranging fit, ELPMPP02DE405 which uses the ELPMPP02 DE405 fit and ELPMPP02DE406 which uses the ELPMPP02 DE406 fit.

 

 

CAAMoslemCalendar

This class provides the algorithms which convert between the Julian and Moslem calendars. This refers to Chapter 9 in the book.

 

Functions this class provides include:

JulianToMoslem

MoslemToJulian

IsLeap

 

CAAMoslemCalendar::JulianToMoslem

static CAACalendarDate JulianToMoslem(long Year, long Month, long Day)

Return Value

A class containing

Year The year in the Moslem Calendar.

Month The month of the year in the Moslem Calendar (1 for Muharram to 12 for Dhu l-Hijja).

Day The day of the month in the Moslem Calendar.

Parameters

Year The year in the Julian Calendar to convert. (Years are counted astronomically i.e. 1 BC = Year 0)

Month The month of the year in the Julian Calendar (1 for January to 12 for December).

Day The day of the month in the Julian Calendar.

 

CAAMoslemCalendar::MoslemToJulian

static CAACalendarDate MoslemToJulian(long Year, long Month, long Day)

Return Value

A class containing

Year The year in the Julian Calendar.

Month The month of the year in the Julian Calendar  (1 for January to 12 for December).

Day The day of the month in the Julian Calendar.

Parameters

Year The year in the Moslem Calendar to convert

Month The month of the year in the Moslem Calendar (1 for Muharram to 12 for Dhu l-Hijja).

Day The day of the month in the Moslem Calendar.

 

CAAMoslemCalendar::IsLeap

static bool IsLeap(long Year)

Return Value

true if the specified year is leap otherwise false.

Parameters

Year The year in the Moslem calendar.

 

 

CAANearParabolic

This class provides for calculation of the position of an object in an orbit which can be best modelled as near parabolic i.e. eccentricity between 0.98 and 1.02. Chapter 35 in the book includes support for calculating Near-parabolic orbits, but the code is provided in BASIC and the algorithm as presented has problems converging when the eccentricity is close to 1. Instead the algorithms used in this class are based upon the worked examples which Paul Schlyter has provided at http://stjarnhimlen.se/comp/tutorial.html#16

 

Functions this class provides include:

Calculate

 

CAANearParabolic::Calculate

static CAANearParabolicObjectDetails Calculate(double JD, const CAANearParabolicObjectElements& elements, bool bHighPrecision)

Return Value

A class containing

HeliocentricRectangularEquatorial 3D rectangular heliocentric equatorial coordinates of the object.

HeliocentricRectangularEcliptical 3D rectangular heliocentric ecliptical coordinates of the object.

HeliocentricEclipticLongitude The heliocentric ecliptical longitude in degrees of the object.

HeliocentricEclipticLatitude The heliocentric ecliptical latitude in degrees of the object.

TrueGeocentricRA The geocentric right ascension of the object as an hour angle (i.e. without light time correction applied).

TrueGeocentricDeclination The geocentric declination of the object in degrees (i.e. without light time correction applied).

TrueGeocentricDistance The true distance in astronomical units between the Earth and the object.

TrueGeocentricLightTime The light travel time in days from the Earth to the object.

AstrometricGeocentricRA The geocentric right ascension of the object as an hour angle (i.e. with light time correction applied)

AstrometricGeocentricDeclination The geocentric declination of the object in degrees (i.e. with light time correction applied)

AstrometricGeocentricDistance The observed distance of the object in astronomical units.

AstrometricGeocentricLightTime The observed light travel time of the object in days.

Elongation The elongation of the object to the Sun in degrees.

PhaseAngle The phase angle (the angle Sun - object - Earth) in degrees.

Parameters

JD The date in Dynamical time to calculate for.

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox The Julian Date for which equatorial coordinates should be calculated for.

T The Julian date of the time of passage in perihelion.

e Eccentricity of the orbit

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAANeptune

This class provides for calculation of the heliocentric position of Neptune. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAANeptune::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAANeptune::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAANeptune::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAANodes

This class provides for calculation of the time of passages from the orbital elements of a planet or comet through the nodes of its orbit. This refers to Chapter 39 in the book.

 

Functions this class provides include:

PassageThroAscendingNode (for Elliptical orbits)

PassageThroDescendingNode (for Elliptical orbits)

PassageThroAscendingNode (for Parabolic orbits)

PassageThroDescendingNode (for Parabolic orbits)

 

CAANodes::PassageThroAscendingNode

static CAANodeObjectDetails PassageThroAscendingNode(const CAAEllipticalObjectElements& elements);

Return Value

A class containing

t The date in Dynamical time to when the body moves thro the ascending node.

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

a The semi major axis in astronomical units.

e The eccentricity of the orbit.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAEllipticalObjectElements.

T The Julian date of the time of passage in perihelion.

 

CAANodes::PassageThroDescendingNode

static CAANodeObjectDetails PassageThroDescendingNode(const CAAEllipticalObjectElements& elements);

Return Value

A class containing

t The date in Dynamical time to when the body moves thro the ascending node.

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

a The semi major axis in astronomical units.

e The eccentricity of the orbit.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAEllipticalObjectElements.

T The Julian date of the time of passage in perihelion.

 

CAANodes::PassageThroAscendingNode

static CAANodeObjectDetails PassageThroAscendingNode(const CAAParabolicObjectElements& elements);

Return Value

A class containing

t The date in Dynamical time to when the body moves thro the ascending node.

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAParabolicObjectElements.

T The Julian date of the time of passage in perihelion.

 

CAANodes::PassageThroDescendingNode

static CAANodeObjectDetails PassageThroDescendingNode(const CAAParabolicObjectElements& elements);

Return Value

A class containing

t The date in Dynamical time to when the body moves thro the ascending node.

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAParabolicObjectElements.

T The Julian date of the time of passage in perihelion.

 

 

CAANutation

This class provides for calculation of Nutation and the Obliquity of the Ecliptic. This refers to Chapter 22 and parts of Chapter 23 in the book.

 

Functions this class provides include:

NutationInLongitude

NutationInObliquity

NutationInRightAscension

NutationInDeclination

MeanObliquityOfEcliptic

TrueObliquityOfEcliptic

 

CAANutation::NutationInLongitude

static double NutationInLongitude(double JD)

Return Value

The nutation in ecliptic longitude in arc seconds of a degree.

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::NutationInObliquity

static double NutationInObliquity(double JD)

Return Value

The nutation in obliquity in arc seconds of a degree.

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::NutationInRightAscension

static double NutationInRightAscension(double Alpha, double Delta, double Obliquity, double NutationInLongitude, double NutationInObliquity)

Return Value

The nutation in right ascension in arc seconds of a degree.

Parameters

Alpha The right ascension of the position in hour angles.

Delta The declination of the position in degrees.

Obliquity The obliquity of the Ecliptic in degrees.

NutationInLongitude The nutation in longitude in arc seconds of a degree.

NutationInObliquity The nutation in obliquity in arc seconds of a degree.

Remarks

This refers to algorithm 23.1 on page 151.

 

CAANutation::NutationInDeclination

static double NutationInDeclination(double Alpha, double Delta, double Obliquity, double NutationInLongitude, double NutationInObliquity)

Return Value

The nutation in declination in arc seconds of a degree.

Parameters

Alpha The right ascension of the position in hour angles.

Delta The declination of the position in degrees.

Obliquity The obliquity of the Ecliptic in degrees.

NutationInLongitude The nutation in longitude in arc seconds of a degree.

NutationInObliquity The nutation in obliquity in arc seconds of a degree.

Remarks

This refers to algorithm 23.1 on page 151.

 

CAANutation::MeanObliquityOfEcliptic

static double MeanObliquityOfEcliptic(double JD)

Return Value

The mean obliquity of the ecliptic in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::TrueObliquityOfEcliptic

static double TrueObliquityOfEcliptic(double JD)

Return Value

The true obliquity of the ecliptic in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAParabolic

This class provides for calculation of the position of an object in a parabolic orbit. This refers to Chapter 34 in the book.

 

Functions this class provides include:

Calculate

CalculateBarkers

 

CAAParabolic::Calculate

static CAAParabolicObjectDetails Calculate(double JD, const CAAParabolicObjectElements& elements, bool bHighPrecision, double epsilon = 0.000001)

Return Value

A class containing

HeliocentricRectangularEquatorial 3D rectangular heliocentric equatorial coordinates of the object.

HeliocentricRectangularEcliptical 3D rectangular heliocentric ecliptical coordinates of the object.

HeliocentricEclipticLongitude The heliocentric ecliptical longitude in degrees of the object.

HeliocentricEclipticLatitude The heliocentric ecliptical latitude in degrees of the object.

TrueGeocentricRA The geocentric right ascension of the object as an hour angle (i.e. without light time correction applied).

TrueGeocentricDeclination The geocentric declination of the object in degrees (i.e. without light time correction applied).

TrueGeocentricDistance The true distance in astronomical units between the Earth and the object.

TrueGeocentricLightTime The light travel time in days from the Earth to the object.

AstrometricGeocenticRA The geocentric right ascension of the object as an hour angle (i.e. with light time correction applied)

AstrometricGeocentricDeclination The geocentric declination of the object in degrees (i.e. with light time correction applied)

AstrometricGeocentricDistance The observed distance of the object in astronomical units.

AstrometricGeocentricLightTime The observed light travel time of the object in days.

Elongation The elongation of the object to the Sun in degrees.

PhaseAngle The phase angle (the angle Sun - object - Earth) in degrees.

Parameters

JD The date in Dynamical time to calculate for.

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

i The inclination of the plane of the orbit in degrees.

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox The Julian Date for which equatorial coordinates should be calculated for.

T The Julian date of the time of passage in perihelion.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

epsilon The epsilon value passed to the CalculateBarkers method.

 

CAAParabolic::CalculateBarkers

static double CalculateBarkers(double W, double epsilon = 0.000001)

Return Value

The solution to Barkers equation as described in algorithm 34.3 on page 241.

Parameters

W The value W as described in algorithm 34.1 on page 241.

epsilon The value used to terminate iteration loops inside the method.

 

 

CAAParallactic

This class provides for measurement of various angles on the celestial globe. This refers to Chapter 14 in the book.

 

Functions this class provides include:

ParallacticAngle

EclipticLongitudeOnHorizon

AngleBetweenEclipticAndHorizon

AngleBetweenNorthCelestialPoleAndNorthPoleOfEcliptic

 

CAAParallactic::ParallacticAngle

static double ParallacticAngle(double HourAngle, double Latitude, double delta)

Return Value

Returns the parallactic angle (the ZCN angle) and is generally designated by q.

Parameters

HourAngle The hour angle.

Latitude The latitude of the position in degrees.

Delta The declination in degrees.

Remarks

This refers to algorithm 14.1 on page 98.

 

CAAParallactic::EclipticLongitudeOnHorizon

static double EclipticLongitudeOnHorizon(double LocalSiderealTime, double ObliquityOfEcliptic, double Latitude)

Return Value

Returns the ecliptic longitude of two points which are (180 degrees apart) on the horizon.

Parameters

LocalSiderealTime The local sidereal time measured in hours.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Latitude The latitude of the position in degrees.

Remarks

This refers to algorithm 14.2 on page 99.

 

CAAParallactic::AngleBetweenEclipticAndHorizon

static double AngleBetweenEclipticAndHorizon(double LocalSiderealTime, double ObliquityOfEcliptic, double Latitude)

Return Value

Returns the angle in degrees of the diurnal path of a celestial body (not the ecliptic) relative to the horizon at the time of its rising or setting.

Parameters

LocalSiderealTime The local sidereal time measured in hours.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Latitude The latitude of the position in degrees.

Remarks

This refers to algorithm at the top of page 100.

 

CAAParallactic::AngleBetweenNorthCelestrialPoleAndNorthPoleOfEcliptic

static double AngleBetweenNorthCelestialPoleAndNorthPoleOfEcliptic(double Lambda, double Beta, double ObliquityOfEcliptic)

Return Value

Return the angle in degrees between the direction of the northern celestial pole and the direction of the north pole of the ecliptic, at the star.

Parameters

Lambda The ecliptical longitude in degrees.

Beta The ecliptical latitude of the star in degrees.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Remarks

This refers to algorithm at the top of page 100.

 

 

CAAParallax

This class provides for calculation of the topocentric coordinates of a body as seen from the observer's place on the Earth's surface. This refers to Chapter 40 in the book.

 

Functions this class provides include:

Equatorial2TopocentricDelta

Equatorial2Topocentric

Ecliptic2Topocentric

ParallaxToDistance

DistanceToParallax

 

CAAParallax::Equatorial2TopocentricDelta

static CAA2DCoordinate Equatorial2TopocentricDelta(double Alpha, double Delta, double Distance, double Longitude, double Latitude, double Height, double JD)

Return Value

Returns the corrections in equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the correction in right ascension expressed as an hour angle and the y value corresponds to the correction in declination in degrees.

Parameters

Alpha The right ascension in hours of the object at time JD.

Delta The declination in degrees of the object at time JD.

Distance The distance (in astronomical units) to the Earth.

Longitude The longitude in degrees (Positive west, negative east from Greenwich).

Latitude The latitude in degrees.

Height The observer's height above sea level in meters.

JD The date in Dynamical time to calculate for.

Remarks

This returns the difference between the geocentric and topocentric values. This refers to equation 40.4 and 40.5 on page 280.

 

CAAParallax::Equatorial2Topocentric

static CAA2DCoordinate Equatorial2Topocentric(double Alpha, double Delta, double Distance, double Longitude, double Latitude, double Height, double JD)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to right ascension expressed as an hour angle and the y value corresponds to the right ascension in degrees.

Parameters

Alpha The right ascension in hours of the object at time JD.

Delta The declination in degrees of the object at time JD.

Distance The distance (in astronomical units) to the Earth.

Longitude The longitude in degrees.

Latitude The latitude in degrees.

Height The observer's height above sea level in meters

JD The date in Dynamical time to calculate for.

Remarks

This returns the rigorous conversion between the geocentric and topocentric values. This refers to equation 40.2 and 40.3 on page 279.

 

CAAParallax::Ecliptic2Topocentric

static CAATopocentricEclipticDetails Ecliptic2Topocentric(double Lambda, double Beta, double Semidiameter, double Distance, double Epsilon, double Latitude, double Height, double JD)

Return Value

A class containing

Lambda The topocentric ecliptical longitude in degrees.

Beta The topocentric ecliptical latitude in degrees.

Semidiameter The topocentric semi diameter in degrees.

Parameters

Lambda The ecliptical longitude in degrees.

Beta The ecliptical latitude in degrees.

Semidiameter The geocentric semi diameter in degrees.

Distance The distance (in astronomical units) to the Earth.

Epsilon The obliquity of the ecliptic in degrees.

Latitude The latitude in degrees.

Height The observer's height above sea level in meters.

JD The date in Dynamical time to calculate for.

 

CAAParallax::ParallaxToDistance

static double ParallaxToDistance(double Parallax)

Return Value

Returns the distance in astronomical units.

Parameters

Parallax The parallax of the body in degrees.

 

CAAParallax::DistanceToParallax

static double DistanceToParallax(double Distance)

Return Value

Returns the parallax in degrees.

Parameters

Distance The distance (in astronomical units) to the body.

 

 

CAAPhysicalJupiter

This class provides for calculation of various physical parameters related to the Jupiter. This refers to Chapter 43 in the book.

 

Functions this class provides include:

Calculate

 

CAAPhysicalJupiter::Calculate

static CAAPhysicalJupiterDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class containing

DE The planetocentric declination in degrees of the Earth.

DS The planetocentric declination in degrees of the Sun.

Geometricw1 The geometric longitude in degrees of the central meridian for System 1.

Geometricw2 The geometric longitude in degrees of the central meridian for System 2.

Apparentw1 The apparent longitude in degrees of the central meridian for System 1.

Apparentw2 The geometric longitude in degrees of the central meridian for System 2.

P The position angle of Jupiter's northern rotational pole in degrees.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAPhysicalMars

This class provides for calculation of various physical parameters related to the Mars. This refers to Chapter 42 in the book.

 

Functions this class provides include:

Calculate

 

CAAPhysicalMars::Calculate

static CAAPhysicalMarsDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class containing

DE The planetocentric declination in degrees of the Earth.

DS The planetocentric declination in degrees of the Sun.

w The aerographic longitude in degrees of the central meridian as seen from Earth.

P The geocentric position angle of Mars' northern rotational pole in degrees.

X The position angle in degrees of the mid-point of the illuminated limb.

k The illuminated fraction of the planet's disk.

q The defect of illumination.

d The apparent diameter of Mars in arc seconds.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAPhysicalMoon

This class provides for calculation of various physical parameters related to the Moon. This refers to Chapter 53 in the book.

 

Functions this class provides include:

CalculateGeocentric

CalculateTopocentric

CalculateSelenographicPositionOfSun

AltitudeOfSun

TimeOfSunrise

TimeOfSunset

 

CAAPhysicalMoon::CalculateGeocentric

static CAAPhysicalMoonDetails CalculateGeocentric(double JD)

Return Value

A class containing

ldash The optical libration in longitude in degrees.

bdash The optical libration in latitude in degrees.

ldash2 The physical libration in longitude in degrees.

bdash2 The physical libration in latitude in degrees.

l The total libration in longitude in degrees.

b The total libration in latitude in degrees.

P The position angle in degrees of the Moon's axis of rotation.

Parameters

JD The date in Dynamical time to calculate for.

Remarks

Calculates the physical parameters referred to the centre of the Earth

 

CAAPhysicalMoon::CalculateTopcentric

static CAAPhysicalMoonDetails CalculateTopocentric(double JD, double Longitude, double Latitude)

Return Value

A class containing

ldash The optical libration in longitude in degrees.

bdash The optical libration in latitude in degrees.

ldash2 The physical libration in longitude in degrees.

bdash2 The physical libration in latitude in degrees.

l The total libration in longitude in degrees.

b The total libration in latitude in degrees.

P The position angle in degrees of the Moon's axis of rotation.

Parameters

JD The date in Dynamical time to calculate for.

Longitude The topocentric longitude in degrees of the position to perform the calculation for.

Latitude The topocentric latitude in degrees of the position to perform the calculation for.

Remarks

Calculates the physical parameters referred to the specified position on the Earth

 

CAAPhysicalMoon::CalculateSelenographicPositionOfSun

static CAAPSelenographicMoonDetails CalculateSelenographicPositionOfSun(double JD, bool bHighPrecision)

Return Value

A class containing

l0 The longitude in degrees of the sub solar point.

b0 The latitude in degrees of the sub solar point.

c0 The selenographic colongitude of the sun.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAPhysicalMoon::AltitudeOfSun

static double AltitudeOfSun(double JD, double Longitude, double Latitude, bool bHighPrecision)

Return Value

Returns the altitude in degrees of the Sun at the specified lunar location.

Parameters

JD The date in Dynamical time to calculate for.

Longitude The selenographic longitude in degrees of the position to perform the calculation for.

Latitude The selenographic latitude in degrees of the position to perform the calculation for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAPhysicalMoon::TimeOfSunrise

static double TimeOfSunrise(double JD, double Longitude, double Latitude, bool bHighPrecision)

Return Value

Returns the nearest Julian date in Dynamical time when the Sun rises at the specified lunar location. This value will always be earlier than the parameter "JD"

Parameters

JD The date in Dynamical time to calculate for.

Longitude The selenographic longitude in degrees of the position to perform the calculation for.

Latitude The selenographic latitude in degrees of the position to perform the calculation for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAPhysicalMoon::TimeOfSunset

static double TimeOfSunset(double JD, double Longitude, double Latitude, bool bHighPrecision)

Return Value

Returns the nearest Julian date in Dynamical time when the Sun rises at the specified lunar location. This value will always be later than the parameter "JD"

Parameters

JD The date in Dynamical time to calculate for.

Longitude The selenographic longitude in degrees of the position to perform the calculation for.

Latitude The selenographic latitude in degrees of the position to perform the calculation for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAPhysicalSun

This class provides for calculation of various physical parameters related to the Sun. This refers to Chapter 29 in the book.

 

Functions this class provides include:

Calculate

 

CAAPhysicalSun::Calculate

static CAAPhysicalSunDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class containing

P The position angle in degrees of the northern extremity of the axis of rotation.

B0 The heliographic latitude in degrees of the centre of the solar disk.

L0 The heliographic longitude in degrees of the centre of the solar disk.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAPlanetaryPhenomena

This class provides for the calculation of several configurations involving planets Mercury to Neptune; oppositions and conjunctions with the Sun, greatest elongations, and stations. This refers to Chapter 36 in the book.

 

Functions this class provides include:

K

Mean

True

ElongationValue

 

CAAPlanetaryPhenomena::K

static double K(double Year, PlanetaryObject object, EventType type)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetaryPhenomena) for calculation of the various event types.

Parameters

Year The Year including decimals to calculate the K value for.

object An enum specifying the planet to calculate for.

type An enum to specify the event type to calculate.

Remarks

Please note that the return value from this method must be rounded to an integer by client code before calling other methods in this class with this K value. Any other value of K will give meaningless values. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetaryPhenomena::Mean

static double Mean(double k, PlanetaryObject object, EventType type)

Return Value

Returns the date in Dynamical time when the specified mean planetary configuration occurs (that is, calculated from circular orbits and uniform planetary motions).

Parameters

k The K value to calculate the phenomena for. This K value must be an integer value. Any other value of K will give meaningless values.

object An enum specifying the planet to calculate for.

type An enum to specify the event type to calculate.

 

CAAPlanetaryPhenomena::True

static double True(double k, PlanetaryObject object, EventType type)

Return Value

Returns the date in Dynamical time when the true planetary configuration occurs.

Parameters

k The K value to calculate the phenomena for. This K value must be an integer value. Any other value of K will give meaningless values.

object An enum specifying the planet to calculate for.

type An enum to specify the event type to calculate.

 

CAAPlanetaryPhenomena::ElongationValue

static double ElongationValue(double k, PlanetaryObject object, bool bEastern)

Return Value

the value of the greatest elongation of a planet.

Parameters

k The K value to calculate the phenomena for. This K value must be an integer value. Any other value of K will give meaningless values.

object An enum specifying the planet to calculate for.

bEastern true if you want the elongation value for the eastern elongation, otherwise false implies western elongation.

 

 

CAAPlanetaryPhenomena2

This class uses interpolation to calculate the same details as those provided with the existing CAAPlanetaryPhenomena class.

 

Functions this class provides include:

Calculate

 

CAAPlanetaryPhenomena2::Calculate

static std::vector<CAAPlanetaryPhenomenaDetails2> Calculate(double StartJD, double EndJD, Object object, double StepInterval = 0.007, bool bHighPrecision = false)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be InferiorConjunctionInEclipticLongitude, InferiorConjunctionInRA, InferiorConjunctionInAngularDistance, SuperiorConjunctionInEclipticLongitude, SuperiorConjunctionInRA, SuperiorConjunctionInAngularDistance, GreatestWesternElongationInEclipticLongitude, GreatestWesternElongationInRA, GreatestWesternElongationInAngularDistance, GreatestEasternElongationInEclipticLongitude, GreatestEasternElongationInRA, GreatestEasternElongationInAngularDistance, OppositionInEclipticLongitude, OppositionInRA, OppositionInAngularDistance, ConjunctionInEclipticLongitude, ConjunctionInRA, ConjunctionInAngularDistance, Station1InEclipticLongitude, Station1InRA, Station2InEclipticLongitude, Station2InRA, WesternQuadratureInEclipticLongitude, WesternQuadratureInRA, WesternQuadratureInAngularDistance, EasternQuadratureInEclipticLongitude, EasternQuadratureInRA or EasternQuadratureInAngularDistance.

JD The date in Dynamical time on which the event occurs.

Value1 this will contain different values depending on the value in "type".

Value2 A second value which will contain different values depending on the value in "type".

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

Object The object type you want to calculate for. This is an enum class of type Object inside the CAAPlanetaryPhenomenaDetails2 class and can be MERCURY, VENUS, MARS, JUPITER, SATURN, URANUS or NEPTUNE.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

Notes

The definition of the "Type", its meaning, and the meaning of "Value" in the CAAPlanetPhenomenaDetails2 struct are as follows:

Type Meaning Value
InferiorConjunctionInEclipticLongitude The instant when the object's Apparent Ecliptic Longitude is the same as the Sun's and the object is between the Sun and Earth. This can only occur for Mercury or Venus. By definition the value 0.
InferiorConjunctionInRA The instant when the object's Apparent Right Ascension is the same as the Sun's and the object is between the Sun and Earth. This can only occur for Mercury or Venus. By definition the value 0.
InferiorConjunctionInAngularDistance The instant when the object's apparent elongation from the Sun is a minimum and the object is between the Sun and Earth. This can only occur for Mercury or Venus. The apparent elongation between the object and the Sun in degrees when the event occurs.
SuperiorConjunctionInEclipticLongitude The instant when the object's Apparent Ecliptic Longitude is the same as the Sun's and the object is beyond the Sun as seen from Earth. This can only occur for Mercury or Venus. By definition the value 0.
SuperiorConjunctionInRA The instant when the object's Apparent Right Ascension is the same as the Sun's and the object is beyond the Sun as seen from Earth. This can only occur for Mercury or Venus. By definition the value 0.
SuperiorConjunctionInAngularDistance The instant when the object's apparent elongation from the Sun is a minimum and the object is beyond the Sun as seen from Earth. This can only occur for Mercury or Venus. The apparent elongation between the object and the Sun in degrees when the event occurs.
GreatestWesternElongationInEclipticLongitude The instant when the difference in the object's Apparent Ecliptic Longitude and the Sun's is the greatest and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mercury or Venus. The positive difference between the object's Apparent Ecliptic Longitude and the Sun's in degrees when the event occurs.
GreatestWesternElongationInRA The instant when the difference in the object's Apparent Right Ascension and the Sun's is the greatest and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mercury or Venus. The positive difference between the object's Apparent Right Ascension and the Sun's in hours when the event occurs.
GreatestWesternElongationInAngularDistance The instant when the apparent elongation between the object and the Sun is a maximum and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mercury or Venus. The apparent elongation between the object and the Sun in degrees when the event occurs.
GreatestEasternElongationInEclipticLongitude The instant when the difference in the object's Apparent Ecliptic Longitude and the Sun's is a maximum and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mercury or Venus. The positive difference between the object's Apparent Ecliptic Longitude and the Sun's in degrees when the event occurs.
GreatestEasternElongationInRA The instant when the difference in the object's Apparent Right Ascension and the Sun's is a maximum and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mercury or Venus. The positive difference between the object's Apparent Right Ascension and the Sun's in hours when the event occurs.
GreatestEasternElongationInAngularDistance The instant when the apparent elongation between the object and the Sun's is a maximum and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mercury or Venus. The apparent elongation between the object and the Sun in degrees when the event occurs.
OppositionInEclipticLongitude The instant when the difference between the object's Apparent Ecliptic Longitude and the Sun's is 180 degrees. This can only occur for Mars to Neptune. By definition the value 180.
OppositionInRA The instant when the difference between the object's apparent Right Ascension and the Sun's is 12 hours. This can only occur for Mars to Neptune. By definition the value 12.
OppositionInAngularDistance The instant when the object's apparent elongation from the Sun is a maximum. This can only occur for Mars to Neptune. The apparent elongation between the object and the Sun in degrees when the event occurs. Will be quite close to 180 degrees.
ConjunctionInEclipticLongitude The instant when the difference between the object's Apparent Ecliptic Longitude and the Sun's is 0 degrees. This can only occur for Mars to Neptune. By definition the value 0.
ConjunctionInRA The instant when the difference between the object's Apparent Right Ascension and the Sun's is 0 hours. This can only occur for Mars to Neptune. By definition the value 0.
ConjunctionInAngularDistance The instant when the object's apparent elongation from the Sun is a minimum. This can only occur for Mars to Neptune. The apparent elongation between the object and the Sun in degrees when the event occurs.
Station1InEclipticLongitude The instant when the object starts to move westward (retrograde) in Ecliptic Longitude. This can only occur for Mars to Neptune. The Apparent Ecliptic Longitude of the object in degrees when the event occurs.
Station1InRA The instant when the object starts to move westward (retrograde) in Right Ascension. This can only occur for Mars to Neptune. The Apparent Right Ascension of the object in hours when the event occurs.
Station2InEclipticLongitude The instant when the object resumes eastward (prograde) motion in Ecliptic Longitude. This can only occur for Mars to Neptune. The Apparent Ecliptic Longitude of the object in degrees when the event occurs.
Station2InRA The instant when the object resumes eastward (prograde) motion in Right Ascension. This can only occur for Mars to Neptune. The Apparent Right Ascension of the object in hours when the event occurs.
WesternQuadratureInEclipticLongitude The instant when the difference between the object's Apparent Ecliptic Longitude and the Sun's is 90 degrees and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mars to Neptune. By definition the value 90.
WesternQuadratureInRA The instant when the difference between the object's Apparent Right Ascension and the Sun's is 6 hours and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mars to Neptune. By definition the value 6.
WesternQuadratureInAngularDistance The instant when the objects's apparent elongation from the Sun is 90 degrees and the object is to the west of the Sun and is visible in the morning sky. This can only occur for Mars to Neptune. By definition the value 90.
EasternQuadratureInEclipticLongitude The instant when the difference between the object's Apparent Ecliptic Longitude and the Sun's is 90 degrees and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mars to Neptune. By definition the value 90.
EasternQuadratureInRA The instant when the difference between the object's Apparent Right Ascension and the Sun's is 6 hours and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mars to Neptune. By definition the value 6.
EasternQuadratureInAngularDistance The instant when the object's apparent elongation from the Sun is 90 degrees and the object is to the east of the Sun and is visible in the evening sky. This can only occur for Mars to Neptune. By definition the value 90.
MinimumDistance The instance when the object is closest to the Earth. The geocentric distance to the object in AU.
MaximumDistance The instance when the object is farthest away from the Earth. The geocentric distance to the object in AU.

 

 

CAAPlanetPerihelionAphelion

This class provides for the calculation of the time when a planet is in perihelion or in aphelion. This refers to Chapter 38 in the book.

 

Functions this class provides include:

MercuryK

Mercury

VenusK

Venus

EarthK

EarthPerihelion

EarthAphelion

MarsK

Mars

JupiterK

Jupiter

SaturnK

Saturn

UranusK

Uranus

NeptuneK

Neptune

 

CAAPlanetPerihelionAphelion::MercuryK

static double MercuryK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Mercury for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Mercury

static double Mercury(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::VenusK

static double VenusK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Venus for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Venus

static double Venus(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::EarthK

static double EarthK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::EarthPerihelion & CAAPlanetPerihelionAphelion::EarthAphehelion for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::EarthPerihelion

static double EarthPerihelion(double k, bool bBarycentric = false)

Return Value

Returns the date in Dynamical time when the specified Perihelion occurs.

Parameters

k The K value to calculate the Perihelion for. This K value must be an integer value. Any other value of K will give meaningless values.

bBarycentric  If true, the calculation is for the barycenter of the Earth - Moon system, false implies the Earth itself.

 

CAAPlanetPerihelionAphelion::EarthAphelion

static double EarthAphelion(double k, bool bBarycentric = false)

Return Value

Returns the date in Dynamical time when the specified Aphelion occurs.

Parameters

k The K value to calculate the Aphelion for. This K value must be an integer value + 0.5. Any other value of K will give meaningless values.

bBarycentric  If true, the calculation is for the barycenter of the Earth - Moon system, false implies the Earth itself

 

CAAPlanetPerihelionAphelion::MarsK

static double MarsK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Mars for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Mars

static double Mars(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::JupiterK

static double JupiterK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Jupiter for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Jupiter

static double Jupiter(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::SaturnK

static double SaturnK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Saturn for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Saturn

static double Saturn(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::UranusK

static double UranusK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Uranus for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Uranus

static double Uranus(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

CAAPlanetPerihelionAphelion::NeptuneK

static double NeptuneK(double Year)

Return Value

Returns the approximate value of K required by CAAPlanetPerihelionAphelion::Neptune for calculation of the dates of Perihelion or Aphelion.

Parameters

Year The Year including decimals to calculate the K value for.

Remarks

Please note that the return value from this method must be rounded by client code before calling other methods in this class with this K value. Prior to v2.26 of AA+, this method would return the K value already rounded. This change was made to make this method's behavior consistent with all the other methods in the AA+ framework which return so called "K" values.

 

CAAPlanetPerihelionAphelion::Neptune

static double NeptunePerihelion(double k)

Return Value

Returns the date in Dynamical time when the specified Perihelion or Aphelion occurs.

Parameters

k The K value to calculate the Perihelion or Aphelion for. This K value must be an integer value for Perihelion or an integer value + 0.5 for Aphelion. Any other value of K will give meaningless values.

 

 

CAAPlanetPerihelionAphelion2

This class uses interpolation to calculate the same details as those provided with the existing CAAPlanetPerihelionAphelion class.

 

Functions this class provides include:

Calculate

 

CAAPlanetPerihelionAphelion2::Calculate

static std::vector<CAAPlanetPerihelionAphelionDetails2> Calculate(double StartJD, double EndJD, Object object, double StepInterval = 0.007, bool bHighPrecision = false)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Perihelion or Aphelion.

JD The date in Dynamical time on which the event occurs.

Value this will be the distance of the object in AU at time JD.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

Object The object type you want to calculate for. This is an enum class of type Object inside the CAAPlanetPerihelionAphelionDetails2 class and can be MERCURY, VENUS, EARTH, MARS, JUPITER, SATURN, URANUS, NEPTUNE or PLUTO.

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

Notes

As mentioned in Meeus's book on page 271, care should be taken for the case of Neptune. This planet has a slow motion and a small orbital eccentricity. On the other hand, the Sun is oscillating around the barycenter of the solar system, mainly due to the actions of Jupiter and Saturn. Consequently, the distance of Neptune to the Sun (not to the barycenter of the solar system) can reach a double maximum or minimum. These double values will be reported by this class as it looks for simple extreme values for the radius vector of the planet. These additional extreme values have been called apheloid and periheloid by Jean Meeus in the book.

 

 

CAAPluto

This class provides for calculation of the heliocentric position of Pluto. This refers to Chapter 37 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAPluto::EclipticLongitude

static double EclipticLongitude(double JD)

Return Value

the ecliptic longitude in degrees referred to the standard equinox J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAPluto::EclipticLatitude

static double EclipticLatitude(double JD)

Return Value

the ecliptic latitude in degrees referred to the standard equinox J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAPluto::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAPrecession

This class provides for the calculation of the slow drift that the direction of the rotational axis of the Earth undergoes over time. This refers to Chapter 21 in the book.

 

Functions this class provides include:

PrecessEquatorial

PrecessEquatorialFK4

PrecessEcliptic

EquatorialPMToEcliptic

AdjustPositionUsingUniformProperMotion

AdjustPositionUsingMotionInSpace

 

CAAPrecession::PrecessEquatorial

static CAA2DCoordinate PrecessEquatorial(double Alpha, double Delta, double JD0, double JD)

Return Value

Returns the precessed equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the right ascension as an hour angle and the y value corresponds to the declination in degrees.

Parameters

Alpha The right ascension in hours of the object at time JD0.

Delta The declination in degrees of the object at time JD0.

JD0 The date in Dynamical time corresponding to the initial epoch.

JD The date in Dynamical time corresponding to the final epoch.

 

CAAPrecession::PrecessEquatorialFK4

static CAA2DCoordinate PrecessEquatorialFK4(double Alpha, double Delta, double JD0, double JD)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the equatorial right ascension in the FK5 system as an hour angle and the y value corresponds to the declination in the FK5 system in degrees.

Parameters

Alpha The right ascension in hours of the object at time JD in the FK4 system.

Delta The declination in degrees of the object at time JD in the FK4 system.

JD0 The date in Dynamical time corresponding to the initial epoch.

JD The date in Dynamical time corresponding to the final epoch.

 

CAAPrecession::PrecessEcliptic

static CAA2DCoordinate PrecessEcliptic(double Lambda, double Beta, double JD0, double JD)

Return Value

Returns the converted ecliptic coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the ecliptical longitude in degrees and the y value corresponds to the ecliptical latitude in degrees.

Parameters

Lambda The ecliptical longitude in degrees.

Beta The ecliptical latitude of the star in degrees.

JD0 The date in Dynamical time corresponding to the initial epoch.

JD The date in Dynamical time corresponding to the final epoch.

 

CAAPrecession::EquatorialPMToEcliptic

static CAA2DCoordinate EquatorialPMToEcliptic(double Alpha, double Delta, double Beta, double PMAlpha, double PMDelta, double Epsilon)

Return Value

Returns the converted ecliptic proper motions in a CAA2DCoordinate class. The x value in the class corresponds to the proper motion in ecliptical longitude in arc seconds per year and the y value corresponds to the proper motion in ecliptical latitude in arc seconds per year.

Parameters

Alpha The right ascension expressed as an hour angle.

Delta The declination in degrees.

Beta The ecliptical latitude of the star in degrees.

PMAlpha The proper motion in right ascension in arc seconds per year.

PMDelta The proper motion of the declination in arc seconds per year.

Epsilon The obliquity of the ecliptic in degrees.

 

CAAPrecession::AdjustPositionUsingUniformProperMotion

static CAA2DCoordinate AdjustPositionUsingUniformProperMotion(double t, double Alpha, double Delta, double PMAlpha, double PMDelta)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the right ascension expressed as an hour angle and the y value corresponds to the declination in degrees.

Parameters

t The number of years from the starting epoch, negative in the past and positive in the future.

Alpha The right ascension expressed as an hour angle.

Delta The declination in degrees.

PMAlpha The proper motion in right ascension in arc seconds per year.

PMDelta The proper motion in declination in arc seconds per year.

 

CAAPrecession::AdjustPositionUsingMotionInSpace

static CAA2DCoordinate AdjustPositionUsingMotionInSpace(double r, double deltar, double t, double Alpha, double Delta, double PMAlpha, double PMDelta)

Return Value

Returns the converted equatorial coordinates in a CAA2DCoordinate class. The x value in the class corresponds to the right ascension expressed as an hour angle and the y value corresponds to the declination in degrees.

Parameters

r The stars distance in parsecs.

deltar The radial velocity  in km/s.

t The number of years from the starting epoch, negative in the past and positive in the future.

Alpha The right ascension expression as an hour angle.

Delta The declination in degrees.

PMAlpha The proper motion in right ascension in arc seconds per year.

PMDelta The proper motion in declination in arc seconds per year.

 

 

CAARefraction

This class provides for conversion between apparent and true altitude above the horizon. This refers to Chapter 16 in the book.

 

Functions this class provides include:

RefractionFromApparent

RefractionFromTrue

 

CAARefraction::RefractionFromApparent

static double RefractionFromApparent(double Altitude, double Pressure = 1010, double Temperature = 10)

Return Value

the refraction in degrees.

Parameters

Altitude The apparent altitude in degrees.

Pressure The atmospheric pressure in millibars

Temperature The air temperature in degrees Celsius.

 

CAARefraction::RefractionFromTrue

static double RefractionFromTrue(double Altitude, double Pressure = 1010, double Temperature = 10)

Return Value

the refraction in degrees.

Parameters

Altitude The true altitude in degrees.

Pressure The atmospheric pressure in millibars

Temperature The air temperature in degrees Celsius.

 

 

CAARiseTransitSet (Deprecated)

This class provides for calculation of the time of rise, transit and set of a celestial body. This refers to Chapter 15 in the book. Please note that this class is now considered deprecated as of v2.02 of AA+ and may be removed in a future release of the library. Please use the CAARiseTransitSet2 class instead.

 

Functions this class provides include:

Calculate

 

CAARiseTransitSet::Calculate

static CAARiseTransitSetDetails Calculate(double JD, double Alpha1, double Delta1, double Alpha2, double Delta2, double Alpha3, double Delta3, double Longitude, double Latitude, double h0)

Return Value

A class containing

bRiseValid true if the object actually rises for the specified date.

Rise The time in decimal hours when the object rises

bTransitValid true if the object transits for the specified date.

bTransitAboveHorizon true if the object transits above the horizon, false indicates it transits below the horizon.

Transit The time in hours when the object transits

bSetValid true if the object actually sets for the specified date.

Set The time in hours when the object sets

Parameters

JD The Julian Day corresponding to that midnight Dynamical Time for the date when you want to perform the calculation.

Alpha1 The right ascension in hours of the object at time JD - 1 day

Delta1 The declination in degrees of the object at time JD - 1 day

Alpha2 The right ascension in hours of the object at time JD

Delta2 The declination in degrees of the object at time JD

Alpha3 The right ascension in hours of the object at time JD + 1 day

Delta3 The declination in degrees of the object at time JD + 1 day

Longitude The geographic longitude of the observer in degrees (Positive west, negative east from Greenwich)

Latitude The geographic latitude of the observer in degrees.

h0 The "standard" altitude in degrees i.e. the geometric altitude of the centre of the body at the time of the apparent rising or setting. For stars and planets, you would normally use -0.5667, for the Sun you would use -0.8333 and for the moon you would use 0.7275 * PI - 0.5666 where PI is the Moon's horizontal parallax in degrees (If no great accuracy is required, the mean value of h0 = 0.125 can be used).

Remarks

Bear in mind that the times calculated for the phenomena are for the same UTC date. This means that when you are in a non GMT timezone, the calculated local times can be for the previous or next day. Please bear this issue in mind if you are generating an ephemeris of rise, transit and set times for a celestial object for a specific range of local dates. In this case, you will need to rerun the calculation for the previous or next UTC date if the calculated local date is not the same as the required local date.

Another wrinkle to how this method operates is that the same event can occur twice in the same day, even though this method does not provide a method to allow this to be easily obtained. For example, imagine you are located in the timezone PDT which is 4 hours behind GMT and you are calculating the times of sunset during the month of August, when PDT would be in effect. During this period, the length of the day is gradually reducing and the time of sunrise is getting earlier every day. Combined with the fact that the calculated time of Sunset for this period is around 20:00 local time or midnight UTC, you get this interesting effect where Sunrise occurs just around midnight UTC and then again just before midnight the following day! If you use the following code:

int main()
{
  CAADate CalcDate(2009, 8, 8, true);
  double JD = CalcDate.Julian();
  JD = CalcDate.Julian() + 0.010; //to get the effect to be demonstrated
  for (int i = 0; i<5; i++)
  {
    JD += 1.000;
    CAAEllipticalPlanetaryDetails SunDetails = CAAElliptical::Calculate(JD - 1, CAAElliptical::SUN, false);
    double Alpha1 = SunDetails.ApparentGeocentricRA;
    double Delta1 = SunDetails.ApparentGeocentricDeclination;
    SunDetails = CAAElliptical::Calculate(JD, CAAElliptical::SUN, false);
    double Alpha2 = SunDetails.ApparentGeocentricRA;
    double Delta2 = SunDetails.ApparentGeocentricDeclination;
    SunDetails = CAAElliptical::Calculate(JD + 1, CAAElliptical::SUN, false);
    double Alpha3 = SunDetails.ApparentGeocentricRA;
    double Delta3 = SunDetails.ApparentGeocentricDeclination;
    CAARiseTransitSetDetails RiseTransitSetTime = CAARiseTransitSet::Calculate(JD, Alpha1, Delta1, Alpha2, Delta2, Alpha3, Delta3, 74.73057, 39.275787, -0.8333);
    double rtsJD = (JD + (RiseTransitSetTime.Set / 24.00));
    double lclJD = rtsJD - (4.00/24.00); //Adjust for EDT -4 Hours
    CAADate SetDate(rtsJD,true);
    long setDay;
    long setMonth;
    long setYear;
    long setHours;
    long setMinuts;
    double setSec;
    SetDate.Get(setYear,setMonth, setDay, setHours, setMinuts, setSec);
    printf("Sunset for %d/%d/%d UTC occurs at %02d:%02d:%02d\n", static_cast<int>(setYear), static_cast<int>(setMonth), static_cast<int>(setDay), static_cast<int>(setHours), static_cast<int>(setMinuts), static_cast<int>(setSec));
    CAADate SetLclDate(lclJD, true);
    long setlclDay;
    long setlclMonth;
    long setlclYear;
    long setlclHours;
    long setlclMinuts;
    double setlclSec;
    SetLclDate.Get(setlclYear,setlclMonth, setlclDay, setlclHours, setlclMinuts, setlclSec);
    printf("Sunset for %d/%d/%d PDT occurs at %02d:%02d:%02d\n\n", static_cast<int>(setlclYear), static_cast<int>(setlclMonth), static_cast<int>(setlclDay), static_cast<int>(setlclHours), static_cast<int>(setlclMinuts), static_cast<int>(setlclSec));
  }
  return 0;
}

You will observe the following output, which demonstrates this effect:

Sunset for 2009/8/10 UTC occurs at 00:01:40
Sunset for 2009/8/9 PDT occurs at 20:01:40

Sunset for 2009/8/11 UTC occurs at 00:00:26
Sunset for 2009/8/10 PDT occurs at 20:00:26

Sunset for 2009/8/11 UTC occurs at 23:59:11
Sunset for 2009/8/11 PDT occurs at 19:59:11

Sunset for 2009/8/12 UTC occurs at 23:57:55
Sunset for 2009/8/12 PDT occurs at 19:57:55

Sunset for 2009/8/13 UTC occurs at 23:56:38
Sunset for 2009/8/13 PDT occurs at 19:56:38

Your client code which uses this method will need to handle this situation itself.

 

 

CAARiseTransitSet2

This class provides for revised algorithms to address issues with the existing CAARiseTransitSet class which as of v2.02 is now considered deprecated. This class and its methods are designed as an improvement on the CAARiseTransiteSet class algorithms as provided by in the book. In Q3 2019, some users of AA+ reported that if you used the existing class with a location of either the North or South Poles, that it would fail to find the single sun rise and set times during a whole year. At the poles of course there is just one sun rise and one sun set per year. Each of these events occur quite close to the Equinoxes. Following a private email conversation with Jean Meeus, he confirmed that the CAARiseTransitSet algorithms as presented in the book fail under certain circumstances. In fact the issues which have been reported with this class over the years are almost all a result of the deficiencies of Meeus's algorithms for calculating rise / transit and set. This class is a ground up rewrite with a new step based interpolation algorithm. They will work for any Dynamical Time date range and as such will handle the issue of looking for events when referred to a local time zone day range. It will also detect all types of events during the requested search interval. It will also return northern transits in addition to southern transits and can return multiple occurrences of the same type of event in a 24 hour interval. The code has also been extensively tested for various locations such as the North Pole, South Pole etc. and spot checked against other sources. This class will also return the altitude of transit events and the bearing / azimuth at which rise and set events occur.

 

Functions this class provides include:

Calculate

CalculateMoon

CalculateStationary

 

CAARiseTransitSet2::Calculate

static std::vector<CAARiseTransitSetDetails2> Calculate(double StartJD, double EndJD, Object object, double Longitude, double Latitude, double h0, double StepInterval = 0.007, bool bHighPrecision = false)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Rise, Set, SouthernTransit, NorthernTransit, CivilDusk, NauticalDusk, AstronomicalDusk, AstronomicalDawn, NauticalDawn or CivilDawn.

JD The date in Dynamical time on which the event occurs.

Bearing Valid only for Rise, Set or Twilight events, this will be the azimuth location of the event in degrees west of south.

GeometricAltitude Valid only for SourthernTransit or NorthernTransit events, this will be the geometric altitude in degrees of the center of the object not including correction for refraction for the event.

bAboveHorizon Valid only for SourthernTransit or NorthernTransit events, this will be true if the transit is visible i.e. the apparent altitude of the top of the object (including the standard "altitude" refraction correction) is above the horizon.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

Object The object type you want to calculate for. This is an enum class of type Object inside the CAARiseTransitSet2 class and can be SUN, MOON, MERCURY, VENUS, MARS, JUPITER, SATURN, URANUS, or NEPTUNE.

Longitude The geographic longitude of the observer in degrees (Positive west, negative east from Greenwich).

Latitude The geographic latitude of the observer in degrees.

h0 The "standard" altitude in degrees i.e. the geometric altitude of the center of the body at the time of the apparent rising or setting. For stars and planets, you would normally use -0.5667, for the Sun you would use -0.8333 and for the Moon you would use -0.825. The value to use for the Moon should be -0.825 and not 0.125 as described in Meeus's book. This is because this method already applies parallax corrections for the Moon when converting the geocentric position of the Moon to topocentric coordinates. If you would like to take atmospheric pressure & temperature into account for the amount of refraction to use for this parameter, you can use the CAARefraction class to calculate a custom value. If you would like to take the altitude of the observer into account for calculating Sun rise and Sun sets (such as an observer flying in a plane), then you could use the formulae: double H0 = -0.8333 - CAACoordinateTransformation::RadiansToDegrees(acos(6371008 / (6371008 + Height))) where Height is the altitude above sea-level in meters (assuming you also do not want to account for variable temperature and pressure). For the moon you could use: double H0 = -0.825 - CAACoordinateTransformation::RadiansToDegrees(acos(6371008 / (6371008 + Height))).

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy for calculating rise / transit and set times.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book. This parameter is not used if you specify Moon for the "object" parameter. This parameter is only used when calculating events for the Sun or planets. This method always uses the truncated Meeus ELP2000 theory when calculating events for the Moon. If you would like to specify the theory used to calculate the position of the Moon to find events, you can use the CalculateMoon method.

Remarks

Set is defined when the apparent top edge of the object is exacly on the horizon and the altitude of the object is decreasing.

Rise is defined when the apparent top edge of the object is exacly on the horizon and the altitude of the object is increasing.

Civil Dusk is defined when the geometric center of the Sun is 6 degress below the horizon and the altitude of the Sun is decreasing (i.e. in the local evening time after the Sun has set).

Nautical Dusk is defined when the geometric center of the Sun is 12 degress below the horizon and the altitude of the Sun is decreasing (i.e. in the local evening time after the Sun has set).

Astronomical Dusk is defined when the geometric center of the Sun is 18 degress below the horizon and the altitude of the Sun is decreasing (i.e. in the local evening time after the Sun has set).

Civil Dawn is defined when the geometric center of the Sun is 6 degress below the horizon and the altitude of the Sun is increasing (i.e. in the local morning time before the Sun has risen).

Nautical Dawn is defined when the geometric center of the Sun is 12 degress below the horizon and the altitude of the Sun is increasing (i.e. in the local morning time before the Sun has risen).

Astronomical Dawn is defined when the geometric center of the Sun is 18 degress below the horizon and the altitude of the Sun is increasing (i.e. in the local morning time before the Sun has risen).

Please note that this method calculates the times of dusk and dawn for an observer at sea level and does not take atmospheric refraction or altitude of the observer into account. This is unlike the calculation of rise and set which does take this into account due to the presence and usage of the h0 parameter.

 

CAARiseTransitSet2::CalculateMoon

static std::vector<CAARiseTransitSetDetails2> CalculateMoon(double StartJD, double EndJD, double Longitude, double Latitude, double RefractionAtHorizon = -0.5667, double StepInterval = 0.007, MoonAlgorithm algorithm = MoonAlgorithm::MeeusTruncated)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Rise, Set, SouthernTransit or NorthernTransit.

JD The date in Dynamical time on which the event occurs.

Bearing Valid only for Rise or Set events, this will be the azimuth location of the event in degrees west of south.

GeometricAltitude Valid only for SourthernTransit or NorthernTransit events, this will be the geometric altitude in degrees of the center of the Moon not including correction for refraction for the event.

bAboveHorizon Valid only for SourthernTransit or NorthernTransit events, this will be true if the transit is visible i.e. the apparent altitude of the top of the Moon (including the standard "altitude" refraction correction) is above the horizon.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

Longitude The geographic longitude of the observer in degrees (Positive west, negative east from Greenwich).

Latitude The geographic latitude of the observer in degrees.

RefractionAtHorizon The amount of refraction in degrees to use at the horizon. The default value of -0.5667 corresponds to the standard "altitude" value for a star as used in the Calculate method. If you would like to take atmospheric pressure & temperature into account for the amount of refraction to use for this parameter, you can use the CAARefraction class to calculate a custom value. If you would like to take the altitude of the observer into account for calculating Moon rise and Moon sets (such as an observer flying in a plane), then you could use the formulae: double RefractionAtHorizon = -0.5667 - CAACoordinateTransformation::RadiansToDegrees(acos(6371008 / (6371008 + Height))) where Height is the altitude above sea-level in meters (assuming you also do not want to account for variable temperature and pressure).

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy for calculating rise / transit and set times.

Algorithm An enum class representing the algorithm to use for the calculation. Can be MeeusTruncated which represents the truncated ELP2000 algorithm presented in the book, ELP2000 which uses the full ELP2000 algorithm, ELPMPP02Nominal which uses the ELPMPP02 Nominal fit, ELPMPP02LLR which uses the ELPMPP02 Lunar Laser Ranging fit, ELPMPP02DE405 which uses the ELPMPP02 DE405 fit and ELPMPP02DE406 which uses the ELPMPP02 DE406 fit.

Remarks

This version of the algorithm provides a higher precision method to calculate the rise / transit and set times of the Moon compared to the Calculate method. This is necessary because the "standard" altitude value for the Moon is not constant and depends significantly on the Moon's distance / parallax as well as the "RefractionAtHorizon" parameter. Internally this method calculates the apparent topocentric semidiameter of the moon in degrees and subtracts that value from the RefractionAtHorizon parameter to arrive at the "standard" altitude used to calculate events. In addition this method allows you to specify the theory to use to calculate the position of the Moon.

 

CAARiseTransitSet2::CalculateStationary

static std::vector<CAARiseTransitSetDetails2> CalculateMoon(double StartJD, double EndJD, double Alpha, double Delta, double Longitude, double Latitude, double h0 = -0.5667, double StepInterval = 0.007)

Return Value

A standard C++ array containing a class which itself contains:

type An enum class instance which represents the type of event found. This can be Rise, Set, SouthernTransit or NorthernTransit.

JD The date in Dynamical time on which the event occurs.

Bearing Valid only for Rise or Set events, this will be the azimuth location of the event in degrees west of south.

GeometricAltitude Valid only for SourthernTransit or NorthernTransit events, this will be the geometric altitude in degrees of the center of the object not including correction for refraction for the event.

bAboveHorizon Valid only for SourthernTransit or NorthernTransit events, this will be true if the transit is visible i.e. the apparent altitude of the top of the object (including the standard "altitude" refraction correction) is above the horizon.

Parameters

StartJD The Julian Day corresponding to the Dynamical Time for the date when you want to start the calculation for.

EndJD The Julian Day corresponding to the Dynamical Time for the date when you want to end the calculation for.

Alpha The right ascension of the object expressed as decimal hours.

Delta The declination of the object in degrees.

Longitude The geographic longitude of the observer in degrees (Positive west, negative east from Greenwich).

Latitude The geographic latitude of the observer in degrees.

h0 The "standard" altitude in degrees i.e. the geometric altitude of the center of the body at the time of the apparent rising or setting. This defaults to -0.5667 which is appropriate for a star. If you would like to take atmospheric pressure & temperature into account for the amount of refraction to use for this parameter, you can use the CAARefraction class to calculate a custom value. If you would like to take the altitude of the observer into account for calculating rise and sets (such as an observer flying in a plane), then you could use the formulae: double h0 = -0.5667 - CAACoordinateTransformation::RadiansToDegrees(acos(6371008 / (6371008 + Height))) where Height is the altitude above sea-level in meters (assuming you also do not want to account for variable temperature and pressure).

StepInterval The step interval in fractions of days to do the calculation for. The default value of 0.007 corresponds to roughly 10 minutes which is a reasonable tradeoff between performance and accuracy for calculating rise / transit and set times.

Remarks

This version of the algorithm allows you to calculate the rise / transit and set times of an object which is stationary in the sky with fixed Right Ascension and Declination e.g. a star.

 

 

CAASaturn

This class provides for calculation of the heliocentric position of Saturn. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAASaturn::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASaturn::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASaturn::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAASaturnMoons

This class provides for calculation of positions of the principle moons of Saturn. This refers to Chapter 46 in the book.

 

Functions this class provides include:

Calculate

 

CAASaturnMoons::Calculate

static CAASaturnMoonsDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class which itself contains a class for each moon. This contained class itself contains

TrueRectangularCoordinates The true 3D rectangular coordinates of the moon.

ApparentRectangularCoordinates The apparent 3D rectangular coordinates of the moon.

bInTransit A Boolean which if true means that the moon is in front of Saturn as viewed from the Earth otherwise false.

bInOccultation A Boolean which if true means that the moon is behind Saturn as viewed from the Earth otherwise false.

bInEclipse A Boolean which if true means that the moon is behind Saturn as viewed from the Sun otherwise false.

bInShadowTransit A Boolean which if true means that the moon is in front of Saturn as viewed from the Earth otherwise false.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAASaturnRings

This class provides for calculation of various parameters related to the Rings of Saturn. This refers to Chapter 45 in the book.

 

Functions this class provides include:

Calculate

 

CAASaturnRings::Calculate

static CAASaturnRingDetails Calculate(double JD, bool bHighPrecision)

Return Value

A class containing

B The Saturnicentric latitude in degrees of the Earth referred to the plane of the ring.

Bdash The Saturnicentric latitude in degrees of the Sun referred to the plane of the ring.

P The geocentric position angle of the Northern semi minor axis of the apparent ellipse of the ring.

a The major axis of the outer edge of the outer ring in arc seconds.

b The minor axis of the outer edge of the outer ring in arc seconds.

DeltaU The difference in degrees between the Saturnicentric longitudes of the Sun and the Earth, measured in the plane of the ring. This quantity is required for the calculation of Saturn's magnitude.

U1 The Saturnicentric longitude of the Sun in degrees.

U2 The Saturnicentic longitude of the Earth in degrees.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAASidereal

This class provides for the calculation of sidereal time. This refers to Chapter 12 in the book.

 

Functions this class provides include:

MeanGreenwichSiderealTime

ApparentGreenwichSiderealTime

 

CAASidereal::MeanGreenwichSiderealTime

static double MeanGreenwichSiderealTime(double JD)

Return Value

The Mean Greenwich Sidereal Time, that is, the Greenwich hour angle of the mean vernal point (the intersection of the ecliptic of the date with the mean equator of the date), expressed in hours.

Parameters

JD The Julian Day in Universal time to calculate for.

 

CAASidereal::ApparentGreenwichSiderealTime

static double ApparentGreenwichSiderealTime(double JD)

Return Value

The Apparent Greenwich Sidereal Time, that is, the Greenwich hour angle of the true vernal equinox, expressed in hours.

Parameters

JD The Julian Day in Universal time to calculate for.

 

 

CAAStellarMagnitudes

This class provides for calculation of the combined magnitude of two stars. This refers to Chapter 56 in the book.

 

Functions this class provides include:

CombinedMagnitude

CombinedMagnitude

BrightnessRatio

MagnitudeDifference

 

CAAStellarMagnitudes::CombinedMagnitude

static double CombinedMagnitude(double m1, double m2)

Return Value

the combined magnitude of two stars.

Parameters

m1 The magnitude of the first star.

m2  The magnitude of the second star.

 

CAAStellarMagnitudes::CombinedMagnitude

static double CombinedMagnitude(int Magnitudes, const double* pMagnitudes)

Return Value

the combined magnitude of more that two stars.

Parameters

Magnitudes The number of magnitudes to combine from "pMagnitudes".

magnitudes  The sum of all the star magnitudes.

 

CAAStellarMagnitudes::BrightnessRatio

static double BrightnessRatio(double m1, double m2);

Return Value

the ratio of the apparent luminosities of the two stars.

Parameters

m1 The magnitude of the first star.

m2  The magnitude of the second star.

 

CAAStellarMagnitudes::MagnitudeDifference

static double MagnitudeDifference(double brightnessRatio)

Return Value

the difference in magnitude between the stars.

Parameters

brightnessRatio The ratio of the apparent luminosities of the two stars.

 

 

CAASun

This class provides for calculation of the geocentric position of the Sun. This refers to Chapter 25 & 26 in the book.

 

Functions this class provides include:

GeometricEclipticLongitude

GeometricEclipticLatitude

GeometricFK5EclipticLongitude

GeometricFK5EclipticLatitude

ApparentEclipticLongitude

ApparentEclipticLatitude

EquatorialRectangularCoordinatesMeanEquinox

EclipticRectangularCoordinatesJ2000

EquatorialRectangularCoordinatesJ2000

EquatorialRectangularCoordinatesB1950

EquatorialRectangularCoordinatesAnyEquinox

VariationGeometricEclipticLongitude

 

CAASun::GeometricEclipticLongitude

static double GeometricEclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::GeometricEclipticLatitude

static double GeometricEclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::GeometricFK5EclipticLongitude

static double GeometricFK5EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::GeometricFK5EclipticLatitude

static double GeometricFK5EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::ApparentEclipticLongitude

static double ApparentEclipticLongitude(double JD, bool bHighPrecision)

Return Value

the apparent ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in theFK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::ApparentEclipticLatitude

static double ApparentEclipticLatitude(double JD, bool bHighPrecision)

Return Value

the apparent ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::EquatorialRectangularCoordinatesMeanEquinox

static CAA3DCoordinate EquatorialRectangularCoordinatesMeanEquinox(double JD, bool bHighPrecision)

Return Value

A class containing the equatorial 3D rectangular coordinates in astronomical units referred to the mean dynamical ecliptic and equinox of the date defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::EclipticRectangularCoordinatesJ2000

static CAA3DCoordinate EclipticRectangularCoordinatesJ2000(double JD, bool bHighPrecision)

Return Value

A class containing the ecliptic 3D rectangular coordinates in astronomical units referred to the J2000 equinox defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::EquatorialRectangularCoordinatesJ2000

static CAA3DCoordinate EquatorialRectangularCoordinatesJ2000(double JD, bool bHighPrecision)

Return Value

A class containing the equatorial 3D rectangular coordinates in astronomical units referred to the J2000 equinox defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::EquatorialRectangularCoordinatesB1950

static CAA3DCoordinate EquatorialRectangularCoordinatesJ2000(double JD, bool bHighPrecision)

Return Value

A class containing the equatorial 3D rectangular coordinates in astronomical units referred to the B1950 equinox defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::EquatorialRectangularCoordinatesAnyEquinox

static CAA3DCoordinate EquatorialRectangularCoordinatesAnyEquinox(double JD, double JDEquinox)

Return Value

A class containing the equatorial 3D rectangular coordinates in astronomical units referred to the specified equinox defined in the FK5 theory.

Parameters

JD The date in Dynamical time to calculate for.

JDEquinox The date in Dynamical time specifying the equinox to use.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAASun::VariationGeometricEclipticLongitude

static double VariationGeometricEclipticLongitude(double JD)

Return Value

The variation in ecliptic longitude in arcseconds per day of the Sun due to aberation.

Parameters

JD The date in Dynamical time to calculate for. The value returned by this method is used to convert the geometric ecliptic longitude of the Sun to the apparent longitude. This refers to equation on page 168.

 

 

CAAUranus

This class provides for calculation of the heliocentric position of Uranus. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAUranus::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAUranus::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAUranus::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAVenus

This class provides for calculation of the heliocentric position of Venus. This refers to Chapter 32 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAVenus::EclipticLongitude

static double EclipticLongitude(double JD, bool bHighPrecision)

Return Value

the ecliptic longitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAVenus::EclipticLatitude

static double EclipticLatitude(double JD, bool bHighPrecision)

Return Value

the ecliptic latitude in degrees referred to the mean dynamical ecliptic and equinox of the date defined in the VSOP theory.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

CAAVenus::RadiusVector

static double RadiusVector(double JD, bool bHighPrecision)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

bHighPrecision If true then use the full VSOP87 theory instead of the truncated version as provided in Meeus's book.

 

 

CAAVSOP2013

This class provides for calculation of the heliocentric elliptical orbital elements and the heliocentric ecliptical and equatorial position and velocity of Mercury, Venus, the Earth-Moon Barycenter, Mars, Jupiter, Saturn, Uranus, Neptune and the dwarf planet Pluto for the equinox and ecliptic of J2000.0. Please refer to ftp.imcce.fr/pub/ephem/planets/vsop2013/ for further details. Please note that unlike VSOP87, it does not provide for calculation of the Earth ifself and only the Earth-Moon Barycenter and as such cannot be integrated directly into other AA+ code which calculates the position of a specific planet from a specific location on Earth. Instead this class could be used for implementing 3D simulations of our solar system as a whole.

 

Functions this class provides include:

SetBinaryFilesDirectory

GetBinaryFilesDirectory

Calculate

CalculateOrbit

CalculateMeanMotion

OrbitToElements

Ecliptic2Equatorial

 

CAAVSOP2013::SetBinaryFilesDirectory

void SetBinaryFilesDirectory(const std::filesystem::path::value_type* pszBinaryFilesDirectory)

Parameters

pszBinaryFilesDirectory The file system directory where the VSOP2013 binary files are located specified as a C style string pointer.

Remarks

Because the lookup tables for the VSOP2013 theory are so large, the tables are stored as binary files on the file system and read in as needed by the CAAVSOP2013 class. This is necessary as it was not possible to directly implement these lookup tables in the AAVSOP2013 cpp module without any modern C++ compiler choking trying to compile a massive cpp module. These binary files are written out by the CAAVSOP2013ElementsFile and CAAVSOP2013EphemeridesFile helper classes also included in the AAVSOP2013 cpp/h modules. The files generated by these two classes are stored in big endian format irrespective of the endian-ness of the machine on which they were generated. This makes these binary files deployable to any machine architecture. The VSOP2013 ephemerides binary files are "VSOP2013.M4000.bin", "VSOP2013.M2000.bin", "VSOP2013.M1000.bin", "VSOP2013.P1000.bin", "VSOP2013.P2000.bin" and "VSOP2013.P4000.bin". Each of these files are 128 MB (or 134,236,605 bytes) in size. These contain the same data as the original 391 MB (or 410,654,243 bytes) text ephemerides files in the VSOP2013 theory. The CAAVSOP2013EphemeridesFile class provides methods to read the original VSOP2013 text ephemerides files and write the binary ephemerides files used by CAAVSOP2013. These ephemerides binary files will need to be shipped with your application if you are using CAAVSOP2013::Calculate. The VSOP2013 elements binary files are "VSOP2013p1.bin", "VSOP2013p2.bin", "VSOP2013p3.bin", "VSOP2013p4.bin", "VSOP2013p5.bin", "VSOP2013p6.bin", "VSOP2013p7.bin", "VSOP2013p8.bin" and "VSOP2013p9.bin". These files range in size from 9MB for Pluto up to 28 MB for Saturn. The CAAVSOP2013ElementsFile class provides methods to read the original VSOP2013 text elements files and write the binary elements files used by CAAVSOP2013. These elements binary files will need to be shipped with your application if you are using CAAVSOP2013::CalculateOrbit. Please note that the binary files used by CAAVSOP2013 are not the same layout as the binary files mentioned in the VSOP2013 theory itself. The default location for the binary files directory is "." or the current working directory for the current process. For further information about these two classes and / or to generate these binary files, please see the sample code in AATest.cpp and the implementation of these two classes in AAVSOP2013.cpp.

 

CAAVSOP2013::GetBinaryFilesDirectory

const std::filesystem::path::value_type* GetBinaryFilesDirectory() const

Return Value

the current directory where the VSOP2013 binary files are being read from by this class instance specified as a const C style string pointer.

Remarks

This is the corollary method to CAAVSOP2013::SetBinaryFilesDirectory.

 

CAAVSOP2013::Calculate

static CAAVSOP2013Position Calculate(Planet planet, double JD)

Return Value

A class containing

X The heliocentric ecliptical X rectangular coordinate of the object in astronomical units.

Y The heliocentric ecliptical Y rectangular coordinate of the object in astronomical units.

Z The heliocentric ecliptical Z rectangular coordinate of the object in astronomical units.

X_DASH The heliocentric ecliptical X velocity of the object in astronomical units per day.

Y_DASH The heliocentric ecliptical Y velocity of the object in astronomical units per day.

Z_DASH The heliocentric ecliptical Z velocity of the object in astronomical units per day.

Parameters

planet An enum specifying which object the calculation is to be carried out for.

JD The date in Dynamical time to calculate for.

Remarks

Please note that this method will load the VSOP2013 ephemerides binary files on an as needed basis depending on the planet and time of the required calculation. Internally this class will cache these tables to speed up subsequent calculations in a protected member variable called "m_EphemerideFiles". The loading code for these binary files has been carefully optimized to ensure that on modern file systems this just in time loading of these tables should not take any more than a second. If the JD value is outside of the allowable range for the VSOP2013 theory or an invalid "planet" parameter value is specified, then a CAAVSOP2013Exception will be thrown by this method. Also if an error occurs while loading a VSOP2013 binary file then a CAAVSOP2013Exception will be thrown by this method.

 

CAAVSOP2013::CalculateOrbit

CAAVSOP2013Orbit CalculateOrbit(Planet planet, double JD)

Return Value

A class containing

a The semi-major axis or the orbit in astronomical units.

lambda The mean longitude of the orbit in radians.

k The K term as defined for the elliptic elements in the VSOP2013 theory. This is defined as k = e cos w where w is the perihelion longitude.

h The h term as defined for the elliptic elements in the VSOP2013 theory. This is defined as h = e sin w where w is the perihelion longitude.

q The q term as defined for the elliptic elements in the VSOP2013 theory. This is defined as q = sin(i/2) cos omega where i is the inclination and omega is the longitude of the ascending node.

p The p term as defined for the elliptic elements in the VSOP2013 theory. This is defined as q = sin(i/2) sin omega where i is the inclination and omega is the longitude of the ascending node.

Parameters

planet An enum specifying which object the calculation is to be carried out for.

JD The date in Dynamical time to calculate for.

Remarks

This method allows you to calculate the elliptical elements of the orbit of an object as defined in the VSOP2013 theory. As with the Calculate method, this method will load the VSOP2013 elements binary files on an as needed basis depending on the planet of the required calculation. Internally this class will cache these tables to speed up subsequent calculations in a protected member variable called "m_ElementsFiles". The loading code for these binary files has been carefully optimized to ensure that on modern file systems this just in time loading of these tables should not take any more than a second. If an invalid "planet" parameter value is specified, then a CAAVSOP2013Exception will be thrown by this method. Also if an error occurs while loading a VSOP2013 binary file then a CAAVSOP2013Exception will be thrown by this method.

 

CAAVSOP2013::CalculateMeanMotion

static double CalculateMeanMotion(Planet planet, double a)

Return Value

the mean motion of the specified planet in radians per day.

Parameters

planet An enum specifying which object the calculation is to be carried out for.

a The semi-major axis of the orbit in astronomical units.

Remarks

This method is used internally by the CAAVSOP2013::OrbitToElements method.

 

CAAVSOP2013::OrbitToElements

static CAAEllipticalObjectElements OrbitToElements(double JD, Planet planet, const CAAVSOP2013Orbit& orbit)

Return Value

A class containing the elliptical elements of the orbit in an AA+ CAAEllipticalObjectElements class instance.

Parameters

JD The date in Dynamical time to calculate for.

planet An enum specifying which object the calculation is to be carried out for.

orbit A CAAVSOP2013Orbit instance as returned from CAAVSOP2013::CalculateOrbit.

Remarks

This method allows you to convert an orbit as defined in the VSOP2013 theory to a structure used by the AA+ class framework and the CAAEliptical class.

 

CAAVSOP2013::Ecliptical2Equatorial

static CAAVSOP2013Position Ecliptical2Equatorial(const CAAVSOP2013Position& value)

Return Value

Returns the rectangular equatorial coordinates in a CAAVSOP2013Position class containing:

X The heliocentric equatorial X rectangular coordinate of the object in astronomical units.

Y The heliocentric equatorial Y rectangular coordinate of the object in astronomical units.

Z The heliocentric equatorial Z rectangular coordinate of the object in astronomical units.

X_DASH The equatorial X velocity of the object in astronomical units per day.

Y_DASH The equatorial Y velocity of the object in astronomical units per day.

Z_DASH The equatorial Z velocity of the object in astronomical units per day.

Parameters

value The ecliptic position and velocity as return from CAAVSOP2013::Calculate.

Remarks

This method allows you to convert the ecliptical rectangular coordinates as returned from the CAAVSOP2013::Calculate method to equatorial rectangular coordinates.

 

 

CAAVSOP87_EMB

This class provides for calculation of the heliocentric ecliptical orbital elements of the Earth-Moon Barycenter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_EMB::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_EMB::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_EMB::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_EMB::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_EMB::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_EMB::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

 

CAAVSOP87_Jupiter

This class provides for calculation of the heliocentric ecliptical orbital elements of Jupiter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Jupiter::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Jupiter::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Jupiter::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Jupiter::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Jupiter::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Jupiter::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Mars

This class provides for calculation of the heliocentric ecliptical orbital elements of Mars for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Mars::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mars::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mars::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mars::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mars::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mars::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Mercury

This class provides for calculation of the heliocentric ecliptical orbital elements of Mercury for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Mercury::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mercury::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mercury::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mercury::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mercury::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Mercury::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Neptune

This class provides for calculation of the heliocentric ecliptical orbital elements of Neptune for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Neptune::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Neptune::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Neptune::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Neptune::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Neptune::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Neptune::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Saturn

This class provides for calculation of the heliocentric ecliptical orbital elements of Saturn for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Saturn::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Saturn::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Saturn::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Saturn::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Saturn::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Saturn::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Uranus

This class provides for calculation of the heliocentric ecliptical orbital elements of Uranus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Uranus::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Uranus::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Uranus::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Uranus::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Uranus::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Uranus::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87_Venus

This class provides for calculation of the heliocentric ecliptical orbital elements of Venus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

A

L

K

H

Q

P

 

CAAVSOP87_Venus::A

static double A(double JD)

Return Value

the semi-major axis in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Venus::L

static double L(double JD)

Return Value

the mean longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Venus::K

static double K(double JD)

Return Value

the K value as defined in VSOP87 i.e. k = e cos(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Venus::H

static double H(double JD)

Return Value

the H value as defined in VSOP87 i.e. h = e sin(p) where p is the perihelion longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Venus::Q

static double Q(double JD)

Return Value

the Q value as defined in VSOP87 i.e. q = sin(g) cos(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87_Venus::P

static double P(double JD)

Return Value

the P value as defined in VSOP87 i.e. p = sin(g) sin(G) where g is the semi-inclination and G is the ascending node longitude.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Earth

This class provides for calculation of the heliocentric rectangular position of the Earth for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Earth::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Earth::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Earth::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Earth::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Earth::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Earth::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_EMB

This class provides for calculation of the heliocentric rectangular position of the Earth-Moon Barycenter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_EMB::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_EMB::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_EMB::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_EMB::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_EMB::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_EMB::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Jupiter

This class provides for calculation of the heliocentric rectangular position of Jupiter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Jupiter::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Jupiter::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Jupiter::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Jupiter::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Jupiter::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Jupiter::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Mars

This class provides for calculation of the heliocentric rectangular position of Mars for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Mars::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mars::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mars::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mars::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mars::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mars::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Mercury

This class provides for calculation of the heliocentric rectangular position of Mercury for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Mercury::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mercury::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mercury::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mercury::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mercury::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Mercury::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Neptune

This class provides for calculation of the heliocentric rectangular position of Neptune for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Neptune::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Neptune::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Neptune::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Neptune::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Neptune::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Neptune::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Saturn

This class provides for calculation of the heliocentric rectangular position of Saturn for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Saturn::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Saturn::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Saturn::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Saturn::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Saturn::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Saturn::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Uranus

This class provides for calculation of the heliocentric rectangular position of Uranus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Uranus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Uranus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Uranus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Uranus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Uranus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Uranus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87A_Venus

This class provides for calculation of the heliocentric rectangular position of Venus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87A_Venus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Venus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Venus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Venus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Venus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87A_Venus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Earth

This class provides for calculation of the heliocentric spherical position of Earth for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Earth::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Earth::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Earth::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Earth::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Earth::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Earth::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Jupiter

This class provides for calculation of the heliocentric spherical position of Jupiter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Jupiter::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Jupiter::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Jupiter::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Jupiter::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Jupiter::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Jupiter::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Mars

This class provides for calculation of the heliocentric spherical position of Mars for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Mars::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mars::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mars::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mars::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mars::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mars::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Mercury

This class provides for calculation of the heliocentric spherical position of Mercury for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Mercury::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mercury::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mercury::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mercury::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mercury::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Mercury::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Neptune

This class provides for calculation of the heliocentric spherical position of Neptune for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Neptune::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Neptune::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Neptune::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Neptune::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Neptune::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Neptune::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Saturn

This class provides for calculation of the heliocentric spherical position of Saturn for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Saturn::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Saturn::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Saturn::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Saturn::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Saturn::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Saturn::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Uranus

This class provides for calculation of the heliocentric spherical position of Uranus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Uranus::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Uranus::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Uranus::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Uranus::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Uranus::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Uranus::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87B_Venus

This class provides for calculation of the heliocentric spherical position of Venus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87B_Venus::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Venus::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Venus::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Venus::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Venus::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87B_Venus::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Earth

This class provides for calculation of the heliocentric rectangular position of Earth for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Earth::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Earth::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Earth::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Earth::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Earth::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Earth::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Jupiter

This class provides for calculation of the heliocentric rectangular position of Jupiter for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Jupiter::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Jupiter::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Jupiter::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Jupiter::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Jupiter::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Jupiter::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Mars

This class provides for calculation of the heliocentric rectangular position of Mars for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Mars::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mars::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mars::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mars::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mars::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mars::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Mercury

This class provides for calculation of the heliocentric rectangular position of Mercury for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Mercury::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mercury::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mercury::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mercury::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mercury::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Mercury::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Neptune

This class provides for calculation of the heliocentric rectangular position of Neptune for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Neptune::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Neptune::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Neptune::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Neptune::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Neptune::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Neptune::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Saturn

This class provides for calculation of the heliocentric rectangular position of Saturn for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Saturn::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Saturn::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Saturn::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Saturn::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Saturn::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Saturn::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Uranus

This class provides for calculation of the heliocentric rectangular position of Uranus for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Uranus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Uranus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Uranus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Uranus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Uranus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Uranus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87C_Venus

This class provides for calculation of the heliocentric rectangular position of Venus for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87C_Venus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Venus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Venus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Venus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Venus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87C_Venus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Earth

This class provides for calculation of the heliocentric spherical position of Earth for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Earth::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Earth::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Earth::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Earth::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Earth::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Earth::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Jupiter

This class provides for calculation of the heliocentric spherical position of Jupiter for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Jupiter::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Jupiter::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Jupiter::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Jupiter::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Jupiter::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Jupiter::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Mars

This class provides for calculation of the heliocentric spherical position of Mars for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Mars::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mars::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mars::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mars::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mars::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mars::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Mercury

This class provides for calculation of the heliocentric spherical position of Mercury for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Mercury::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mercury::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mercury::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mercury::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mercury::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Mercury::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Neptune

This class provides for calculation of the heliocentric spherical position of Neptune for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Neptune::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Neptune::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Neptune::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Neptune::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Neptune::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Neptune::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Saturn

This class provides for calculation of the heliocentric spherical position of Saturn for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Saturn::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Saturn::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Saturn::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Saturn::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Saturn::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Saturn::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Uranus

This class provides for calculation of the heliocentric spherical position of Uranus for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Uranus::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Uranus::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Uranus::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Uranus::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Uranus::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Uranus::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87D_Venus

This class provides for calculation of the heliocentric spherical position of Venus for the equinox and ecliptic of date. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

L

L_DASH

B

B_DASH

R

R_DASH

 

CAAVSOP87D_Venus::L

static double L(double JD)

Return Value

the ecliptic longitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Venus::L_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the ecliptic longitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Venus::B

static double B(double JD)

Return Value

the ecliptic latitude in radians.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Venus::B_DASH

static double B_DASH(double JD)

Return Value

the rate of change of the ecliptic latitude in radians / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Venus::R

static double R(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87D_Venus::R_DASH

static double R_DASH(double JD)

Return Value

the rate of change of the radius vector in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Earth

This class provides for calculation of the barycentric rectangular position of Earth for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Earth::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Earth::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Earth::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Earth::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Earth::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Earth::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Jupiter

This class provides for calculation of the barycentric rectangular position of Jupiter for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Jupiter::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Jupiter::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Jupiter::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Jupiter::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Jupiter::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Jupiter::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Mars

This class provides for calculation of the barycentric rectangular position of Mars for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Mars::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mars::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mars::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mars::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mars::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mars::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Mercury

This class provides for calculation of the barycentric rectangular position of Mercury for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Mercury::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mercury::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mercury::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mercury::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mercury::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Mercury::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Neptune

This class provides for calculation of the barycentric rectangular position of Neptune for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Neptune::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Neptune::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Neptune::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Neptune::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Neptune::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Neptune::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Saturn

This class provides for calculation of the barycentric rectangular position of Saturn for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Saturn::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Saturn::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Saturn::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Saturn::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Saturn::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Saturn::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Sun

This class provides for calculation of the barycentric rectangular position of the Sun for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Sun::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Sun::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Sun::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Sun::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Sun::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Sun::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Uranus

This class provides for calculation of the barycentric rectangular position of Uranus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Uranus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Uranus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Uranus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Uranus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Uranus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Uranus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVSOP87E_Venus

This class provides for calculation of the barycentric rectangular position of Venus for the equinox and ecliptic of J2000.0. Please refer to ftp://cdsarc.u-strasbg.fr/pub/cats/VI/81/ for further details.

 

Functions this class provides include:

X

X_DASH

Y

Y_DASH

Z

Z_DASH

 

CAAVSOP87E_Venus::X

static double X(double JD)

Return Value

the X position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Venus::X_DASH

static double X_DASH(double JD)

Return Value

the rate of change of the X position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Venus::Y

static double X(double JD)

Return Value

the Y position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Venus::Y_DASH

static double Y_DASH(double JD)

Return Value

the rate of change of the Y position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Venus::Z

static double Z(double JD)

Return Value

the Z position component in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAVSOP87E_Venus::Z_DASH

static double Z_DASH(double JD)

Return Value

the rate of change of the Z position component in astronomical units / day.

Parameters

JD The date in Dynamical time to calculate for.

 

 

References

 

 

 

Contacting the Author

PJ Naughter
Email: pjna@naughter.com
Web: http://www.naughter.com
7 October 2023