solve: prefer the estate's own Astrometry.net over nova for blind solves
The estate now runs Astrometry.net itself (ankh-morpork-infra astrometry/):
solve-field against ~5 GB of local index files, sized from this repo's
TELESCOPES.md so the whole iTelescope fleet's fields of view are covered.
blind.py now tries it before nova.astrometry.net. Speed is the least of the
reasons - a blind solve of a real DSS field returns in 0.7s where nova queues
for minutes. The reasons that matter are that nova requires UPLOADING the
master to a third party and holding an API key, and neither is necessary any
more for the ordinary case. nova remains the fallback, so an estate outage
costs speed and privacy rather than the ability to solve.
pipeline/astrometry_net.py is the client and nothing more: stdlib-only POST,
parses the returned .wcs so the full TAN solution is used rather than a
re-derivation from the summary numbers. It deliberately does NOT decide whether
to trust a solution - blind.py already verifies every blind solve against Gaia
and applies a star-count and residual gate, and two gates that can disagree is
worse than one that is trusted.
The source ('estate' or 'nova') is threaded through the log lines, the returned
method, and the ASTRSOLV card, because a year from now that card is the only
way to tell whether a frame was solved in-house or uploaded.
Also corrected astrometry.py's 'cannot solve without a blind solver' message,
which has been untrue since run.py started falling through to blind.py.
Tested against the live service: blind solve of a DSS2 field with a known
centre returned within ~4 arcsec in 0.7s; the WCS round-trips through astropy;
and an unreachable service falls through to nova instead of raising.
This commit is contained in:
parent
2f268c7ca9
commit
118dc36e92
4 changed files with 269 additions and 39 deletions
|
|
@ -3,6 +3,29 @@
|
|||
> A dated, append only log of decisions and their rationale. Newest at the top. Never
|
||||
> rewrite past entries; if a decision is reversed, add a new entry that says so.
|
||||
|
||||
## 2026-07-21: blind solving goes to the estate's own solver first, nova second
|
||||
|
||||
The estate now runs Astrometry.net itself
|
||||
(`https://astrometry.ankh-morpork.discworld.network`, config in
|
||||
ankh-morpork-infra `astrometry/`): solve-field against ~5 GB of local index
|
||||
files, sized from this repo's own TELESCOPES.md so it covers the whole
|
||||
iTelescope fleet's fields of view (21.5 arcmin to 10.4 degrees).
|
||||
|
||||
`blind.py` now tries it before nova.astrometry.net. The order is not about
|
||||
speed, though it is far faster - a blind solve of a real DSS field came back in
|
||||
0.7s against nova's minutes-in-a-queue. It is that **nova requires uploading
|
||||
the image to a third party and an API key**, and neither is now necessary for
|
||||
the ordinary case. nova stays as the fallback for when the estate service is
|
||||
unreachable or the field is narrower than the local index set reaches, so
|
||||
losing the estate costs speed and privacy, not the ability to solve at all.
|
||||
|
||||
What deliberately did NOT change: the seeded solver in `astrometry.py` remains
|
||||
the primary path (a good header beats a blind search), and every blind solution
|
||||
- from either source - still has to pass the same Gaia verification and
|
||||
star-count/residual gate. A wrong WCS is worse than no WCS, and a second solver
|
||||
does not change that. The source is recorded in the ASTRSOLV card so it is
|
||||
always possible to tell later which one produced a frame's astrometry.
|
||||
|
||||
## 2026-07-21: the pipeline reads headers, not filenames
|
||||
|
||||
The first pipeline parsed `calibrated-T32-...-Luminance-BIN2-W-300-001.fit` to
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue