public class Ephemeris : IEphemerisPublic Class Ephemeris
Implements IEphemerisThe results are passed back as an array containing the two vectors. Note that this is the format expected for the ephemeris generator used by the NOVAS-COM vector astrometry engine. For more information see the description of Ephemeris.GetPositionAndVelocity().
Ephemeris Calculations
The ephemeris calculations in Kepler draw heavily from the work of
Stephen Moshier moshier@world.std.com. kepler is released as a free software package, further
extending the work of Mr. Moshier.
Kepler does not integrate orbits to the current epoch. If you want the accuracy resulting from an integrated orbit, you must integrate separately and supply Kepler with elements of the current epoch. Orbit integration is on the list of things for the next major version.
Kepler uses polynomial approximations for the major planet ephemerides. The tables of coefficients were derived by a least squares fit of periodic terms to JPL's DE404 ephemerides. The periodic frequencies used were determined by spectral analysis and comparison with VSOP87 and other analytical planetary theories. The least squares fit to DE404 covers the interval from -3000 to +3000 for the outer planets, and -1350 to +3000 for the inner planets. For details on the accuracy of the major planet ephemerides, see the Accuracy Tables page.
Date and Time Systems
For a detailed explanation of astronomical timekeeping systems, see A Time Tutorial on the NASA
Goddard Spaceflight Center site, and the USNO Systems of Time site.
ActiveX Date values
These are the Windows standard "date serial" numbers, and are expressed in local time or
UTC (see below). The fractional part of these numbers represents time within a day.
They are used throughout applications such as Excel, Visual Basic, VBScript, and other
ActiveX capable environments.
Julian dates
These are standard Julian "date serial" numbers, and are expressed in UTC time or Terrestrial
time. The fractional part of these numbers represents time within a day. The standard ActiveX
"Double" precision of 15 digits gives a resolution of about one millisecond in a full Julian date.
This is sufficient for the purposes of this program.
Hourly Time Values
These are typically used to represent sidereal time and right ascension. They are simple real
numbers in units of hours.
UTC Time Scale
Most of the ASCOM methods and properties that accept date/time values (either Date or Julian)
assume that the date/time is in Coordinated Universal Time (UTC). Where necessary, this time
is converted internally to other scales. Note that UTC seconds are based on the Cesium atom,
not planetary motions. In order to keep UTC in sync with planetary motion, leap seconds are
inserted periodically. The error is at most 900 milliseconds.
UT1 Time Scale
The UT1 time scale is the planetary equivalent of UTC. It it runs smoothly and varies a bit
with time, but it is never more than 900 milliseconds different from UTC.
TT Time Scale
The Terrestrial Dynamical Time (TT) scale is used in solar system orbital calculations.
It is based completely on planetary motions; you can think of the solar system as a giant
TT clock. It differs from UT1 by an amount called "delta-t", which slowly increases with time,
and is about 60 seconds right now (2001).
| Ephemeris | Create a new Ephemeris component and initialise it |
| a_SemiMajorAxis | Semi-major axis (AU) |
| BodyType | The type of solar system body represented by this instance of the ephemeris engine (enum) |
| e_OrbitalEccentricity | Orbital eccentricity |
| Epoch | Epoch of osculation of the orbital elements (terrestrial Julian date) |
| G_SlopeForMagnitude | Slope parameter for magnitude |
| H_AbsoluteVisualMagnitude | Absolute visual magnitude |
| i_Inclination | The J2000.0 inclination (deg.) |
| M_MeanAnomalyAtEpoch | Mean anomaly at the epoch |
| n_MeanDailyMotion | Mean daily motion (deg/day) |
| Name | The name of the Body. |
| Node | The J2000.0 longitude of the ascending node (deg.) |
| Number | The major or minor planet number |
| P_OrbitalPeriod | Orbital period (years) |
| q_PerihelionDistance | Perihelion distance (AU) |
| w_PerihelionArgument | The J2000.0 argument of perihelion (deg.) |
| z_ReciprocalSemiMajorAxis | Reciprocal semi-major axis (1/AU) |
| GetPositionAndVelocity | Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). |