SPK kernel server with ETS preloading for fast queries.
Supports SPK data types 2 (Chebyshev) and 21 (Extended Modified Difference Arrays). Multiple kernel files are loaded at startup and merged into a single ETS table.
Configuration
config :eph_core, :spk_kernels, ["de440s.bsp", "asteroids/2000001.bsp"]Paths are resolved relative to ephemeris/spk/ under
EphCore.Ephemeris.Kernels.base_dir/0. Falls back to ["de440s.bsp"] when
unset.
ETS storage layout
{:meta, target, center}→ list of segment metadata maps{:record, target, center, index}→ Type 2 Chebyshev record tuple{:t21_record, target, center, seg_start, index}→ Type 21 MDA record map
Summary
Functions
Returns a specification to start this module under a supervisor.
Telemetry-free position query for hot paths (almanac event finding).
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
@spec loaded?() :: boolean()
@spec position_at_fast(integer(), integer(), float()) :: {:ok, {float(), float(), float()}} | {:error, term()}
Telemetry-free position query for hot paths (almanac event finding).
Identical lookup to position_at/3 but skips the per-query :telemetry
emission and timing. Use only where the high query volume makes the telemetry
overhead material and per-query metrics are not needed; the normal engine
paths keep position_at/3.
@spec segments() :: [EphCore.Ephemeris.Kernels.SPK.Segment.t()]