Skip to content
JPL ephemerides for Julia
Julia
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmark Add Project.toml, fix tests May 16, 2019
src Add Project.toml, fix tests May 16, 2019
test
.gitignore
.travis.yml
LICENSE.md Update license year Feb 4, 2019
Project.toml Add Project.toml, fix tests May 16, 2019
README.md README typo jple>p<hem May 6, 2019
appveyor.yml CI Jun 22, 2017

README.md

JPLEphemeris.jl

Travis Status Build status PkgEval v5

The JPL Development Ephemerides are the results of simulations of the Solar System used for spacecraft navigation and astronomical purposes. They are published as SPK kernel files which contain sets of Chebyshev polynomial coefficients with which the position and velocity of the Solar System's planets can be interpolated with high precision for all dates covered by the ephemeris.

This package provides functionality to read SPK files and compute the position and velocity of the planets directly from Julia.

Installation

The package can be installed through Julia's package manager.

Pkg.add("JPLEphemeris")

Usage

using JPLEphemeris

# Load the DE430 SPK kernel
spk = SPK("de430.bsp")

# List the available segments
print_segments(spk)

# 2016-01-01T00:00 in Julian days
jd = Dates.datetime2julian(DateTime(2016,1,1,0,0,0))

# Position of Earth's barycenter w.r.t. the Solar System's barycenter at 2016-01-01T00:00
# [km]
pos = position(spk, "earth barycenter", jd)

# Velocity of Earth w.r.t. Earth's barycentre at 2016-01-01T00:00
# [km/s]
vel = velocity(spk, "earth barycenter", "earth", jd)

# Compute the state vector (position and velocity) of Earth's barycenter (NAIF ID: 3)
# w.r.t. to the Solar System's barycenter (NAIF ID: 0) for a range of Julian days
st = state(spk, 0, 3, jd:jd+100)

# Two-part Julian dates (day number and fraction) can be used for higher precision.
# For example for 2016-01-01T12:00:
st = state(spk, 0, 3, jd, 0.5)

ASCII API

The ASCII API that was originally included with this package has been moved to LegacyEphemeris.jl.

Validation

The package's test suite uses test files provided by JPL to confirm that the results are correct.

Acknowlegements

Most of this is based on the excellent jplephem library by Brandon Rhodes. Please use it if you need similar functionality in Python.

You can’t perform that action at this time.