AA+ v1.36

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
Planned Enhancements
References
Contacting the Author

 

Features

 

 

Usage

 

 

Copyright

 

 

 

History

V1.0 (6 February 2004)

V1.01 (9 February 2004)

V1.02 (9 February 2004)

V1.03 (14 February 2004)

V1.04 (21 February 2004)

V1.05 (22 February 2004)

V1.06 (22 February 2004)

27 April  2004

v1.07 (24 May 2004)

v1.08 (31 May 2004)

v1.09 (15 June 2004)

6 September 2004

v1.10 (17 September 2004)

v1.11 (15 October 2004)

v1.12 (10 November 2004)

v1.13 (31 December 2004)

v1.14 (21 January 2005)

v1.15 (30 January 2005)

v1.16 (31 January 2005)

v1.17 (1 February 2005)

v1.18 (21 April 2005)

v1.19 (13 May 2005)

v1.20 (2 June 2005)

v1.21 (3 June 2005)

v1.22 (5 July 2005)

v1.23 (16 November 2005)

1 May 2006

v1.24 (12 May 2006)

18 May 2006

v1.25 (5 June 2006)

23 October 2006

v1.26 (29 November 2006)

v1.27 (17 January 2007)

v1.28 (25 January 2007)

v1.29 (26 January 2007)

v1.30 (29 January 2007)

v1.31 (26 July 2008)

v1.32 (11 November 2008)

v1.33 (7 February 2009)

v1.34 (12 February 2009)

v1.35 (16 March 2009)

v1.36 (28 March 2009)

 

 

 

Class Framework Reference

The framework consists of the following classes:

 

CAAAberration

CAAAngularSeparation

CAABinaryStar

CAACoordinateTransformation

CAADate

CAADiameters

CAADynamicalTime

CAAEarth

CAAEaster

CAAEclipses

CAAEclipticalElements

CAAElementsPlanetaryOrbit

CAAElliptical

CAAEquationOfTime

CAAEquinoxesAndSolstices

CAAFK5

CAAGalileanMoons

CAAGlobe

CAAIluminatedFraction

CAAInterpolate

CAAJewishCalendar

CAAJupiter

CAAKepler

CAAMars

CAAMercury

CAAMoon

CAAMoonIlluminatedFraction

CAAMoonMaxDeclinations

CAAMoonNodes

CAAMoonPerigeeApogee

CAAMoonPhases

CAAMoslemCalendar

CAANearParabolic

CAANeptune

CAANodes

CAANutation

CAAParabolic

CAAParallactic

CAAParallax

CAAPhysicalJupiter

CAAPhysicalMars

CAAPhysicalMoon

CAAPhysicalSun

CAAPlanetaryPhenomena

CAAPlanetPerihelionAphelion

CAAPluto

CAAPrecession

CAARefraction

CAARiseTransitSet

CAASaturn

CAASaturnMoons

CAASaturnRings

CAASidereal

CAAStellarMagnitudes

CAASun

CAAUranus

CAAVenus

 

 

CAAberration

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

 

Functions this class provides include:

EarthVelocity

EclipticAberration

EquatorialAberration

 

CAAAberration::EarthVelocity

static CAA3DCoordinate EarthVelocity(double JD)

Return Value

3D rectangular heliocentric equatorial velocity of the Earth based on the fixed equator and equinox of FK5 for the epoch J2000.0.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAAberration::EclipticAberration

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

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.

 

CAAAberration::EquatorsialAberration

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

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.

 

 

CAAAngularSeparation

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

 

Functions this class provides include:

Separation

PositionAngle

DistanceFromGreatArc

SmallestCircle

 

CAAAngularSeparation::Separation

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

Return Value

Returns the distance between the two positions in degrees.

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

 

CAAAngularSeparation::PositionAngle

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

Return Value

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

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

 

CAAAngularSeparation::DistanceFromGreatArc

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

Return Value

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

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

Alpha3 The third right ascension expressed as an hour angle.

Delta3 The third declination in degrees

 

CAAAngularSeparation::SmallestCircle

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

Return Value

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

Parameters

Alpha1 The first right ascension expressed as an hour angle.

Delta1 The first declination in degrees

Alpha2 The second right ascension expressed as an hour angle.

Delta2 The second declination in degrees

Alpha3 The third right ascension expressed as an hour angle.

Delta3 The third declination in degrees

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

 

 

CAABinaryStar

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

 

Functions this class provides include:

Calculate

ApparentEccentricity

 

CAABinaryStar::Calculate

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

Return Value

A class containing

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

Theta The apparent position angle in degrees.

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

Parameters

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

P The period of revolution expressed in mean solar years.

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

e Eccentricity of the true orbit.

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

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

omega The position angle of the ascending node in degrees

w The longitude of the periastron in degrees.

 

CAABinaryStar::ApparentEccentricty

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

Return Value

The apparent eccentricity of the binary star orbit

Parameters

e Eccentricity of the true orbit.

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

w The longitude of the periastron in degrees.

 

 

CAACoordinateTransformation

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

 

Functions this class provides include:

Equatorial2Ecliptic

Ecliptic2Equatorial

Equatorial2Horizontal

Horizontal2Equatorial

Equatorial2Galactic

Galactic2Equatorial

PI

DegreesToRadians

RadiansToDegrees

RadiansToHours

HoursToRadians

HoursToDegrees

DegreesToHours

DMSToDegrees

MapTo0To360Range

MapTo0To24Range

 

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 an hour angle.

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 equatorial longitude in hours and the y value corresponds to the equatorial latitude 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 and the y value corresponds to the altitude in degrees.

Parameters

LocalHourAngle The local hour angle, measured westwards from the South.

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 equatorial longitude in hours and the y value corresponds to the equatorial latitude in degrees.

Parameters

A The azimuth in degrees.

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.

 

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 expressed as an hour angle.

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 equatorial longitude in hours and the y value corresponds to the equatorial latitude 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.

 

 

CAADate

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

 

Functions this class provides include:

CAADate

IsLeap

Julian

operator double

Day

Month

Year

Hour

Minute

Second

Set

SetInGregorianCalendar

InGregorianCalendar

Get

DayOfWeek

DayOfYear

DaysInMonth

DaysInYear

DayOfYearToDayAndMonthAndDate

JulianToGregorian

GregorianToJulian

Leap

FractionalYear

 

CAADate::CAADate

CAADate()

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

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

CAADate(double JD, bool bGregorianCalendar)

Parameters

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

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

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

Hour The hour (Can include decimals).

Minute The minute (Can include decimals).

Second The seconds (Can include decimals).

JD The Julian day including decimals.

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

Remarks

Constructs a date given a variety of parameters.

 

CAADate::IsLeap

static bool IsLeap(long Year, bool bGregorianCalendar)

Return Value

true if the specified year is leap otherwise false.

Parameters

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

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

 

CAADate::Julian

double Julian() const

Return Value

Returns the underlying Julian Day including decimals.

 

CAADate::operator double

operator double() const

Return Value

Returns the underlying Julian Day including decimals.

 

CAADate::Day

long Day() const

Return Value

Returns the day of the month this date represents.

 

CAADate::Month

long Month() const

Return Value

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

 

CAADate::Year

long Year() const

Return Value

Returns the year this date represents.

 

CAADate::Hour

long Hour() const

Return Value

Returns the hour this date represents.

 

CAADate::Minute

long Minute() const

Return Value

Returns the minute this date represents.

 

CAADate::Second

double Second() const

Return Value

Returns the seconds this date represents.

 

CAADate::Set

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

void Set(double JD, bool bGregorianCalendar)

Parameters

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

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

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

Hour The hour (Can include decimals).

Minute The minute (Can include decimals).

Second The seconds (Can include decimals).

JD The Julian day including decimals

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

Remarks

Allows the date to be modified after construction.

 

CAADate::SetInGregorianCalendar

void SetInGregorianCalendar(bool bGregorianCalendar)

Parameters

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

Remarks

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

 

CAADate::InGregorianCalendar

bool InGregorianCalendar() const

Return Value

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

 

CAADate::Get

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

Parameters

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

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

Day Upon return will contain the day of the month.

Hour Upon return will contain the hour.

Minute Upon return will contain the minute.

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

Remarks

Allows the date parts to be retrieved.

 

CAADate::DayOfWeek

DAY_OF_WEEK DayofWeek() const

Return Value

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

 

CAADate::DayOfYear

double DayofYear() const

Return Value

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

 

CAADate::DaysInMonth

long DaysInMonth() const

static DaysInMonth(long Month, bool bLeap)

Return Value

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

 

CAADate::DaysInYear

long DaysInYear() const

Return Value

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

 

CAADate::DayOfYearToDayAndMonth

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

Parameters

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

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

DayOfMonth Upon return will contain the day of the month.

Month Upon return will contain the month.

 

CAADate::JulianToGregorian

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

Return Value

A class containing

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

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

Day The day of the month in the Gregorian Calendar.

Parameters

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

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

Day The day of the month in the Julian Calendar.

Remarks

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

 

CAADate::GregorianToJulian

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

Return Value

A class containing

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

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

Day The day of the month in the Julian Calendar.

Parameters

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

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

Day The day of the month in the Gregorian Calendar.

Remarks

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

 

CAADate::Leap

bool Leap() const

Return Value

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

 

CAADate::FractionalYear

double FractionalYear() const

Return Value

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

 

 

CAADiameters

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

 

Functions this class provides include:

SunSemidiameterA

MercurySemidiameterA

VenusSemidiameterA

MarsSemidiameterA

JupiterEquatorialSemidiameterA

JupiterPolarSemidiameterA

SaturnEquatorialSemidiameterA

SaturnPolarSemidiameterA

ApparentSaturnPolarSemidiameterA

UranusSemidiameterA

NeptuneSemidiameterA

MercurySemidiameterB

VenusSemidiameterB

MarsSemidiameterB

JupiterEquatorialSemidiameterB

JupiterPolarSemidiameterB

SaturnEquatorialSemidiameterB

SaturnPolarSemidiameterB

ApparentSaturnPolarSemidiameterB

UranusSemidiameterB

NeptuneSemidiameterB

PlutoSemidiameterB

GeocentricMoonSemidiameter

TopocentricMoonSemidiameter

AsteroidDiameter

ApparentAsteroidDiameter

 

CAADiameters::SunSemidiameterA

static double SunSemidiameterA(double Delta)

Return Value

The suns semi diameter in arc seconds.

Parameters

Delta The distance to the Sun in astronomical units.

 

CAADiameters::MercurySemidiameterA

static double MercurySemidiameterA(double Delta)

Return Value

Mercury's semi diameter in arc seconds.

Parameters

Delta The distance to Mercury in astronomical units.

 

CAADiameters::VenusSemidiameterA

static double VenusSemidiameterA(double Delta)

Return Value

Venus's semi diameter in arc seconds.

Parameters

Delta The distance to Venus in astronomical units.

 

CAADiameters::MarsSemidiameterA

static double MarsSemidiameterA(double Delta)

Return Value

Mars's semi diameter in arc seconds.

Parameters

Delta The distance to Mars in astronomical units.

 

CAADiameters::JupiterEquatorialSemidiameterA

static double JupiterEquatorialSemidiameterA(double Delta)

Return Value

Jupiter's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

 

CAADiameters::JupiterPolarSemidiameterA

static double JupiterPolarSemidiameterA(double Delta)

Return Value

Jupiter's polar semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

 

CAADiameters::SaturnEquatorialSemidiameterA

static double SaturnEquatorialSemidiameterA(double Delta)

Return Value

Saturn's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

 

CAADiameters::SaturnPolarSemidiameterA

static double SaturnPolarSemidiameterA(double Delta)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

 

CAADiameters::ApparentSaturnPolarSemidiameterA

static double ApparentSaturnPolarSemidiameterA(double Delta, double B)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

B The Saturnicentric latitude of the Earth in degrees.

Remarks

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

 

CAADiameters::UranusSemidiameterA

static double UranusSemidiameterA(double Delta)

Return Value

Uranus's semi diameter in arc seconds.

Parameters

Delta The distance to Uranus in astronomical units.

 

CAADiameters::NeptuneSemidiameterA

static double NeptuneSemidiameterA(double Delta)

Return Value

Neptune's semi diameter in arc seconds.

Parameters

Delta The distance to Neptune in astronomical units.

 

CAADiameters::MercurySemidiameterB

static double MercurySemidiameterB(double Delta)

Return Value

Mercury's semi diameter in arc seconds.

Parameters

Delta The distance to Mercury in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::VenusSemidiameterB

static double VenusSemidiameterB(double Delta)

Return Value

Venus's semi diameter in arc seconds.

Parameters

Delta The distance to Venus in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::MarsSemidiameterB

static double MarsSemidiameterB(double Delta)

Return Value

Mars's semi diameter in arc seconds.

Parameters

Delta The distance to Mars in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::JupiterEquatorialSemidiameterB

static double JupiterEquatorialSemidiameterB(double Delta)

Return Value

Jupiter's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::JupiterPolarSemidiameterB

static double JupiterPolarSemidiameterB(double Delta)

Return Value

Jupiter's polar semi diameter in arc seconds.

Parameters

Delta The distance to Jupiter in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::SaturnEquatorialSemidiameterB

static double SaturnEquatorialSemidiameterB(double Delta)

Return Value

Saturn's equatorial semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::SaturnPolarSemidiameterB

static double SaturnPolarSemidiameterB(double Delta)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::ApparentSaturnPolarSemidiameterB

static double ApparentSaturnPolarSemidiameterB(double Delta, double B)

Return Value

Saturn's polar semi diameter in arc seconds.

Parameters

Delta The distance to Saturn in astronomical units.

B The Saturnicentric latitude of the Earth in degrees.

Remarks

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

 

CAADiameters::UranusSemidiameterB

static double UranusSemidiameterB(double Delta)

Return Value

Uranus's semi diameter in arc seconds.

Parameters

Delta The distance to Uranus in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::NeptuneSemidiameterB

static double NeptuneSemidiameterB(double Delta)

Return Value

Neptune's semi diameter in arc seconds.

Parameters

Delta The distance to Neptune in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::PlutoSemidiameterB

static double PlutoSemidiameterB(double Delta)

Return Value

Pluto's semi diameter in arc seconds.

Parameters

Delta The distance to Pluto in astronomical units.

Remarks

Uses the updated Astronomical Almanac for 1984 size.

 

CAADiameters::GeocentricMoonSemidiameter

static double GeocentricMoonSemidiameter(double Delta)

Return Value

The Moon's semi diameter in arc seconds.

Parameters

Delta The distance to the Moon in kilometres.

 

CAADiameters::TopocentricMoonSemidiameter

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

Return Value

The Moon's semi diameter in arc seconds.

Parameters

DistanceDelta The distance to the Moon in kilometres.

Delta The geocentric declination of the Moon in degrees.

H The geocentric hour angle of the Moon.

Latitude  The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAADiameters::AsteroidDiameter

static double AsteroidDiameter(double H, double A)

Return Value

The asteroid's diameter in kilometres.

Parameters

H The absolute magnitude of the asteroid.

A The albedo of the asteroid.

 

CAADiameters::ApparentAsteroidDiameter

static double ApparentAsteroidDiameter(double Delta, double d)

Return Value

The asteroid's apparent diameter in arc seconds.

Parameters

Delta The distance to the asteroid in astronomical units.

d The diameter of the asteroid in kilometres.

 

 

CAADynamicalTime

This class provides for conversion between Universal Time and Dynamical Time. This refers to Chapter 10 in the book.

 

Functions this class provides include:

DeltaT

 

CAADynamicalTime::DeltaT

static double DeltaT(double JD)

Return Value

the difference DeltaT which is equal to TD - UT in seconds of time.

Parameters

date The Julian day calculate DeltaT for. Because DeltaT changes so slowly, the time used can be in the TD or the UT timeframe.

 

 

CAAEarth

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

EclipticLongitudeJ2000

EclipticLatitudeJ2000

Eccentricity

SunMeanAnnomaly

 

CAAEarth::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAEarth::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAEarth::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAEarth::EclipticLongitudeJ2000

static double EclipticLongitudeJ2000(double JD)

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.

 

CAAEarth::EclipticLatitudeJ2000

static double EclipticLatitudeJ2000(double JD)

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.

 

CAAEarth::Eccentricity

static double Eccentricity(double JD)

Return Value

the eccentricity of Earth's orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAEarth::SunMeanAnomaly

static double SunMeanAnomaly(double JD)

Return Value

the mean anomaly of the Sun in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAEaster

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

 

Functions this class provides include:

Calculate

 

CAAEaster::Calculate

static CAAEasterDetails Calculate(long nYear, bool bGregorianCalendar)

Return Value

A class containing

Month The month on which Easter Sunday occurs.

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

Parameters

nYear The year to perform the calculation for.

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

 

 

CAAEclipses

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

 

Functions this class provides include:

CalculateSolar

CalculateLunar

 

CAAEclipses::CalculateSolar

static CAASolarEclipseDetails CalculateSolar(double k)

Return Value

A struct containing the following values:

bEclipse true if a solar eclipse occurs at this New 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.

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

Parameters

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

 

CAAEclipses::CalculateLunar

static CAALunarEclipseDetails CalculateLunar(double k)

Return Value

A struct containing the following values:

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

TimeOfMaximumEclipse The date in Dynamical time of maximum eclipse.

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

u The U term for the eclipse.

gamma The gamma term for the eclipse.

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

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

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

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

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

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

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

Parameters

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

 

 

CAAEclipticalElements

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

 

Functions this class provides include:

Calculate

FK4B1950ToFK5J200

 

CAAEclipticalElements::Calculate

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

Return Value

A struct containing the following values:

i The reduced inclination in degrees.

w The reduced argument of perihelion in degrees.

omega The reduced longitude of the ascending node in degrees

Parameters

i0 The inclination in degrees to reduce.

w0 The argument of perihelion in degrees to reduce.

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

JD0 The initial epoch in Dynamical time to calculate for.

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

 

CAAEclipticalElements::FK4B1950ToFK5J2000

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

Return Value

A struct containing the following values:

i The reduced inclination in degrees.

w The reduced argument of perihelion in degrees.

omega The reduced longitude of the ascending node in degrees

Parameters

i0 The inclination in degrees to reduce.

w0 The argument of perihelion in degrees to reduce.

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

 

 

CAAElementsPlanetaryOrbit

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

 

Functions this class provides include:

MercuryMeanLongitude

MercurySemimajorAxis

MercuryEccentricity

MercuryInclination

MercuryLongitudeAscendingNode

MercuryLongitudePerihelion

VenusMeanLongitude

VenusSemimajorAxis

VenusEccentricity

VenusInclination

VenusLongitudeAscendingNode

VenusLongitudePerihelion

EarthMeanLongitude

EarthSemimajorAxis

EarthEccentricity

EarthInclination

EarthLongitudePerihelion

MarsMeanLongitude

MarsSemimajorAxis

MarsEccentricity

MarsInclination

MarsLongitudeAscendingNode

MarsLongitudePerihelion

JupiterMeanLongitude

JupiterSemimajorAxis

JupiterEccentricity

JupiterInclination

JupiterLongitudeAscendingNode

JupiterLongitudePerihelion

SaturnMeanLongitude

SaturnSemimajorAxis

SaturnEccentricity

SaturnInclination

SaturnLongitudeAscendingNode

SaturnLongitudePerihelion

UranusMeanLongitude

UranusSemimajorAxis

UranusEccentricity

UranusInclination

UranusLongitudeAscendingNode

UranusLongitudePerihelion

NeptuneMeanLongitude

NeptuneSemimajorAxis

NeptuneEccentricity

NeptuneInclination

NeptuneLongitudeAscendingNode

NeptuneLongitudePerihelion

MercuryMeanLongitudeJ2000

MercuryInclinationJ2000

MercuryLongitudeAscendingNodeJ2000

MercuryLongitudePerihelionJ2000

VenusMeanLongitudeJ2000

VenusInclinationJ2000

VenusLongitudeAscendingNodeJ2000

VenusLongitudePerihelionJ2000

EarthMeanLongitudeJ2000

EarthInclinationJ2000

EarthLongitudeAscendingNodeJ2000

EarthLongitudePerihelionJ2000

MarsMeanLongitudeJ2000

MarsInclinationJ2000

MarsLongitudeAscendingNodeJ2000

MarsLongitudePerihelionJ2000

JupiterMeanLongitudeJ2000

JupiterInclinationJ2000

JupiterLongitudeAscendingNodeJ2000

JupiterLongitudePerihelionJ2000

SaturnMeanLongitudeJ2000

SaturnInclinationJ2000

SaturnLongitudeAscendingNodeJ2000

SaturnLongitudePerihelionJ2000

UranusMeanLongitudeJ2000

UranusInclinationJ2000

UranusLongitudeAscendingNodeJ2000

UranusLongitudePerihelionJ2000

NeptuneMeanLongitudeJ2000

NeptuneInclinationJ2000

NeptuneLongitudeAscendingNodeJ2000

NeptuneLongitudePerihelionJ2000

 

CAAElementsPlanetaryOrbit::MercuryMeanLongitude

static double MercuryMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MercurySemimajorAxis

static double MercurySemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MercuryEccentricity

static double MercuryEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryInclination

static double MercuryInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudeAscendingNode

static double MercuryLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudePerihelion

static double MercuryLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusMeanLongitude

static double VenusMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::VenusSemimajorAxis

static double VenusSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::VenusEccentricity

static double VenusEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusInclination

static double VenusInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudeAscendingNode

static double VenusLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudePerihelion

static double VenusLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthMeanLongitude

static double EarthMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::EarthSemimajorAxis

static double EarthSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::EarthEccentricity

static double EarthEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthInclination

static double EarthInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudePerihelion

static double EarthLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsMeanLongitude

static double MarsMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MarsSemimajorAxis

static double MarsSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::MarsEccentricity

static double MarsEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsInclination

static double MarsInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudeAscendingNode

static double MarsLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudePerihelion

static double MarsLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterMeanLongitude

static double JupiterMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::JupiterSemimajorAxis

static double JupiterSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::JupiterEccentricity

static double JupiterEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterInclination

static double JupiterInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudeAscendingNode

static double JupiterLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudePerihelion

static double JupiterLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnMeanLongitude

static double SaturnMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::SaturnSemimajorAxis

static double SaturnSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::SaturnEccentricity

static double SaturnEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnInclination

static double SaturnInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudeAscendingNode

static double SaturnLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudePerihelion

static double SaturnLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusMeanLongitude

static double UranusMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::UranusSemimajorAxis

static double UranusSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::UranusEccentricity

static double UranusEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusInclination

static double UranusInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudeAscendingNode

static double UranusLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudePerihelion

static double UranusLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneMeanLongitude

static double NeptuneMeanLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::NeptuneSemimajorAxis

static double NeptuneSemimajorAxis(double JD)

Return Value

the semi major axis of the planet in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOribit::NeptuneEccentricity

static double NeptuneEccentricity(double JD)

Return Value

the eccentricity of the orbit.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneInclination

static double NeptuneInclination(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudeAscendingNode

static double NeptuneLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudePerihelion

static double NeptuneLongitudePerihelion(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryMeanLongitudeJ2000

static double MercuryMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryInclinationJ2000

static double MercuryInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudeAscendingNodeJ2000

static double MercuryLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MercuryLongitudePerihelionJ2000

static double MercuryLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusMeanLongitudeJ2000

static double VenusMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusInclinationJ2000

static double VenusInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudeAscendingNodeJ2000

static double VenusLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::VenusLongitudePerihelionJ2000

static double VenusLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthMeanLongitudeJ2000

static double EarthMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthInclinationJ2000

static double EarthInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudeAscendingNodeJ2000

static doubleEarthLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::EarthLongitudePerihelionJ2000

static double EarthLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsMeanLongitudeJ2000

static double MarsMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsInclinationJ2000

static double MarsInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudeAscendingNodeJ2000

static double MarsLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::MarsLongitudePerihelionJ2000

static double MarsLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterMeanLongitudeJ2000

static double JupiterMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterInclinationJ2000

static double JupiterInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudeAscendingNodeJ2000

static double JupiterLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::JupiterLongitudePerihelionJ2000

static double JupiterLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnMeanLongitudeJ2000

static double SaturnMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnInclinationJ2000

static double SaturnInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudeAscendingNodeJ2000

static double SaturnLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::SaturnLongitudePerihelionJ2000

static double SaturnLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusMeanLongitudeJ2000

static double UranusMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusInclinationJ2000

static double UranusInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudeAscendingNodeJ2000

static double UranusLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::UranusLongitudePerihelionJ2000

static double UranusLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneMeanLongitudeJ2000

static double NeptuneMeanLongitudeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneInclinationJ2000

static double NeptuneInclinationJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudeAscendingNodeJ2000

static double NeptuneLongitudeAscendingNodeJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAElementsPlanetaryOrbit::NeptuneLongitudePerihelionJ2000

static double NeptuneLongitudePerihelionJ2000(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAElliptical

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

 

Functions this class provides include:

Calculate

DistanceToLightTime

SemiMajorAxisFromPerihelionDistance

MeanMotionFromSemiMajorAxis

InstantaneousVelocity

VelocityAtPerihelion

VelocityAtAphelion

LengthOfEllipse

CometMagnitude

MinorPlanetMagnitude

 

CAAElliptical::Calculate

static CAAEllipticalPlanetaryDetails Calculate(double JD, EllipticalObject object)

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.

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

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

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.

 

CAAElliptical::DistanceToLightTime

static double DistanceToLightTime(double Distance)

Return Value

The light travel time in days corresponding to the distance.

Parameters

Distance The distance in astronomical units to convert.

 

CAAElliptical::SemiMajorAxisFromPerihelionDistance

static double SemiMajorAxisFromPerihelionDistance(double q, double e)

Return Value

The semi major axis of the orbit in astronomical units.

Parameters

q The perihelion distance in astronomical units.

e The eccentricity of the orbit.

 

CAAElliptical::MeanMotionFromSemiMajorAxis

static double MeanMotionFromSemiMajorAxis(double a)

Return Value

The mean motion in degrees / day.

Parameters

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

 

CAAElliptical::InstantaneousVelocity

static double InstantaneousVelocity(double r, double a)

Return Value

The instantaneous velocity of the object in kilometres per second.

Parameters

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

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

 

CAAElliptical::VelocityAtPerihelion

static double VelocityAtPerihelion(double e, double a)

Return Value

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

Parameters

e The eccentricity of the orbit.

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

 

CAAElliptical::VelocityAtAphelion

static double VelocityAtAphelion(double e, double a)

Return Value

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

Parameters

e The eccentricity of the orbit.

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

 

CAAElliptical::LengthOfEllipse

static double LengthOfEllipse(double e, double a)

Return Value

The length of the eclipse in astronomical units.

Parameters

e The eccentricity of the orbit.

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

 

CAAElliptical::CometMagnitude

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

Return Value

The magnitude of the comet.

Parameters

g The absolute magnitude of the comet.

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

k A constant which differs from one comet to another.

r Distance of the comet from the Sun in astronomical units

Remarks

This refers to algorithm 33.13 on page 231

 

CAAElliptical::MinorPlanetMagnitude

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

Return Value

The magnitude of the minor planet.

Parameters

H The mean absolute visual magnitude of the minor planet.

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

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

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

PhaseAngle the Sun - body - Earth angle in degrees

Remarks

This refers to algorithm 33.14 on page 231

 

 

CAAEquationOfTime

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

 

Functions this class provides include:

Calculate

 

CAAEquationOfTime::Calculate

static double Calculate(double JD)

Return Value

the equation of time in decimal minutes.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAEquinoxesAndSolstices

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

 

Functions this class provides include:

SpringEquinox

SummerSoltice

AutumnEquinox

WinterSolstice

LengthOfSpring

LengthOfSummer

LengthOfAutumn

LengthOfWinter

 

CAAEquinoxesAndSolstices::SpringEquinox

static double SpringEquinox(long Year)

Return Value

The date in Dynamical time when the Spring Equinox occurs.

Parameters

Year The year to calculate the occurrence for.

 

CAAEquinoxesAndSolstices::SummerSolstice

static double SummerSolstice(long Year)

Return Value

The date in Dynamical time when the Summer Solstice occurs.

Parameters

Year The year to calculate the occurrence for.

 

CAAEquinoxesAndSolstices::AutumnEquinox

static double AutumnEquinox(long Year)

Return Value

The date in Dynamical time when the Autumn Equinox occurs.

Parameters

Year The year to calculate the occurrence for.

 

CAAEquinoxesAndSolstices::WinterSolstice

static double WinterSolstice(long Year)

Return Value

The date in Dynamical time when the Winter Solstice occurs.

Parameters

Year The year to calculate the occurrence for.

 

CAAEquinoxesAndSolstices::LengthOfSpring

static double LengthOfSpring(long Year)

Return Value

The length of the astronomical Spring season in days.

Parameters

Year The year to calculate for.

 

CAAEquinoxesAndSolstices::LengthOfSummer

static double LengthOfSummer(long Year)

Return Value

The length of the astronomical Summer season in days.

Parameters

Year The year to calculate for.

 

CAAEquinoxesAndSolstices::LengthOfAutumn

static double LengthOfAutumn(long Year)

Return Value

The length of the astronomical Autumn season in days.

Parameters

Year The year to calculate for.

 

CAAEquinoxesAndSolstices::LengthOfWinter

static double LengthOfWinter(long Year)

Return Value

The length of the astronomical Winter season in days.

Parameters

Year The year to calculate for.

 

 

CAAFK5

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

 

Functions this class provides include:

CorrectionInLongitude

CorrectionInLatitude

ConvertVSOPToFK5J2000

ConvertVSOPToFK5B1950

ConvertVSOPToFK5AnyEquinox

 

CAAFK5::CorrectionInLongitude

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

Return Value

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

Parameters

Longitude The VSOP heliocentric longitude in degrees.

Latitude The VSOP heliocentric latitude in degrees.

JD The date in Dynamical time to calculate for.

 

CAAFK5::CorrectionInLatitude

static double CorrectionInLatitude(double longitude, double JD)

Return Value

The

Parameters

Longitude The VSOP heliocentric longitude in degrees.

JD The date in Dynamical time to calculate for.

 

CAAFK5::ConvertVSOPToFK5J2000

static CAA3DCoordinate ConvertVSOPToFK5J2000(const CAA3DCoordinate& value)

Return Value

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

Parameters

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

 

CAAFK5::ConvertVSOPToFK5B1950

static CAA3DCoordinate ConvertVSOPToFK5B1950(const CAA3DCoordinate& value)

Return Value

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

Parameters

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

 

CAAFK5::ConvertVSOPToFK5AnyEquinox

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

Return Value

A class containing the converted equatorial FK5 reference frame coordinates.

Parameters

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

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

 

 

CAAGalileanMoons

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

 

Functions this class provides include:

Calculate

 

CAAGalileanMoons::Calculate

static CAAGalileanMoonsDetails Calculate(double JD)

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.

 

 

CAAGlobe

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

 

Functions this class provides include:

RhoSinThetaPrime

RhoCosThetaPrime

RadiusOfParallelOfLatitude

RadiusOfCurvature

DistanceBetweenPoints

 

CAAGlobe::RhoSinThetaPrime

static double RhoSinThetaPrime(double GeographicalLatitude, double Height)

Return Value

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

Parameters

GeographicalLatitude The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAAGlobe::RhoCosThetaPrime

static double RhoCosThetaPrime(double GeographicalLatitude, double Height)

Return Value

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

Parameters

GeographicalLatitude The latitude of the position in degrees.

Height The observer's height above sea level in meters

 

CAAGlobe::RadiusOfParallelOfLatitude

static double RadiusOfParallelOfLatitude(double GeographicalLatitude)

Return Value

The radius of parallel of latitude expressed in kilometres.

Parameters

GeographicalLatitude The latitude of the position in degrees.

 

CAAGlobe::RadiusOfCurvature

static double RadiusOfCurvature(double GeographicalLatitude)

Return Value

The radius of curvature of latitude expressed in kilometres.

Parameters

GeographicalLatitude The latitude of the position in degrees.

 

CAAGlobe::DistanceBetweenPoints

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

 

Return Value

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

Parameters

GeographicalLatitude1 The latitude of the position of the first point in degrees.

GeographicalLatitude2 The latitude of the position of the second point in degrees.

 

 

CAAIlluminatedFraction

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

 

Functions this class provides include:

PhaseAngle

PhaseAngleRectangular

IlluminatedFraction

MercuryMagnitudeAA

MercuryMagnitudeMuller

VenusMagnitudeAA

VenusMagnitudeMuller

MarsMagnitudeAA

MarsMagnitudeMuller

JupiterMagnitudeAA

JupiterMagnitudeMuller

SaturnMagnitudeAA

SaturnMagnitudeMuller

UranusMagnitudeAA

UranusMagnitudeMuller

NeptuneMagnitudeAA

NeptuneMagnitudeMuller

PlutoMagnitudeAA

 

CAAIlluminatedFraction::PhaseAngle

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

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

Return Value

The phase angle in degrees.

Parameters (First Version)

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

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

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

Parameters (Second Version)

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

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

B The planet's heliocentric latitude in degrees.

L The planet's heliocentric longitude in degrees.

L0 The heliocentric latitude of the Earth in degrees.

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

 

CAAIlluminatedFraction::PhaseAngleRectangular

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

Return Value

The phase angle in degrees.

Parameters

x The geocentric rectangular ecliptical X coordinate of the object.

y The geocentric rectangular ecliptical Y coordinate of the object.

z The geocentric rectangular ecliptical Y coordinate of the object.

B The planet's heliocentric latitude in degrees.

L The planet's heliocentric longitude in degrees.

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

 

CAAIlluminatedFraction::IlluminatedFraction

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

static double IlluminatedFraction(double PhaseAngle)

Return Value

The phase angle in degrees.

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

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

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

PhaseAngle The planet's phase angle in degrees.

 

CAAIlluminatedFraction::MercuryMagnitudeAA

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::MercuryMagnitudeMuller

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::VenusMagnitudeAA

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::VenusMagnitudeMuller

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::MarsMagnitudeAA

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::MarsMagnitudeMuller

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::JupiterMagnitudeAA

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

Return Value

The magnitude of the planet.

Parameters

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

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

i The planet's phase angle in degrees.

Remarks

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

 

CAAIlluminatedFraction::JupiterMagnitudeMuller

static double JupiterMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

CAAIlluminatedFraction::SaturnMagnitudeAA

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

Return Value

The magnitude of the planet.

Parameters

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

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

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

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

Remarks

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

 

CAAIlluminatedFraction::SaturnMagnitudeMuller

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

Return Value

The magnitude of the planet.

Parameters

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

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

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

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

Remarks

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

 

CAAIlluminatedFraction::UranusMagnitudeAA

static double UranusMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

CAAIlluminatedFraction::UranusMagnitudeMuller

static double UranusMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

CAAIlluminatedFraction::NeptuneMagnitudeAA

static double NeptuneMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

CAAIlluminatedFraction::NeptuneMagnitudeMuller

static double NeptuneMagnitudeMuller(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

CAAIlluminatedFraction::PlutoMagnitudeAA

static double PlutoMagnitudeAA(double r, double Delta)

Return Value

The magnitude of the planet.

Parameters

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

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

Remarks

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

 

 

CAAInterpolate

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

 

Functions this class provides include:

Interpolate

InterpolateToHalves

LangrangeInterpolate

Extremum

Zero

Zero2

 

CAAInterpolate::Interpolate

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

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

Return Value

The interpolated Y value.

Parameters

n The interpolating factor.

Y1 The first Y value to interpolate from.

Y2 The second Y value to interpolate from.

Y3 The third Y value to interpolate from.

Y4 The fourth Y value to interpolate from.

Y5 The fifth Y value to interpolate from.

Remarks

Interpolates a function from 3 or 5 points.

 

CAAJewishCalendar::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, double* pX, double* pY)

Return Value

The interpolated Y value.

Parameters

X The X value to interpolate for.

n The size of the pX and pY arrays.

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

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

Remarks

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

 

CAAInterpolate::Extremum

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

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

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.

 

CAAInterpolate::Zero

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".

 

CAAInterpolate::Zero2

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.

 

 

CAAJewishCalendar

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

 

Functions this class provides include:

DateOfPesach

DaysInYear

IsLeap

 

CAAJewishCalendar::DateOfPesach

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

Return Value

A class containing

Year The year in the Jewish Calendar.

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

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

Parameters

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

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

 

CAAJewishCalendar::DaysInYear

static long DaysInYear(long Year)

Return Value

The number of days in the specified Jewish Year

Parameters

Year The year in the Jewish Calendar.

 

CAAJewishCalendar::IsLeap

static bool IsLeap(long Year)

Return Value

true if the specified year is leap otherwise false.

Parameters

Year The year in the Jewish calendar.

 

 

CAAJupiter

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAJupiter::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAJupiter::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAJupiter::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAKepler

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

 

Functions this class provides include:

Calculate

 

CAAKepler::Calculate

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

Return Value

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

Parameters

M The mean anomaly in degrees.

e The eccentricity of the orbit

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

 

 

CAAMars

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAMars::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAMars::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAMars::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAMercury

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAMercury::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAMercury::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAMercury::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAMoon

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

MeanAnnomaly

MeanElongation

MeanLongitude

MeanLongitudeAscendingNode

TrueLongitudeAscendingNode

MeanLongitudePergiee

ArgumentOfLatitude

RadiusVectorToHorizontalParallax

HorizontalParallaxToRadiusVector

 

CAAMoon::EclipticLongitude

static double EclipticLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::EclipticLatitude

static double EclipticLatitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in kilometres.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanAnomaly

static double MeanAnomaly(double JD)

Return Value

the mean anomaly of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanElongation

static double MeanElongation(double JD)

Return Value

the mean elongation of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitude

static double MeanLongitude(double JD)

Return Value

the mean longitude of the Moon in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitudeAscendingNode

static double MeanLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::TrueLongitudeAscendingNode

static double TrueLongitudeAscendingNode(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::MeanLongitudePerigee

static double MeanLongitudePerigee(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::ArgumentOfLatitude

static double ArgumentOfLatitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAAMoon::RadiusVectorToHorizontalParallax

static double RadiusVectorToHorizontalParallax(double RadiusVector)

Return Value

the parallax of the object in degrees.

Parameters

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

 

CAAMoon::HorizontalParallaxToRadiusVector

static double HorizontalParallaxToRadiusVector(double Parallax)

Return Value

RadiusVector The distance to the object in kilometres.

Parameters

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

 

 

CAAMoonIlluminatedFraction

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

 

Functions this class provides include:

GeocentricElongation

PhaseAngle

IlluminatedFraction

PositionAngle

 

CAAMoonIlluminatedFraction::GeocentricElongation

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

Return Value

the elongation of the object from the Sun

Parameters

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

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

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

SunDelta The geocentric declination of the Sun in degrees.

 

CAAMoonIlluminatedFraction::PhaseAngle

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

Return Value

the phase angle in degrees.

Parameters

GeocentricElongation The geocentric elongation in degrees.

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

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

Remarks

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

 

CAAMoonIlluminatedFraction::IlluminatedFraction

static double IlluminatedFraction(double PhaseAngle)

Return Value

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

Parameters

PhaseAngle The phase angle in degrees.

 

CAAMoonIlluminatedFraction::PositionAngle

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

Return Value

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

Parameters

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

Delta0 The geocentric declination of the Sun in degrees.

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

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

 

 

CAAMoonMaxDeclinations

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

 

Functions this class provides include:

K

MeanGreatestDeclination

MeanGreatestDeclinationValue

TrueGreatestDeclination

TrueGreatestDeclinationValue

 

CAAMoonMaxDeclinations::K

static double K(double Year)

Return Value

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

Parameters

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

 

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.

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.

 

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.

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.

 

 

CAAMoonNodes

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

 

Functions this class provides include:

K

PassageThroNode

 

CAAMoonNodes::K

static double K(double Year)

Return Value

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

Parameters

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

 

CAAMoonNodes::PassageThroNode

static double PassageThroNode(double k)

Return Value

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

Parameters

k The K value to calculate the passage thro the node for.

 

 

CAAMoonPerigeeApogee

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

 

Functions this class provides include:

K

MeanPerigee

MeanApogee

TruePerigee

TrueApogee

PerigeeParallax

ApogeeParallax

 

CAAMoonPerigeeApogee::K

static double K(double Year)

Return Value

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

Parameters

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

 

CAAMoonPerigeeApogee::MeanPerigee

static double MeanPerigee(double k)

Return Value

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

Parameters

k The integer value which gives a perigee.

 

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.

 

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.

 

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.

 

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

 

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.

 

 

CAAMoonPhases

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

 

Functions this class provides include:

K

MeanPhase

TruePhase

 

CAAMoonPhases::K

static double K(double Year)

Return Value

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

Parameters

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

 

CAAMoonPhases::MeanPhase

static double MeanPhase(double k)

Return Value

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

Parameters

k The K value to calculate the phase for.

 

CAAMoonPhases::TruePhase

static double TruePhase(double k)

Return Value

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

Parameters

k The K value to calculate the phase for.

 

 

CAAMoslemCalendar

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

 

Functions this class provides include:

JulianToMoslem

MoslemToJulian

IsLeap

 

CAAMoslemCalendar::JulianToMoslem

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

Return Value

A class containing

Year The year in the Moslem Calendar.

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

Day The day of the month in the Moslem Calendar.

Parameters

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

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

Day The day of the month in the Julian Calendar.

 

CAAMoslemCalendar::MoslemToJulian

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

Return Value

A class containing

Year The year in the Julian Calendar.

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

Day The day of the month in the Julian Calendar.

Parameters

Year The year in the Moslem Calendar to convert

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

Day The day of the month in the Moslem Calendar.

 

CAAMoslemCalendar::IsLeap

static bool IsLeap(long Year)

Return Value

true if the specified year is leap otherwise false.

Parameters

Year The year in the Moslem calendar.

 

 

CAANearParabolic

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

 

Functions this class provides include:

Calculate

 

CAANearParabolic::Calculate

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

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.

e Eccentricity of the orbit

 

 

 

CAANeptune

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAANeptune::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAANeptune::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAANeptune::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAANodes

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

 

Functions this class provides include:

PassageThroAscendingNode (for Elliptical orbits)

PassageThroDescendingNode (for Elliptical orbits)

PassageThroAscendingNode (for Parabolic orbits)

PassageThroDescendingNode (for Parabolic orbits)

 

CAANodes::PassageThroAscendingNode

static CAANodeObjectDetails PassageThroAscendingNode(const CAAEllipticalObjectElements& elements);

Return Value

A class containing

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

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

a The semi major axis in astronomical units.

e The eccentricity of the orbit.

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

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAEllipticalObjectElements.

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

 

CAANodes::PassageThroDescendingNode

static CAANodeObjectDetails PassageThroDescendingNode(const CAAEllipticalObjectElements& elements);

Return Value

A class containing

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

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

a The semi major axis in astronomical units.

e The eccentricity of the orbit.

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

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAEllipticalObjectElements.

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

 

CAANodes::PassageThroAscendingNode

static CAANodeObjectDetails PassageThroAscendingNode(const CAAParabolicObjectElements& elements);

Return Value

A class containing

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

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

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

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAParabolicObjectElements.

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

 

CAANodes::PassageThroDescendingNode

static CAANodeObjectDetails PassageThroDescendingNode(const CAAParabolicObjectElements& elements);

Return Value

A class containing

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

radius The radius vector in astronomical units.

Parameters

elements A class containing the following orbital elements

q The perihelion distance in astronomical units.

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

w The argument of the perihelion in degrees.

omega The longitude of the ascending node in degrees.

JDEquinox Unused in this function's use of CAAParabolicObjectElements.

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

 

 

CAANutation

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

 

Functions this class provides include:

NutationInLongitude

NutationInObliquity

NutationInRightAscension

NutationInDeclination

MeanObliquityOfEcliptic

TrueObliquityOfEcliptic

 

CAANutation::NutationInLongitude

static double NutationInLongitude(double JD)

Return Value

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

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::NutationInObliquity

static double NutationInObliquity(double JD)

Return Value

The nutation in obliquity in arc seconds of a degree.

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::NutationInRightAscension

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

Return Value

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

Parameters

Alpha The right ascension of the position in hour angles.

Delta The declination of the position in degrees.

Obliquity The obliquity of the Ecliptic in degrees.

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

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

Remarks

This refers to algorithm 23.1 on page 151.

 

CAANutation::NutationInDeclination

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

Return Value

The nutation in declination in arc seconds of a degree.

Parameters

Alpha The right ascension of the position in hour angles.

Delta The declination of the position in degrees.

Obliquity The obliquity of the Ecliptic in degrees.

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

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

Remarks

This refers to algorithm 23.1 on page 151.

 

CAANutation::MeanObliquityOfEcliptic

static double MeanObliquityOfEcliptic(double JD)

Return Value

The mean obliquity of the ecliptic in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

CAANutation::TrueObliquityOfEcliptic

static double TrueObliquityOfEcliptic(double JD)

Return Value

The true obliquity of the ecliptic in degrees.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAParabolic

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

 

Functions this class provides include:

Calculate

CalculateBarkers

 

CAAParabolic::Calculate

static CAAParabolicObjectDetails Calculate(double JD, const CAAParabolicObjectElements& elements)

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.

 

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.

 

 

CAAParallactic

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

 

Functions this class provides include:

ParallacticAngle

EclipticLongitudeOnHorizon

AngleBetweenEclipticAndHorizon

AngleBetweenNorthCelestialPoleAndNorthPoleOfEcliptic

 

CAAParallactic::ParallacticAngle

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

Return Value

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

Parameters

HourAngle The hour angle.

Latitude The latitude of the position in degrees.

Delta The declination in degrees.

Remarks

This refers to algorithm 14.1 on page 98.

 

CAAParallactic::EclipticLongitudeOnHorizon

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

Return Value

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

Parameters

LocalSiderealTime The local sidereal time measured in hours.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Latitude The latitude of the position in degrees.

Remarks

This refers to algorithm 14.2 on page 99.

 

CAAParallactic::AngleBetweenEclipticAndHorizon

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

Return Value

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

Parameters

LocalSiderealTime The local sidereal time measured in hours.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Latitude The latitude of the position in degrees.

Remarks

This refers to algorithm at the top of page 100.

 

CAAParallactic::AngleBetweenNorthCelestrialPoleAndNorthPoleOfEcliptic

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

Return Value

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

Parameters

Lambda The ecliptical longitude in degrees.

Beta The ecliptical latitude of the star in degrees.

ObliquityOfEcliptic The obliquity of the ecliptic in degrees.

Remarks

This refers to algorithm at the top of page 100.

 

 

CAAParallax

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

 

Functions this class provides include:

Equatorial2TopocentricDelta

Equatorial2Topocentric

Ecliptic2Topocentric

ParallaxToDistance

DistanceToParallax

 

CAAParallax::Equatorial2TopocentricDelta

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

Return Value

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

Parameters

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

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

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

Longitude The longitude in degrees. 

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 Longitude, 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.

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.

 

CAAParallax::ParallaxToDistance

static double ParallaxToDistance(double Parallax)

Return Value

Returns the distance in astronomical units.

Parameters

Parallax The parallax of the body in degrees.

 

CAAParallax::DistanceToParallax

static double DistanceToParallax(double Distance)

Return Value

Returns the parallax in degrees. 

Parameters

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

 

 

CAAPhysicalJupiter

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

 

Functions this class provides include:

Calculate

 

CAAPhysicalJupiter::Calculate

static CAAPhysicalJupiterDetails Calculate(double JD)

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.

 

 

CAAPhysicalMars

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

 

Functions this class provides include:

Calculate

 

CAAPhysicalMars::Calculate

static CAAPhysicalMarsDetails Calculate(double JD)

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.

 

 

CAAPhysicalMoon

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

 

Functions this class provides include:

CalculateGeocentric

CalculateTopocentric

CalculateSelenographicPositionOfSun

AltitudeOfSun

TimeOfSunrise

TimeOfSunset

 

CAAPhysicalMoon::CalculateGeocentric

static CAAPhysicalMoonDetails CalculateGeocentric(double JD)

Return Value

A class containing

ldash The optical libration in longitude in degrees.

bdash The optical libration in latitude in degrees.

ldash2 The physical libration in longitude in degrees.

bdash2 The physical libration in latitude in degrees.

l The total libration in longitude in degrees.

b The total libration in latitude in degrees.

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

Parameters

JD The date in Dynamical time to calculate for.

Remarks

Calculates the physical parameters referred to the centre of the Earth

 

CAAPhysicalMoon::CalculateTopcentric

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

Return Value

A class containing

ldash The optical libration in longitude in degrees.

bdash The optical libration in latitude in degrees.

ldash2 The physical libration in longitude in degrees.

bdash2 The physical libration in latitude in degrees.

l The total libration in longitude in degrees.

b The total libration in latitude in degrees.

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

Parameters

JD The date in Dynamical time to calculate for.

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

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

Remarks

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

 

CAAPhysicalMoon::CalculateSelenographicPositionOfSun

static CAAPSelenographicMoonDetails CalculateSelenographicPositionOfSun(double JD)

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.

 

CAAPhysicalMoon::AltitudeOfSun

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

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.

 

CAAPhysicalMoon::TimeOfSunrise

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

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.

 

CAAPhysicalMoon::TimeOfSunset

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

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.

 

 

CAAPhysicalSun

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

 

Functions this class provides include:

Calculate

 

CAAPhysicalSun::Calculate

static CAAPhysicalSunDetails Calculate(double JD)

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.

 

 

CAAPlanetaryPhenomena

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

 

Functions this class provides include:

K

Mean

True

ElongationValue

 

CAAPlanetaryPhenomena::K

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

Return Value

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

Parameters

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

object An enum specifying the planet to calculate for.

type An enum to specify the event type to calculate.

 

CAAPlanetaryPhenomena::Mean

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

Return Value

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

Parameters

k The K value to calculate the phenomena for.

object An enum specifying the planet to calculate for.

type An enum to specify the event type to calculate.

 

CAAPlanetaryPhenomena::True

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

Return Value

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

Parameters

k The K value to calculate the phenomena for.

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.

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.

 

 

CAAPlanetPerihelionAphelion

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

 

Functions this class provides include:

MercuryK

MercuryPerihelion

MercuryAphelion

VenusK

VenusPerihelion

VenusAphelion

EarthK

EarthPerihelion

EarthAphelion

MarsK

MarsPerihelion

MarsAphelion

JupiterK

JupiterPerihelion

JupiterAphelion

SaturnK

SaturnPerihelion

SaturnAphelion

UranusK

UranusPerihelion

UranusAphelion

NeptuneK

NeptunePerihelion

NeptuneAphelion

 

CAAPlanetPerihelionAphelion::MercuryK

static long MercuryK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::MercuryPerihelion

static double MercuryPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::MercuryAphelion

static double MercuryAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::VenusK

static long VenusK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::VenusPerihelion

static double VenusPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::VenusAphelion

static double VenusAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::EarthK

static long EarthK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::EarthPerihelion

static double EarthPerihelion(long 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.

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

 

CAAPlanetPerihelionAphelion::EarthAphelion

static double EarthAphelion(long 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.

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

 

CAAPlanetPerihelionAphelion::MarsK

static long MarsK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::MarsPerihelion

static double MarsPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::MarsAphelion

static double MarsAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::JupiterK

static long JupiterK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::JupiterPerihelion

static double JupiterPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::JupiterAphelion

static double JupiterAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::SaturnK

static long SaturnK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::SaturnPerihelion

static double SaturnPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::SaturnAphelion

static double SaturnAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::UranusK

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::UranusPerihelion

static double UranusPerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::UranusAphelion

static double UranusAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

CAAPlanetPerihelionAphelion::NeptuneK

static long NeptuneK(double Year)

Return Value

Returns the approximate value of K (required by the other methods of CAAPlanetPerihelionAphelion) for calculation of the dates of Perihelion or Aphelion.

Parameters

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

 

CAAPlanetPerihelionAphelion::NeptunePerihelion

static double NeptunePerihelion(long k)

Return Value

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

Parameters

k The K value to calculate the perihelion for.

 

CAAPlanetPerihelionAphelion::NeptuneAphelion

static double NeptuneAphelion(long k)

Return Value

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

Parameters

k The K value to calculate the aphelion for.

 

 

CAAPluto

This class provides for calculation of the heliocentric position of Pluto. This refers to Chapter 37 in the book.

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAPluto::EclipticLongitude

static double EclipticLongitude(double JD)

Return Value

the ecliptic longitude in degrees referred to the standard equinox J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAPluto::EclipticLatitude

static double EclipticLatitude(double JD)

Return Value

the ecliptic latitude in degrees referred to the standard equinox J2000.

Parameters

JD The date in Dynamical time to calculate for.

 

CAAPluto::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAPrecession

This class provides for the calculation of the slow drift that the direction of the rotational axis of the Earth undergoes over time. This refers to Chapter 21 in the book.

 

Functions this class provides include:

PrecessEquatorial

PrecessEquatorialFK4

PrecessEcliptic

EquatorialPMToEcliptic

AdjustPositionUsingUniformProperMotion

AdjustPositionUsingMotionInSpace

 

CAAPrecession::PrecessEquatorial

static CAA2DCoordinate PrecessEquatorial(double Alpha, double Delta, double JD0, double JD)

Return Value

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

Parameters

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

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

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 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 JD.

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

JD0 The date in Dynamical time corresponding to the initial epoch.

JD The date in Dynamical time corresponding to the final epoch.

 

CAAPrecession::PrecessEcliptic

static CAA2DCoordinate PrecessEcliptic(double Lambda, double Beta, double JD0, double JD)

Return Value

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

Parameters

Lambda The ecliptical longitude in degrees.

Beta The ecliptical latitude of the star in degrees.

JD0 The date in Dynamical time corresponding to the initial epoch.

JD The date in Dynamical time corresponding to the final epoch.

 

CAAPrecession::EquatorialPMToEcliptic

static CAA2DCoordinate EquatorialPMToEcliptic(double Alpha, double Delta, double Beta, double PMAlpha, double PMDelta, double Epsilon)

Return Value

Returns the converted ecliptic proper motions in a CAA2DCoordinate class. The x value in the class corresponds to the proper motion in ecliptical longitude in arc seconds per year and the y value corresponds to the proper motion in ecliptical latitude in arc seconds per year.

Parameters

Alpha The right ascension expressed as an hour angle.

Delta The declination in degrees.

Beta The ecliptical latitude of the star in degrees.

PMAlpha The proper motion in right ascension in arc seconds per year. 

PMDelta The proper motion of the declination in arc seconds per year.

Epsilon The obliquity of the ecliptic in degrees.

 

CAAPrecession::AdjustPositionUsingUniformProperMotion

static CAA2DCoordinate AdjustPositionUsingUniformProperMotion(double t, double Alpha, double Delta, double PMAlpha, double PMDelta)

Return Value

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

Parameters

t The number of years from the starting epoch, negative in the past and positive in the future.

Alpha The right ascension expressed as an hour angle.

Delta The declination in degrees. 

PMAlpha The proper motion in right ascension in arc seconds per year. 

PMDelta The proper motion in declination in arc seconds per year.

 

CAAPrecession::AdjustPositionUsingMotionInSpace

static CAA2DCoordinate AdjustPositionUsingMotionInSpace(double r, double deltar, double t, double Alpha, double Delta, double PMAlpha, double PMDelta)

Return Value

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

Parameters

r The stars distance in parsecs.

deltar The radial velocity  in km/s.

t The number of years from the starting epoch, negative in the past and positive in the future.

Alpha The right ascension expression as an hour angle.

Delta The declination in degrees. 

PMAlpha The proper motion in right ascension in arc seconds per year. 

PMDelta The proper motion in declination in arc seconds per year.

 

 

CAARefraction

This class provides for conversion between apparent and true altitude above the horizon. This refers to Chapter 16 in the book.

 

Functions this class provides include:

RefractionFromApparent

RefractionFromTrue

 

CAARefraction::RefractionFromApparent

static double RefractionFromApparent(double Altitude, double Pressure = 1010, double Temperature = 10)

Return Value

the refraction in degrees.

Parameters

Altitude The apparent altitude in degrees.

Pressure The atmospheric pressure in millibars

Temperature The air temperature in degrees Celsius.

 

CAARefraction::RefractionFromTrue

static double RefractionFromTrue(double Altitude, double Pressure = 1010, double Temperature = 10)

Return Value

the refraction in degrees.

Parameters

Altitude The true altitude in degrees.

Pressure The atmospheric pressure in millibars

Temperature The air temperature in degrees Celsius.

 

 

CAARiseTransitSet

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.

 

Functions this class provides include:

Rise

 

CAARiseTransitSet::Rise

static CAARiseTransitSetDetails Rise(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

bValid true if the object actually rises, transits and sets for the specified date. If false, this would imply that either the object is circumpolar or never rises high enough above the horizon.

Rise The time in decimal hours when the object rises

Transit The time in hours when the object transits

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.

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 and for the Sun & Moon you would normally use -0.8333.

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 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:

void main()
{
  CAADate CalcDate(2009, 8, 8, true);
  double JD = CalcDate.Julian();
  JD = CalcDate.Julian() + 0.010; //to get the effect to be demonstrated
  for (int i = 0; i<5; i++)
  {
    JD += 1.000;
    CAAEllipticalPlanetaryDetails SunDetails = CAAElliptical::Calculate(JD - 1, CAAElliptical::SUN);
    double Alpha1 = SunDetails.ApparentGeocentricRA;
    double Delta1 = SunDetails.ApparentGeocentricDeclination;
    SunDetails = CAAElliptical::Calculate(JD, CAAElliptical::SUN);
    double Alpha2 = SunDetails.ApparentGeocentricRA;
    double Delta2 = SunDetails.ApparentGeocentricDeclination;
    SunDetails = CAAElliptical::Calculate(JD + 1, CAAElliptical::SUN);
    double Alpha3 = SunDetails.ApparentGeocentricRA;
    double Delta3 = SunDetails.ApparentGeocentricDeclination;
    CAARiseTransitSetDetails RiseTransitSetTime = CAARiseTransitSet::Rise(JD, Alpha1, Delta1, Alpha2, Delta2, Alpha3, Delta3, 74.73057, 39.275787, -0.8333);
    double rtsJD = (JD + (RiseTransitSetTime.Set / 24.00));
    double lclJD = rtsJD - (4.00/24.00); //Adjust for EDT -4 Hours
    CAADate SetDate(rtsJD,true);
    long setDay;
    long setMonth;
    long setYear;
    long setHours;
    long setMinuts;
    double setSec;
    SetDate.Get(setYear,setMonth, setDay, setHours, setMinuts, setSec);
    printf("Sunset for %d/%d/%d UTC occurs at %02d:%02d:%02d\n", setYear, setMonth, setDay, setHours, setMinuts, static_cast<int>(setSec));
    CAADate SetLclDate(lclJD, true);
    long setlclDay;
    long setlclMonth;
    long setlclYear;
    long setlclHours;
    long setlclMinuts;
    double setlclSec;
    SetLclDate.Get(setlclYear,setlclMonth, setlclDay, setlclHours, setlclMinuts, setlclSec);
    printf("Sunset for %d/%d/%d PDT occurs at %02d:%02d:%02d\n\n", setlclYear, setlclMonth, setlclDay, setlclHours, setlclMinuts, static_cast<int>(setlclSec));
  }
}

You will observe the following output, which demonstrates this effect:

Sunset for 2009/8/10 UTC occurs at 00:01:39
Sunset for 2009/8/9 PDT occurs at 20:01:39

Sunset for 2009/8/11 UTC occurs at 00:00:25
Sunset for 2009/8/10 PDT occurs at 20:00:25

Sunset for 2009/8/11 UTC occurs at 23:59:10
Sunset for 2009/8/11 PDT occurs at 19:59:10

Sunset for 2009/8/12 UTC occurs at 23:57:54
Sunset for 2009/8/12 PDT occurs at 19:57:54

Sunset for 2009/8/13 UTC occurs at 23:56:37
Sunset for 2009/8/13 PDT occurs at 19:56:37

Your client code which uses this method will need to handle this situation itself.

 

CAASaturn

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAASaturn::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAASaturn::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAASaturn::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAASaturnMoons

This class provides for calculation of positions of the principle moons of Saturn. This refers to Chapter 46 in the book.

 

Functions this class provides include:

Calculate

 

CAASaturnMoons::Calculate

static CAASaturnMoonsDetails Calculate(double JD)

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.

 

 

CAASaturnRings

This class provides for calculation of various parameters related to the Rings of Saturn. This refers to Chapter 45 in the book.

 

Functions this class provides include:

Calculate

 

CAASaturnRings::Calculate

static CAASaturnRingDetails Calculate(double JD)

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.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAASidereal

This class provides for the calculation of sidereal time. This refers to Chapter 12 in the book.

 

Functions this class provides include:

MeanGreenwichSiderealTime

ApparentGreenwichSiderealTime

 

CAASidereal::MeanGreenwichSiderealTime

static double MeanGreenwichSiderealTime(double JD)

Return Value

The Mean Greenwich Sidereal Time, that is, the Greenwich hour angle of the mean vernal point (the intersection of the ecliptic of the date with the mean equator of the date), expressed in hours.

Parameters

JD The Julian Day in Universal time to calculate for.

 

CAASidereal::ApparentGreenwichSiderealTime

static double ApparentGreenwichSiderealTime(double JD)

Return Value

The Apparent Greenwich Sidereal Time, that is, the Greenwich hour angle of the true vernal equinox, expressed in hours.

Parameters

JD The Julian Day in Universal time to calculate for.

 

 

CAAStellarMagnitudes

This class provides for calculation of the combined magnitude of two stars. This refers to Chapter 56 in the book.

 

Functions this class provides include:

CombinedMagnitude

CombinedMagnitude

BrightnessRatio

MagnitudeDifference

 

CAAStellarMagnitudes::CombinedMagnitude

static double CombinedMagnitude(double m1, double m2)

Return Value

the combined magnitude of two stars.

Parameters

m1 The magnitude of the first star.

m2  The magnitude of the second star.

 

CAAStellarMagnitudes::CombinedMagnitude

static double CombinedMagnitude(int Magnitudes, const double* pMagnitudes)

Return Value

the combined magnitude of more that two stars.

Parameters

Magnitudes The number of magnitudes to combine from "pMagnitudes".

magnitudes  The sum of all the star magnitudes.

 

CAAStellarMagnitudes::BrightnessRatio

static double BrightnessRatio(double m1, double m2);

Return Value

the ratio of the apparent luminosities of the two stars.

Parameters

m1 The magnitude of the first star.

m2  The magnitude of the second star.

 

CAAStellarMagnitudes::MagnitudeDifference

static double MagnitudeDifference(double brightnessRatio)

Return Value

the difference in magnitude between the stars. 

Parameters

brightnessRatio The ratio of the apparent luminosities of the two stars.

 

 

CAASun

This class provides for calculation of the geocentric position of the Sun. This refers to Chapter 25 & 26 in the book.

 

Functions this class provides include:

GeometricEclipticLongitude

GeometricEclipticLatitude

GeometricFK5EclipticLongitude

GeometricFK5EclipticLatitude

ApparentEclipticLongitude

ApparentEclipticLatitude

EquatorialRectangularCoordinatesMeanEquinox

EclipticRectangularCoordinatesJ2000

EquatorialRectangularCoordinatesJ2000

EquatorialRectangularCoordinatesB1950

EquatorialRectangularCoordinatesAnyEquinox

 

CAASun::GeometricEclipticLongitude

static double GeometricEclipticLongitude(double JD)

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.

 

CAASun::GeometricEclipticLatitude

static double GeometricEclipticLatitude(double JD)

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.

 

CAASun::GeometricFK5EclipticLongitude

static double GeometricFK5EclipticLongitude(double JD)

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.

 

CAASun::GeometricFK5EclipticLatitude

static double GeometricFK5EclipticLatitude(double JD)

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.

 

CAASun::ApparentEclipticLongitude

static double ApparentEclipticLongitude(double JD)

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.

 

CAASun::ApparentEclipticLatitude

static double ApparentEclipticLatitude(double JD)

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.

 

CAASun::EquatorialRectangularCoordinatesMeanEquinox

static CAA3DCoordinate EquatorialRectangularCoordinatesMeanEquinox(double JD)

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.

 

CAASun::EclipticRectangularCoordinatesJ2000

static CAA3DCoordinate EclipticRectangularCoordinatesJ2000(double JD)

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.

 

CAASun::EquatorialRectangularCoordinatesJ2000

static CAA3DCoordinate EquatorialRectangularCoordinatesJ2000(double JD)

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.

 

CAASun::EquatorialRectangularCoordinatesB1950

static CAA3DCoordinate EquatorialRectangularCoordinatesJ2000(double JD)

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.

 

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.

 

 

CAAUranus

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAUranus::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAUranus::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAUranus::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

CAAVenus

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

 

Functions this class provides include:

EclipticLongitude

EclipticLatitude

RadiusVector

 

CAAVenus::EclipticLongitude

static double EclipticLongitude(double JD)

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.

 

CAAVenus::EclipticLatitude

static double EclipticLatitude(double JD)

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.

 

CAAVenus::RadiusVector

static double RadiusVector(double JD)

Return Value

the radius vector in astronomical units.

Parameters

JD The date in Dynamical time to calculate for.

 

 

 

Planned Enhancements

 

 

 

References

 

 

 

Contacting the Author

PJ Naughter
Email: pjna@naughter.com
Web: http://www.naughter.com
28 March 2009