Smithsonian / Smithsonian/layup

Herget's convergence tolerance is ~30x tighter than useful, costing seeds on near-Earth arcs

Open Beginner friendly
#557 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
10
Forks
2
Avg merge
1d 43m
Merged PRs (30d)
58

Description

herget_iod passes tolerance=0.0001, so herget_with_assist accepts no seed until the range step falls below 1e-4 au (15,000 km). An initial-orbit seed only has to land in the right basin -- the differential correction refines it -- so objects that already have a usable seed instead exhaust 100 iterations on each of the three rho rungs and return nothing.

Measured on 163 numbered NEOs, scoring the raw seed's semimajor axis against JPL ("good" = within 10%):

threshold seeds good vs shipped
1e-4 (current) 51/163 25 -
1e-3 59/163 31 +6/-0
3e-3 72/163 36 +11/-0
1e-2 96/163 41 +18/-2
1e-1 121/163 15 +8/-18

Total seeds rise monotonically, but usable seeds peak near 1e-2 and collapse at 1e-1, where unconverged seeds start being accepted.

Suggested value: 3e-3 -- the loosest threshold with no regressions, and the fraction within 10% is unchanged (50% vs 49%). The main belt is unaffected: tested at the more aggressive 1e-2, seeds went 156 -> 158 and good seeds 154 -> 155. Main-belt seeds are accurate to ~0.2% anyway, so the threshold rarely binds there; this is a near-Earth-regime effect.

One-line change. Note this is a parameter herget_iod passes, not a change to herget_with_assist itself.

Against #554, where this code currently lives.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the herget_iod entry point and trace the tolerance passed to herget_with_assist; issue #554 identifies where this code currently lives. Change the passed threshold to 3e-3, then verify that near-Earth seed counts improve without accepting the unconverged seeds described at 1e-1, while main-belt results remain unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend, performance
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.