Under construction ; does not contain reliable informations.
Apart from its index, its coordinates and its coordinate expression, an object of class
Body holds the units used to express its coordinates.
It is also used to store the
ComputationException which may occur during the computation of its coordinates.
So here is how the
Body class look lie :
The methods transforming cartesian to spherical coordinatesare handled by this class, as the result depends on units.
The signature of calcBodyCoords() is :
public void calcBodyCoords(int frame,
) throws JEphemException, AstroException
See the javadoc page for more details.
calcBodyCoord's job is :
for each of its bodies, call the right class to compute the coordinates for the given precision - order velocity computation if required.
Handle coordinate transformations to get to the required frame - transfom spherical / cartesian if necessary.
Order unit conversion before returning the results.
jephem.astro.tools.Ephemeris is in charge of producing an ephemeris table.
It contains coordinates of several bodies, for several julian days.
This is a higher level class, which can use astronomical classes, but don't perform any astro computations.
Ephemeris constructor will build one
AstroContext per julian day, and call their
To build an
Ephemeris object, one must provide these informations :
During computation, two kinds of exceptions can be found :
Computation exceptions, thrown by classes implementing
PlanetaryTheory (VSOP87, Pluto99 ...), when a computation is asked for a date not handled by a theory, or for a precision that can't be reached. When this happens a
jephem.astro.solarsystem.ComputationException is stored in the corresponding
Body. Note that planetary theories never throw
Other exceptions, like I/O errors. When this occurs, a
jephem.astro.AstroException is thrown
It is now possible complete the diagram presented in the page Class organization.