Skip to content

🚀 ANISE 0.9.0: Support CCSDS OEM; STK .e; Covariance interpolation; Instrument Field of View

Version 0.9.0 introduces a dedicated instrument modeling module, significantly expands interoperability with industry-standard file formats (CCSDS OEM, Ansys STK), and adds "hot-swap" capabilities for kernel management.

Covariance interpolation MathSpec available here.

🔭 Instrument & Field of View (Beta)

  • New Module: Introduced anise.instrument containing Instrument and FovShape classes.
  • Analysis: Added FovMargin and FovMarginToLocation to the scalar expression engine for event finding and reporting.
  • Visual Validation: Added tests/fov_plots.py demonstrating FOV pyramid construction and projection in the Moon Principal Axis frame.

    ⚠️ Beta Notice: The FOV margin calculation and Almanac signatures are currently in Beta. Expect potential API changes in future minor releases as the instrument modeling fidelity evolves.

📡 Interoperability & Data Exchange

  • CCSDS OEM Support:
  • Added Ephemeris.from_ccsds_oem_file() to load CCSDS Orbit Ephemeris Messages (OEM).
  • Added Almanac.load_ccsds_oem_file() to directly ingest OEMs into the frame system.
  • Added to_ccsds_oem_file() to export ephemerides.

  • STK Support: Added Ephemeris.from_stk_e_file() and Almanac.load_stk_e_file() to ingest Ansys STK .e ephemeris files.

  • Covariance Interpolation: Ephemeris interpolation via Log-Euclidean Riemannian space for covariance matrices, ensuring positive definiteness and volume preservation during sampling.

🔄 Kernel Management

  • Hot-Swapping: Added spk_swap() and bpc_swap() to the Almanac.
  • Allows in-place replacement of SPK/BPC files using a "high watermark" memory strategy (reusing existing buffers). Use this in embedded/flight software contexts.
  • Unloading: Added spk_unload() and bpc_unload().

📐 GNC & Frame Math

  • TRIAD / Align-and-Clock: Added DCM.from_align_and_clock() to construct rotation matrices based on primary/secondary vector alignment constraints.
  • Quaternion runtime frame checking: Fixed the Quaternion/Euler Parameter math to correctly use the Hamiltonian convention and use a passive rotation like the DCM.
  • Solar Elongation: Updated sun_angle_deg documentation to explicitly define conjunction/opposition geometry and illumination phases.
  • Numpy Integration: Orbit constructors now accept native numpy.array inputs for state vectors.