Modules
EphCore computes celestial positions from a UTC instant and observer location.
TAI is the primary international atomic time scale. It's a continuous time scale that's perfectly uniform (unlike UT1 which wobbles with Earth rotation). TAI ticks at the same rate as proper atomic time standards, but it's offset from UTC by accumulated leap seconds.
Julian Date (JD) conversion functions for astronomical time calculations.
Supervised ETS cache of the IERS Earth Orientation Parameters.
Supervised ETS cache of the UTC ↔ TAI leap-second table.
TT is a perfectly uniform time scale used for all astronomical calculations. It doesn’t care how Earth wobbles — it ticks smoothly according to atomic time standards. TT replaced “Ephemeris Time” (ET), which was the old theoretical time used for planetary motion.
UT1 is basically Earth’s actual rotation time. Think of it as “astronomical clock time,” determined by how far the Earth has spun relative to the stars. It’s the modern, high-precision descendant of old Greenwich Mean Time (GMT), except UT1 wobbles slightly because Earth’s rotation isn’t perfectly steady — tides, earthquakes, and atmosphere drag the planet around just enough to make it drift by milliseconds each day.
Apparent-place correction: light-time retardation + annual aberration.
Calculates Greenwich Mean Sidereal Time (GMST) using IAU 2006/2000A standards.
IAU 2000A_R06 Nutation Series, loaded once at application startup.
Geocentric and barycentric state vectors read straight from SPK kernels.
Resolves on-disk paths for the ephemeris, time, nutation, and star data files.
Earth Orientation Parameters (EOP) path helpers.
Leap-seconds kernel (LSK) path helpers.
Public API for SPK kernel access.
Chebyshev polynomial evaluation using Clenshaw's recurrence.
DAF binary container parsing for SPK files.
Evaluates an SPK Type 21 (Extended Modified Difference Array) record.
SPK segment descriptor helpers.
SPK kernel server with ETS preloading for fast queries.
SPK Type 2 (Chebyshev position) parsing helpers.
SPK Type 21 (Extended Modified Difference Arrays) segment parsing.
Full-year rise / transit / set almanac for one topocentric observer.
Helpers for computing celestial poles and great-circle ring samples.
Ecliptic coordinate transforms.
WGS84 geodetic conversions.
Horizon-based geometry helpers (east horizon ecliptic longitude / meridian ecliptic longitude).
Helpers for converting direction vectors into local horizon coordinates.
Projection helpers between equatorial and ecliptic coordinates.
Main pipeline for computing celestial body positions from a given location and time.
Stage 01: ASTRONOMICAL_TIME — establish the moment in astronomical time.
Stage 02: EARTH_ORIENTATION — compute Earth's rotation at the epoch.
Stage 00: INTENT — validate and normalize the request that drives the pipeline.
Stage 05: MOTION — compute per-body ecliptic longitude rates.
Result returned by EphCore.observe/4.
Stage 05: OBSERVER_LINE_OF_SIGHT — shift from geocentric to topocentric.
Stage 03: OBSERVER_POSITION — place the observer in inertial space.
Stage 06: SKY_POSITION — project topocentric vectors onto the local sky.
Stage 04: SOLAR_SYSTEM_POSITION — query the ephemeris for body positions.
Hipparcos star catalog loader and lookup.
Fixed-star position computation from Hipparcos catalog records.
Batch position computation for time-grid scanning.
Topocentric ecliptic longitude rates (degrees/day).
Mix Tasks
Downloads the baseline ephemeris, time, and nutation data files.
Generates an SPK kernel for a small body using the JPL Horizons API.
Sets up the optional Hipparcos star catalog for fixed-star features.