nyx-space / anise

ANISE provides a toolkit and files for Attitude, Navigation, Instrument, Spacecraft, and Ephemeris data. It's a modern replacement of the NAIF SPICE toolkit.
Mozilla Public License 2.0
48 stars 8 forks source link

Context should include gravity fields #89

Open ChristopherRabotin opened 1 year ago

ChristopherRabotin commented 1 year ago

These should be stored with C_nm and S_nm separate from each other, a flag specifying whether the coefficients are normalized, and (tbd) the uncertainty around these coefficients (which will allow tools to generate gravity clones, and provide lossless info from PDS)

ChristopherRabotin commented 6 months ago

Note that this cannot be done using a clever heapless structure because there are too many items (it's a triangular number). Instead, this new format should follow a packed array approach, similar to what's in the DAF format. It may be worth making up a new such format, e.g. DAF/GRV with gravity coefficients.

ChristopherRabotin commented 5 months ago

I'm not convinced that a DAF is a reasonable approach here. DAF has a summary with a validity domain, unique ID, etc. But gravity fields are essentially always valid, and one chooses a degree and order. The more I think of this, the more I think it should be separate from ANISE and work only in Nyx.

ChristopherRabotin commented 3 weeks ago

I'm re-opening this to consider storing the coefficients as a flattened matrix and using the indexing for O(1) access to any coefficients. For platform compatibility, these doubles should be stored in ASN1 using the DataSet structure. Each data should also contain the frame in which it must be applied. This ticket should compare the size of this proposed serialization to the gunzipped version of the same data. This ticket shall also include a tool to convert typical PDS data into the chosen format.