Code to read, use, and manipulate JPL DE ephemeris data.
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore 'eph2' and 'sub_eph' (executables) are built when you run make. They May 25, 2016
LICENSE Initial commit Mar 9, 2016
README.md Expanded README to describe various build methods Jul 26, 2016
asc2eph.cpp 'out' set, then value not read. Jan 23, 2018
dmc_jpl.mak Makefile for Digital Mars C/C++ compiler Mar 14, 2016
dump_eph.cpp Access to the IPT array was done the wrong way, getting bogus values.… Jun 7, 2018
eph.cpp Changed DOS/Windows-style CR/LF endings to LF-only Jul 20, 2016
eph2.cpp Added GPL notice to a few files Mar 4, 2018
eph2asc.cpp Stupid redundant call to jpl_int_ephemeris(). Causes no actual harm, … Jan 23, 2018
f_strtod.cpp Cast required to placate MSVC Jul 20, 2016
ftest.cpp Ensured that __STDC_LIMIT_MACROS is always defined. That got rid of Apr 28, 2016
hex_comp.cpp Added GPL notice to a few files Mar 4, 2018
improve.txt Changed DOS/Windows-style CR/LF endings to LF-only endings. May 25, 2016
jpl_int.h We now have DE-438 and 438t. No change to code, but some documentatio… Jun 17, 2018
jpleph.cpp Fixed bug reported by Mikea1985 (see issue #4), resulting in errors w… Aug 31, 2018
jpleph.def Changed DOS/Windows-style CR/LF endings to LF-only endings. May 25, 2016
jpleph.h Certain functions really should have been declared as extern 'C' that… Aug 14, 2018
makefile More robust clean target Mar 1, 2018
merge_de.cpp If certain errors occurred, 'idata' might not be freed, resulting in … Jan 23, 2018
sub_eph.cpp Changed DOS/Windows-style CR/LF endings to LF-only endings. May 25, 2016
testeph.cpp On some compilers, comparing an int to a size_t gets you a (legitimat… Sep 22, 2018
vc.mak Now can build either a DLL or static library Sep 19, 2017
watcom.mak Switched to building a library instead of just using an object file, … Sep 19, 2017
watdefs.h Changed DOS/Windows-style CR/LF endings to LF-only endings. May 25, 2016

README.md

jpl_eph

Details at http://www.projectpluto.com/jpl_eph.htm .

This code provides various utilities and functions to read, use, and manipulate JPL DE ephemeris data. The core functions were based on Piotr Dybczynski's C source code :

ftp://ftp.astro.amu.edu.pl/pub/jpleph/

though this version has been so heavily changed as to bear only a passing resemblance to the original, and a variety of utilities have been added. This version :

  • deals with JPL ephemerides in either byte order;
  • handles all JPL ephemeris versions (at least up to DE-435), without recompiling;
  • handles errors gracefully;
  • can be compiled and used on DOS/Windows, Linux, OS/X, with various compilers;
  • includes some optimizations for speed

This code has been under development for some years and is essentially "complete", except that one may expect JPL to produce further ephemerides and that they may add new features requiring some changes to this code. (In recent years, JPL ephems have had TT-TDB data added, and some ephemerides have broken the previous limit of 400 ephemeris constants. Older code won't work with either of these issues.)

On Linux, run make to build the library and various test executables and utilities. (You can also do this with MinGW under Windows.) In Linux, you can then run make install to put libraries in /usr/local/lib and some include files in /usr/local/include. (You will probably have to make that sudo make install.) For BSD, and probably OS/X, run gmake CLANG=Y (GNU make, with the clang compiler), then sudo gmake install.

On Windows, run nmake -f vc.mak with MSVC++. Optionally, add -BITS_32=Y for 32-bit code.

Makefiles are also provided for the OpenWATCOM and Digital Mars compilers for DOS/Windows.