EphemerisSources.jl: Idiomatic Ephemeris Sourcing and Parsing in Julia

Abstract

Students and professionals in astronomy, astrodynamics, astrophysics, and other related fields often download and parse data about objects in our solar system -- ephemeris data -- from two major providers: JPL's publicly-available [Generic SPICE Kernels](https://naif.jpl.nasa.gov/pub/naif/generickernels/) and JPL's [Horizons platform](https://ssd.jpl.nasa.gov/horizons/). SPICE kernels are typically read through the SPICE Toolkit, which is available in a variety of programming languages, including the C Programming Language with `CSPICE` [@cspice]. The Julia packages [`CSPICEjll.jl`](https://github.com/JuliaBinaryWrappers/CSPICEjll.jl) and [`SPICE.jl`](https://github.com/JuliaAstro/SPICE.jl) expose many `CSPICE` functions through Julia functions. Julia users can load and interact with SPICE kernels through methods such as `SPICE.furnsh` and `SPICE.spkez`. Horizons provides data through a variety of methods, including email, command-line, graphical web interfaces, and a [REST API](https://ssd-api.jpl.nasa.gov/doc/horizons.html) [@horizons]. This paper introduces several packages -- `SPICEKernels.jl`, `SPICEBodies.jl`, `HorizonsAPI.jl` and `HorizonsEphemeris.jl` -- which allow users to download and process Cartesian state vector data idiomatically, all from within Julia. While ephemeris data comes in many forms, including observer tables, osculating orbital elements, and binary formats, these packages currently target Cartesian state vector (position and velocity) ephemeris data. Through the use of these packages, users can share replicable code which automatically fetches data from publicly-available ephemeris sources, as opposed to manually including ephemeris data files with their source code distribution.

0

Turn this paper into a full lesson

ArcXiv compiles a staged curriculum from this paper: 8-12 lessons across beginner → advanced, synthesised section guides, visuals, flashcards, a quiz, exercises, and on-demand deep dives per section. Grounded in the abstract, never invented.

Discussion (0)

Sign in to join the discussion.

Loading comments…