Plan reference
docs/spec.md §4.1:
|
the text against eight in the JSON, because the text writes it as a five-digit mantissa with an |
|
assumed decimal point and a one-digit exponent. |
|
|
|
So Δ_data depends on which representation was ingested, and an application mixing the two is |
|
comparing element sets of different precision. Osculator reads OMM wherever both are available, and |
|
records which format each element set came from. |
So Δ_data depends on which representation was ingested, and an application mixing the two is comparing element sets of different precision. Osculator reads OMM wherever both are available, and records which format each element set came from.
What exists today
Osculator.Core/Elements/ElementSet.cs has no source or format field.
TleParser and OmmJson both produce a plain ElementSet.
DataTerm and ElementFieldQuantization (Osculator.Core/Residuals/) work out each field's quantization step themselves.
What's missing
Once an ElementSet exists, nothing says whether its fields were quantized to TLE precision or to OMM precision. The spec's own example: B* has a five-digit mantissa in a TLE and roughly eight digits in OMM JSON. Without the format, Δ_data on an OMM-sourced set has to assume TLE steps, or the reverse, and M2's TLE-vs-later-element comparison can't tell when it is comparing sets of different precision.
Acceptance criteria
ElementSet carries an ElementSetFormat (Tle, Omm).
TleParser sets it to Tle and OmmJson sets it to Omm.
- Tests on the committed ISS TLE/OMM pair assert the format on both paths.
DataTerm/ElementFieldQuantization pick each field's step from the recorded format, with a test showing that B*'s step differs between the two.
Dependencies
None. This also relates to open #23 (the epoch field in DataTerm.Measure) but is independent of it.
Plan reference
docs/spec.md§4.1:Osculator/docs/spec.md
Lines 196 to 201 in 3a5382d
What exists today
Osculator.Core/Elements/ElementSet.cshas no source or format field.TleParserandOmmJsonboth produce a plainElementSet.DataTermandElementFieldQuantization(Osculator.Core/Residuals/) work out each field's quantization step themselves.What's missing
Once an
ElementSetexists, nothing says whether its fields were quantized to TLE precision or to OMM precision. The spec's own example: B* has a five-digit mantissa in a TLE and roughly eight digits in OMM JSON. Without the format, Δ_data on an OMM-sourced set has to assume TLE steps, or the reverse, and M2's TLE-vs-later-element comparison can't tell when it is comparing sets of different precision.Acceptance criteria
ElementSetcarries anElementSetFormat(Tle,Omm).TleParsersets it toTleandOmmJsonsets it toOmm.DataTerm/ElementFieldQuantizationpick each field's step from the recorded format, with a test showing that B*'s step differs between the two.Dependencies
None. This also relates to open #23 (the epoch field in
DataTerm.Measure) but is independent of it.