WEAK_NONGRAV_RCOND rejects a joint state + non-grav fit when the reciprocal condition number of the whole npar×npar correlation matrix falls below 1e-8. That is not a statement about the non-grav column: a six-parameter orbit fit is itself strongly correlated, so the test is dominated by the orbit underneath. On (6489) Golevka the state block alone has rcond 2.6e-10 — twenty-five times below the threshold — while A2 correlates with the state at only 0.91–0.93 and its formal uncertainty, 1.6e-15 au/day², matches the published one. The fit is rejected for the conditioning of its own orbit, so A2 is reported as NaN even after #536.
I tried replacing it with the amplitude's variance inflation factor and measured that this does not work either. On a synthetic A2 arc (truth −5.0e-14):
| arc |
VIF |
A2 ± σ |
| 10 d |
5.7e4 |
−7.5e−12 ± 2.6e−7 |
| 30 d |
1.2e4 |
−3.0e−13 ± 1.8e−8 |
| 90 d |
23 |
−5.2e−14 ± 1.3e−10 |
| 4 yr |
19 |
−5.00e−14 ± 3.6e−13 |
| 6489 Golevka |
3.2e5 |
−10.2e−15 ± 1.6e−15 |
Golevka is a 6σ detection with a higher VIF than the useless 10-day arc. Correlation with the state is not what separates them; whether the amplitude is determined is, and the covariance already reports that faithfully.
So the question is what the guard is for. With the solve fixed the state is no longer contaminated, and a large σ is an honest answer rather than a failure. Worth a decision before picking a new criterion — test_a2_weak_constraint_guard_on_short_arc encodes the current one.
WEAK_NONGRAV_RCONDrejects a joint state + non-grav fit when the reciprocal condition number of the whole npar×npar correlation matrix falls below 1e-8. That is not a statement about the non-grav column: a six-parameter orbit fit is itself strongly correlated, so the test is dominated by the orbit underneath. On (6489) Golevka the state block alone has rcond 2.6e-10 — twenty-five times below the threshold — while A2 correlates with the state at only 0.91–0.93 and its formal uncertainty, 1.6e-15 au/day², matches the published one. The fit is rejected for the conditioning of its own orbit, so A2 is reported as NaN even after #536.I tried replacing it with the amplitude's variance inflation factor and measured that this does not work either. On a synthetic A2 arc (truth −5.0e-14):
Golevka is a 6σ detection with a higher VIF than the useless 10-day arc. Correlation with the state is not what separates them; whether the amplitude is determined is, and the covariance already reports that faithfully.
So the question is what the guard is for. With the solve fixed the state is no longer contaminated, and a large σ is an honest answer rather than a failure. Worth a decision before picking a new criterion —
test_a2_weak_constraint_guard_on_short_arcencodes the current one.