﻿Ephemeris Method
Retrieves the position and velocity of a solar system body from a fundamental ephemeris.

Namespace: ASCOM.Astrometry.NOVAS
Assembly: ASCOM.Astrometry (in ASCOM.Astrometry.dll) Version: 6.0.0.0 (6.1.1.2619)

# Syntax

C#
```public short Ephemeris(
double[] Jd,
Object3 CelObj,
Origin Origin,
Accuracy Accuracy,
ref double[] Pos,
ref double[] Vel
)```
Visual Basic
```Public Function Ephemeris ( _
Jd As Double(), _
CelObj As Object3, _
Origin As Origin, _
Accuracy As Accuracy, _
ByRef Pos As Double(), _
ByRef Vel As Double() _
) As Short```
Visual C++
```public:
virtual short Ephemeris(
array<double>^ Jd,
Object3 CelObj,
Origin Origin,
Accuracy Accuracy,
array<double>^% Pos,
array<double>^% Vel
) sealed```

#### Parameters

Jd
Type: array<System..::..Double>[]()[][]
TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date.
CelObj
Type: ASCOM.Astrometry..::..Object3
Structure containing the designation of the body of interest
Origin
Type: ASCOM.Astrometry..::..Origin
Origin code; solar system barycenter = 0, center of mass of the Sun = 1.
Accuracy
Type: ASCOM.Astrometry..::..Accuracy
Slection for accuracy
Pos
Type: array<System..::..Double>[]()[][]%
Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS.
Vel
Type: array<System..::..Double>[]()[][]%
Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day.

#### Return Value

```    0 ... Everything OK
1 ... Invalid value of 'Origin'
2 ... Invalid value of 'Type' in 'CelObj';
3 ... Unable to allocate memory
10+n ... where n is the error code from 'SolarSystem';
20+n ... where n is the error code from 'ReadEph'.
```

# Remarks

It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c.