Introduction Ideally, this presentation should include a complete introduction to ephemeris calculation, and a presentation of all the notions used to build JEphem. But this task is too big for me, so I will just try to present what I learnt to write this program. Sometimes, mathematical or astronomical notions are presented, but it has no exhaustive character. As I'm a beginner in this field, I still ask myself many questions, which are also part of this presentation.

Desired features

When I started JEphem, I was interested in developing a free astronomy software, using an object oriented computer language. I also wanted it to be portable (to use it under Linux or Windows). Obviously, java seemed to be the appropriate language.

The first thing to do is to define what to develop. For a first version, I retained these features :
• Computation of positions and velocities of the planets (from Mercury to Pluto) and the Moon.
• Possibility to ask computation for a given precision.
• Coordinates - possibility to compute different types of coordinates :
- geometric heliocentric ecliptic,
- apparent geocentric ecliptic,
- apparent geocentric equatorial.

•       - topocentric horizontal.
• Possibility to get cartesian or spherical coordinates ;
• Write a minimal graphical user interface (GUI) permitting to generates ephemeris tables.
• Future developments

Hundreds of interesting things can be done with astronomy computation.
Here is what I'm planning to develop for JEphem :
• Computation of orbital parameters (e, i, omega ...).
• Graphical representation of coordinates (ex in geocentric ecliptic : b = f(l), to get drawings of retrogradation loops, or l = f(t)...)
• Implement date searching functions : transits, mutual phenomena, retrogradation dates.... this will perharps imply the development of low precision routines for positions.
• Integrate computation of asteroïds.
• Integrate the satellites of the planets and comets.
• Develop online ephemeris calculation, to use JEphem as a web service.
• Integrate stellar cartography (at least handling star positions and few characteristics).
• Main information sources

XEphem - JEphem began when a friend told me about XEphem (merci Olivier). It's a GPLed program written in C for Linux (see http://www.clearskyinstitute.com). At the beginning, I thought that writing JEphem would just be a matter of translating XEphem to java.
But Looking through the code, I found it simpler to go to the BDL server and get the original data. And I prefered using version A of VSOP87 (XEphem uses version D).
XEphem was really useful thanks to its clearly commented code ; it was a great guideline, specially to find where to search on the web for more information.
XEphem is much more sophisticated than JEphem, I just had a look at a small part of the code.
The name 'JEphem' is inspired from XEphem (WEphem also exists).

BDL FTP server - Most of the computation has been done from work found in the Bureau des Longitudes (BDL) server (ftp://ftp.bdl.fr/pub). All this great work is available for free, with code example written in Fortran.

BDL's books  - My main reference book is "Introduction aux éphémérides astronomiques", published by the BDL. Unfortunately for english readers, it is only available in French. You can find it at http://www.bdl.fr/publif_eng.html. But sometimes, I would have needed an introduction to the introduction... This book is refered to as [BDL98].

A very useful complement is an article from Jérôme Berthier (in French), "Définitions relatives aux éphémérides des corps célestes", available on the BDL server ftp://ftp.bdl.fr/find the address.com. This document is refered to as [Ber98].

Explanatory Supplement to the Astronomical Almanac (P. Kenneth Seidelmann)  - A reference book ; I didn't buy it because it is edited in 1992. I'm waiting for a up to date edition...