Tiny High-Accuracy Ephemeris Calculator (THAEC)

THAEC is an educational program showing how to calculate the positions of celestial objects to maximum possible precision. The only goal of the program is code self-documentation, not coding style nor efficiency or anything else you would expect from the average commercial program.

Rather than a final product, this program should be seen as a tutorial.

THAEC can compute the positions of the planets, the more massive asteroids, many inter-planetary missions and some near-earth satellites. It reads NASA SPICE Kernel files, which are available from providers of planetary ephemeris files: JPL, INPOP or EPM.

THAEC utilizes the following external libraries:
- libcurl
- NASA SPICE (or alternatively CALCEPH)

THAEC comes in two different versions: One using the NASA SPICE library, the other using the CALCEPH library. The SPICE version needs SPICE files as input, while the CALCEPH version uses the JPL/INPOP binary and ascii format. In recent years the SPICE format has become the predominant format and even JPL itself uses it more extensively than their own data format.

The SPICE version is the primary version and should be the one to use first:
Download SPICE version: thaecS.tar.gz

If you run into any issues with the SPICE version, you can take a look at the CALCEPH version:
Download CALCEPH version: thaecC.tar.gz

External sources

JPL Ephemerides: ftp://ssd.jpl.nasa.gov/pub/eph/planets/
NAIF Ephemerides: ftp://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/
INPOP Ephemerides: http://www.imcce.fr/inpop/
EPM Ephemerides: ftp://quasar.ipa.nw.ru/incoming/EPM/

NASA SPICE archive: http://naif.jpl.nasa.gov/naif/index.html
ESA SPICE archive: http://www.cosmos.esa.int/web/spice/home

IAU Sofa library: http://www.iausofa.org/
NASA SPICE library: http://naif.jpl.nasa.gov/
CALCEPH library: http://www.imcce.fr/inpop/calceph/

IERS Main Site: http://www.iers.org/
l'Obervatoire Data Centre: http://hpiers.obspm.fr/
IERS Bulletins: http://maia.usno.navy.mil/
BIPM Time Sclaes Data: http://www.bipm.org/en/bipm-services/timescales/time-ftp/introduction.html

IAU Resolutions: https://www.iau.org/administration/resolutions/general_assemblies/
IERS Conventions: http://www.iers.org/IERS/EN/DataProducts/Conventions/conventions.html
USNO Circulars: http://aa.usno.navy.mil/publications/docs/usnopubs.php