Plan
|
| **Element inspector** | `ImGuiWidgets.PropertyGrid`, one row per OMM field, each showing the value, its quantization step, and the sensitivity ∂r/∂field in metres per ulp at the current horizon. This is the panel that makes Δ_data tangible. | |
Element inspector | ImGuiWidgets.PropertyGrid, one row per OMM field, each showing the value, its quantization step, and the sensitivity ∂r/∂field in metres per ulp at the current horizon. This is the panel that makes Δ_data tangible.
The inspector is also part of the M5 row (L468).
What exists today
Osculator.Core/Elements/ElementFieldQuantization.cs gives the written step for each field.
Osculator.Core/Residuals/DataTerm.cs Measure perturbs each field by half a step and returns each field's position effect at a horizon. That is the sensitivity the inspector needs, in km per half-step.
- The app has no panel for element sets.
What's missing
Acceptance criteria
- The inspector shows every field
DataTerm perturbs, in the order Measure returns them.
- It updates when the horizon changes, computing off the UI thread.
- Its numbers match
DataTerm.Measure for the same inputs.
- Any new view-model code has a non-UI unit test.
MeanMotionDot and MeanMotionDdot appear with their measured contribution of exactly zero, as CLAUDE.md describes.
Dependencies
#27 (record whether the source was TLE or OMM, so the right steps show) and #23 (epoch field missing from DataTerm) should land first, or the inspector should reflect them.
Plan
Osculator/docs/spec.md
Line 339 in 3a5382d
The inspector is also part of the M5 row (L468).
What exists today
Osculator.Core/Elements/ElementFieldQuantization.csgives the written step for each field.Osculator.Core/Residuals/DataTerm.csMeasureperturbs each field by half a step and returns each field's position effect at a horizon. That is the sensitivity the inspector needs, in km per half-step.What's missing
ElementSet. For each field it shows the value, the step, and metres per step at a horizon the user chooses. It also shows the quadrature total.Acceptance criteria
DataTermperturbs, in the orderMeasurereturns them.DataTerm.Measurefor the same inputs.MeanMotionDotandMeanMotionDdotappear with their measured contribution of exactly zero, as CLAUDE.md describes.Dependencies
#27 (record whether the source was TLE or OMM, so the right steps show) and #23 (epoch field missing from
DataTerm) should land first, or the inspector should reflect them.