🚀 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.instrumentcontainingInstrumentandFovShapeclasses. - Analysis: Added
FovMarginandFovMarginToLocationto the scalar expression engine for event finding and reporting. - Visual Validation: Added
tests/fov_plots.pydemonstrating 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()andAlmanac.load_stk_e_file()to ingest Ansys STK.eephemeris 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()andbpc_swap()to theAlmanac. - 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()andbpc_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_degdocumentation to explicitly define conjunction/opposition geometry and illumination phases. - Numpy Integration:
Orbitconstructors now accept nativenumpy.arrayinputs for state vectors.