Click or drag to resize
Ephemeris Class

Note: This API is now obsolete.

KEPLER: Ephemeris Object
Inheritance Hierarchy

Namespace: ASCOM.Astrometry.Kepler
Assembly: ASCOM.Astrometry (in ASCOM.Astrometry.dll) Version: (
[ObsoleteAttribute("This class will be withdrawn in the next major release, please use the SOFA or NOVAS31 classes instead")]
public class Ephemeris

The Ephemeris type exposes the following members.

Public methodEphemeris
Create a new Ephemeris component and initialise it
Public propertya
Semi-major axis (AU)
Public propertyBodyType
The type of solar system body represented by this instance of the ephemeris engine (enum)
Public propertye
Orbital eccentricity
Public propertyEpoch
Epoch of osculation of the orbital elements (terrestrial Julian date)
Public propertyG
Slope parameter for magnitude
Public propertyH
Absolute visual magnitude
Public propertyIncl
The J2000.0 inclination (deg.)
Public propertyM
Mean anomaly at the epoch
Public propertyn
Mean daily motion (deg/day)
Public propertyName
The name of the body.
Public propertyNode
The J2000.0 longitude of the ascending node (deg.)
Public propertyNumber
The major or minor planet number
Public propertyP
Orbital period (years)
Public propertyPeri
The J2000.0 argument of perihelion (deg.)
Public propertyq
Perihelion distance (AU)
Public propertyz
Reciprocal semi-major axis (1/AU)
Public methodGetPositionAndVelocity
Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.).
The Kepler Ephemeris object contains an orbit engine which takes the orbital parameters of a solar system body, plus a a terrestrial date/time, and produces the heliocentric equatorial position and velocity vectors of the body in Cartesian coordinates. Orbital parameters are not required for the major planets, Kepler contains an ephemeris generator for these bodies that is within 0.05 arc seconds of the JPL DE404 over a wide range of times, Perturbations from major planets are applied to ephemerides for minor planets.

The 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 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).

See Also