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 |
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)
double TerrestialTime
= some calculation using AA+ algorithms(JD);
double DeltaT = CAADynamicalTime::DeltaT(JD);
double UniversalTime1 = TerrestialTime - DeltaT/86400.0; //The time of the
event using the UT1 time scale
double TerrestialAtomicTime = TerrestialTime
- (32.184/86400.0); //The time of the event using the TAI time scale
double
CumulativeLeapSeconds = CAADynamicalTime::CumulativeLeapSeconds(JD);
double
CoordinatedUniversalTime = (DeltaT - CumulativeLeapSeconds - 32.184)/86400.0
+ UniversalTime1; //The time of the event using the UTC time scale
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)
The framework consists of the following classes:
CAARiseTransitSet (Deprecated)
This class provides for calculation of the effects of aberration. This refers to Chapter 23 in the book.
Functions this class provides include:
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.
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:
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.
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:
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.
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:
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.
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()
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.
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.
double Julian() const
Return Value
Returns the underlying Julian Day including decimals.
operator double() const
Return Value
Returns the underlying Julian Day including decimals.
long Day() const
Return Value
Returns the day of the month this date represents.
long Month() const
Return Value
Returns the month (1 - 12) this date represents.
long Year() const
Return Value
Returns the year this date represents.
long Hour() const
Return Value
Returns the hour this date represents.
long Minute() const
Return Value
Returns the minute this date represents.
double Second() const
Return Value
Returns the seconds this date represents.
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.
bool InGregorianCalendar() const
Return Value
Returns true if this date is in the Gregorian calendar, false means the Julian Calendar.
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.
DAY_OF_WEEK DayofWeek() const
Return Value
Returns an enum which identifies which day of the week this date represents.
double DayofYear() const
Return Value
Returns the day of year (including decimals) this date represents.
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.
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.
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.
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.
bool Leap() const
Return Value
true if the year which this date represents is leap otherwise false.
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.
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.
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:
JupiterEquatorialSemidiameterA
ApparentSaturnPolarSemidiameterA
JupiterEquatorialSemidiameterB
ApparentSaturnPolarSemidiameterB
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.
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:
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.
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.
static double TT2UTC(double JD)
Return Value
The Julian day in the TT timeframe.
Parameters
JDThe Julian day in the UTC timeframe to convert.
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.
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.
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.
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.
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.
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:
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.
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.
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.
static double Eccentricity(double JD)
Return Value
the eccentricity of Earth's orbit.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
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
This class provides for calculation of Solar and Lunar Eclipses. This refers to Chapter 54 in the book.
Functions this class provides include:
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.
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.
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:
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.
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:
MercuryLongitudeAscendingNodeJ2000
MercuryLongitudePerihelionJ2000
VenusLongitudeAscendingNodeJ2000
EarthLongitudeAscendingNodeJ2000
MarsLongitudeAscendingNodeJ2000
JupiterLongitudeAscendingNodeJ2000
JupiterLongitudePerihelionJ2000
SaturnLongitudeAscendingNodeJ2000
SaturnLongitudePerihelionJ2000
UranusLongitudeAscendingNodeJ2000
UranusLongitudePerihelionJ2000
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.
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:
SemiMajorAxisFromPerihelionDistance
static CAAEllipticalPlanetaryDetails Calculate(double JD, EllipticalObject object, bool bHighPrecision)
Return Value
A class containing
ApparentGeocentricLongitude The apparent geocentric ecliptical longitude in degrees of the object.
ApparentGeocentricLatitude 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.
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.
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
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:
EclipticRectangularCoordinates
EclipticRectangularCoordinatesJ2000
EquatorialRectangularCoordinatesFK5
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.
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.
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.
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:
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.
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.
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
This class provides for calculation of the Equation of Time. This refers to Chapter 28 in the book.
Functions this class provides include:
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.
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:
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAEquinoxesAndSolstices class.
Functions this class provides include:
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.
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:
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.
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.
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.
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.
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:
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.
This class provides some basic algorithms related to the figure of the Earth's surface.
Functions this class provides include:
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
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.
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).
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:
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.
This class provides the algorithms for interpolation. This refers to Chapter 3 in the book.
Functions this class provides include:
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.
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)
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.
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.
static double Zero(double Y1, double Y2, double Y3)
static double Zero(double Y1, double Y2, double Y3, double Y4, double Y5)
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.
Remarks
Finds where a function reaches zero when the function is "almost a straight line".
static double Zero2(double Y1, double Y2, double Y3)
static double Zero2(double Y1, double Y2, double Y3, double Y4, double Y5)
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.
Remarks
Finds where a function reaches zero when the curvature of the function is important.
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:
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.
static long DaysInYear(long Year)
Return Value
The number of days in the specified Jewish Year
Parameters
Year The year in the Jewish Calendar.
static bool IsLeap(long Year)
Return Value
true if the specified year is leap otherwise false.
Parameters
Year The year in the Jewish calendar.
This class provides for calculation of the heliocentric position of Jupiter. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
This class provides for the solution of Kepler's equation. This refers to Chapter 30 in the book.
Functions this class provides include:
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".
This class provides for calculation of the heliocentric position of Mars. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
This class provides for calculation of the heliocentric position of Mercury. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
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:
RadiusVectorToHorizontalParallax
HorizontalParallaxToRadiusVector
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.
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.
static double RadiusVector(double JD)
Return Value
the radius vector in kilometres.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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.
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:
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.
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:
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAMoonMaxDeclinations class.
Functions this class provides include:
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.
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:
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.
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAMoonNodes class.
Functions this class provides include:
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.
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:
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAMoonPerigeeApogee class.
Functions this class provides include:
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.
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:
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.
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.
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAMoonPhases class.
Functions this class provides include:
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.
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:
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.
static bool IsLeap(long Year)
Return Value
true if the specified year is leap otherwise false.
Parameters
Year The year in the Moslem calendar.
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:
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.
This class provides for calculation of the heliocentric position of Neptune. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
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.
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:
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.
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:
static CAAParabolicObjectDetails Calculate(double JD, const CAAParabolicObjectElements& 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.
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.
CAAParabolic::CalculateBarkers
static double CalculateBarkers(double W)
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.
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:
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.
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:
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.
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:
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.
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:
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.
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:
CalculateSelenographicPositionOfSun
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.
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.
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:
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.
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:
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.
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.
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAPlanetaryPhenomena class.
Functions this class provides include:
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 objects'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. |
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:
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.
This class uses interpolation to calculate the same details as those provided with the existing CAAPlanetPerihelionAphelion class.
Functions this class provides include:
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.
This class provides for calculation of the heliocentric position of Pluto. This refers to Chapter 37 in the book.
Functions this class provides include:
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.
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.
static double RadiusVector(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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:
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.
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:
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:
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:
You will observe the following output, which demonstrates this effect:
Your client code which uses this method will need to handle this situation itself.
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:
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.
This class provides for calculation of the heliocentric position of Saturn. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
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:
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.
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:
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.
This class provides for the calculation of sidereal time. This refers to Chapter 12 in the book.
Functions this class provides include:
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.
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:
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.
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:
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.
This class provides for calculation of the heliocentric position of Uranus. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
This class provides for calculation of the heliocentric position of Venus. This refers to Chapter 32 in the book.
Functions this class provides include:
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.
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.
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.
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:
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double A(double JD)
Return Value
the semi-major axis in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
static double L(double JD)
Return Value
the mean longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
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.
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.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double L(double JD)
Return Value
the ecliptic longitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double B(double JD)
Return Value
the ecliptic latitude in radians.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double R(double JD)
Return Value
the radius vector in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
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:
static double X(double JD)
Return Value
the X position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double X(double JD)
Return Value
the Y position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
static double Z(double JD)
Return Value
the Z position component in astronomical units.
Parameters
JD The date in Dynamical time to calculate for.
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.
The ful ELP2000-82b theory at http://cdsweb.u-strasbg.fr/cgi-bin/qcat?VI/79/ can by used by AA+ to calculate the position of the Moon using the full theory instead of the abridged version included in the book "Astronomical Algorithms".
PJ Naughter
Email: pjna@naughter.com
Web: http://www.naughter.com
24 January 2022