Examples

Ephemeris to file

ephemeris-tools ephemeris --planet saturn --start "2025-01-01 00:00" --stop "2025-01-03 00:00" --interval 12 --time-unit hour -o saturn_ephem.txt

Planet names are case-insensitive; --planet 6 and --planet Saturn are equivalent.

Ephemeris to stdout (pipe)

ephemeris-tools ephemeris --planet 6 --start "2025-01-01 00:00" --stop "2025-01-01 06:00" --interval 1 --time-unit hour | head -50

Tracker with rings and title

ephemeris-tools tracker --planet saturn --start "2025-01-01 00:00" --stop "2025-01-02 00:00" --rings main ge --title "Saturn moons" -o tracker.ps

Viewer with FOV table

ephemeris-tools viewer --planet saturn --time "2025-01-01 12:00" --fov 0.1 --fov-unit deg -o view.ps --output-txt fov_table.txt

See Argument reference for column IDs, planet names, and moon index-to-name mappings.

Programmatic use

You can call the core functions from Python instead of the CLI. SPICE kernels are loaded automatically when you call these functions (no need to call load functions first). Set SPICE_PATH so the code can find kernel files.

from ephemeris_tools.params import EphemerisParams
from ephemeris_tools.ephemeris import generate_ephemeris

params = EphemerisParams(
    planet_num=6,  # 6 = Saturn
    start_time="2025-01-01 00:00",
    stop_time="2025-01-02 00:00",
    interval=1.0,
    time_unit="hour",
    viewpoint="observatory",
    observatory="Earth's center",
    columns=[1, 2, 3, 15, 8],
    mooncols=[5, 6, 8, 9],
    moon_ids=[],
)
with open("ephem.txt", "w") as f:
    generate_ephemeris(params, f)
from ephemeris_tools.params import TrackerParams
from ephemeris_tools.tracker import run_tracker

params = TrackerParams(
    planet_num=6,  # 6 = Saturn
    start_time="2025-01-01 00:00",
    stop_time="2025-01-02 00:00",
    interval=1.0,
    time_unit="hour",
    moon_ids=[601, 602, 603],  # Mimas, Enceladus, Tethys
    output_ps=open("tracker.ps", "w"),
    output_txt=None,
)
run_tracker(params)

Expected output: run_tracker(params) writes a PostScript file named tracker.ps (via the output_ps parameter in TrackerParams). The file contains plotted ephemeris tracks for Saturn (planet_num=6) and labeled moon positions for moon_ids=[601, 602, 603] (Mimas, Enceladus, Tethys). A typical tracker.ps begins with a PostScript header (e.g. %!PS-Adobe-3.0), page size/comments, and then drawing commands for the trajectories and labels.

from ephemeris_tools.params import ViewerParams
from ephemeris_tools.viewer import run_viewer

params = ViewerParams(
    planet_num=6,  # 6 = Saturn
    time_str="2025-01-01 12:00",
    fov_value=0.1,
    output_ps=open("view.ps", "w"),
    output_txt=None,
)
run_viewer(params)

Expected output: run_viewer(ViewerParams(...)) creates a PostScript file named view.ps via the output_ps parameter. The file starts with a header such as %!PS-Adobe-3.0 and bounding box comments; it contains a sky projection of Saturn at 2025-01-01 12:00 with the configured FOV (e.g. 0.1°). Readers can expect view.ps to be a valid PostScript document suitable for conversion to PDF or PNG.