Add the plate solve stage; it works on two sessions of four
astrometry.py solves the deepest master against Gaia and copies the WCS into every master. Asterism matching is invariant to rotation and scale, so camera angle never has to be guessed, but not to a mirror flip, so both parities are tried. Three defects were found and fixed by running it, and each is worth recording because none would have been found by reading the code. Gaia's launch_job_async submits to a job QUEUE and polls. On a query of 600 rows it hung for ten minutes while curl showed both the Gaia and VizieR endpoints answering in under a second. VizieR is now queried first - it serves the identical DR3 catalogue over a plain HTTP request - with Gaia's SYNCHRONOUS endpoint as the fallback. VizieR's row_limit truncates before sorting, so asking for the 600 brightest stars returned 600 arbitrary ones. Asterism matching only works when both lists hold the same bright stars, so this silently produced no match at all. It now fetches generously and picks the brightest locally. The detector deliberately rejects saturated cores, which means the brightest DETECTIONS are not the brightest STARS, while the catalogue's are - so the two top-N lists can barely overlap. A sliding window down the catalogue's magnitude ranking fixed NGC 2030, which matched at catalogue[15:135], skipping the 15 brightest. That is the saturation hypothesis confirmed rather than assumed. NGC 2030 now solves on 243 stars at 0.31 arcsec residual. NGC 2070 and NGC 6744 still do not, and TODO.md records what has already been ruled out - scale, the fetch, truncation - so the next session starts from the remaining candidates rather than repeating the elimination.
This commit is contained in:
parent
4ed23cef96
commit
fbd1eb8ec5
2 changed files with 320 additions and 2 deletions
|
|
@ -18,8 +18,40 @@ one telescope. Branch `generic-pipeline`.
|
|||
filter grouping, palette detection (LRGB / RGB / SHO / HOO / MONO), manifest
|
||||
writing. Tested against all five archived sessions.
|
||||
|
||||
**Next:** `measure` -> `register/stack` -> `solve` -> `compose` -> `report`,
|
||||
then a `run.py` orchestrator with resumable stages.
|
||||
**Done since:** `measure.py`, `register.py`, `colour.py`, `astrometry.py`.
|
||||
Registration verified on the mixed bin1/bin2 case - upsampled bin2 colour
|
||||
aligns to the bin1 luminance master within **0.04 px**. Colour renders LRGB,
|
||||
RGB, SHO, HOO and mono.
|
||||
|
||||
**Next:** finish `astrometry.py` (see below), then `report.py` (per-session
|
||||
METHODS.md) and `run.py` (the one-command orchestrator).
|
||||
|
||||
**PLATE SOLVE IS 2 OF 4.** NGC 5128 (by hand) and NGC 2030 solve; NGC 2070 and
|
||||
NGC 6744 do not. What is already known, so the next session does not repeat it:
|
||||
|
||||
- **Not the plate scale.** Header and FOCALLEN/XPIXSZ agree on both failures,
|
||||
and the session that DOES solve has a header/computed discrepancy
|
||||
(0.527 vs 0.686) yet solves anyway - asterism matching is scale invariant,
|
||||
so scale only sets the catalogue cone radius.
|
||||
- **Not the catalogue fetch.** Fixed: VizieR is queried first because Gaia's
|
||||
`launch_job_async` submits to a job queue and hung for ten minutes on 600
|
||||
rows while the network was healthy. Gaia synchronous is the fallback.
|
||||
- **Not simple truncation.** Fixed: VizieR's `row_limit` truncates BEFORE
|
||||
sorting, so asking for 600 rows returned 600 arbitrary stars rather than the
|
||||
600 brightest. Now fetches up to 50000 and picks the brightest locally.
|
||||
- **Partly saturation.** The detector rejects saturated cores, so the brightest
|
||||
DETECTIONS are not the brightest STARS while the catalogue's are, and the two
|
||||
top-N lists barely overlap. NGC 2030 only solved once a sliding magnitude
|
||||
window was tried, and it matched at `catalogue[15:135]` - skipping the 15
|
||||
brightest. That window search is in place and still is not enough for the
|
||||
other two.
|
||||
- **Next things to try:** match on a magnitude-matched subset by estimating the
|
||||
image's own zero point first; loosen `aa.MIN_MATCHES_FRACTION`; raise
|
||||
astroalign's `max_control_points`; or fall back to a genuine blind solver
|
||||
(astrometry.net index files locally, or the nova API) for fields that resist
|
||||
the seeded approach. NGC 2070 is a 4 degree field at 3.5 arcsec/px with only
|
||||
305 detections, and NGC 6744 is a rich field - they may need different
|
||||
handling from each other.
|
||||
|
||||
**The blocker before any of that:** the disk is full (see below).
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue