arcsec v0.2.0
Added
Every ASTAP command-line option is now implemented; none is refused any more. Output
follows astap_cli's, checked against it.
--analyse <snr_min>: measure without solving. PrintsHFD_MEDIAN=andSTARS=,
writes no.inior.wcs, needs no catalogue. On Windows the exit code also carries
the result,round(HFD × 100) × 1 000 000 + stars, as ASTAP's does.--extract <snr_min>: as--analyse, and writes every star to<image>.csv
(x,y,hfd,snr,flux,ra[0..360],dec[0..360]; RA/Dec when the header already holds a WCS).
As in ASTAP the CSV goes next to the image whatever-osays.--extract2 <snr_min>: solve, then write the same CSV with every star's RA and Dec,
whether or not the solve succeeded.--sip: third-order SIP distortion terms (A_p_q,B_p_q,AP_p_q,BP_p_q,
CTYPE RA---TAN-SIP) in the.wcsfile and with--update, in ASTAP's layout. Unlike
ASTAP they are added only when the distortion is statistically significant and the
matched stars cover the frame, since on an undistorted field a cubic only adds noise
at the corners;--sip nturns it off, as in ASTAP.--extract2implies it.--speed slow: read a catalogue window twice the field at every search position.--check y(or a bare--check): even out the Bayer pattern of a raw one-shot-colour
frame before solving.- Library:
detection::analyse_image,wcs::sip(fit_sip,Sip,TanWcs),
ImageBuffer::check_pattern_filter,pipeline::SearchSpeed, and the verified star
pairs of a solve inWcsSolution::matched_stars. - Benchmark tooling only (no change to the solver or its command line): an expanded
635-image benchmark corpus (scripts/corpus.tsv, fetched byscripts/fetch-corpus.py)
drawn from ten public archives plus simulated camera artefacts and more negative
controls, andscripts/benchmark.py --corpuswith per-tier, per-source and per-FOV
breakdowns and SIP/TPV/SIN-aware truth. The original 103 images remain thev1
subset. Seedocs/test-images.md. - A project website, cruzzil.github.io/arcsec:
downloads, setting up N.I.N.A., a "which catalogue do I need?" picker, the catalogue
guide, the command-line reference and an FAQ. It is now the crates' homepage.
Changed
- Breaking for
arcsec-coreusers:SolveParamshas a newspeedfield andWcsSolutionnew
matched_starsandsipfields, so code that builds them with struct literals needs
to set them (SearchSpeed::Auto,Vec::new(),None). --sip,--checkand--speedtake ASTAP's optional values (-sip n,-check y,
-speed slow); anything else is a usage error.
Fixed
- The catalogue read now returns the field's brightest stars from every database tile
the field overlaps. The.1476reader (D-series) filled its whole star budget from the
first tile, so a field straddling a tile boundary had catalogue stars on one side only
and its fit rested on half the frame; the.290reader (G05) gave each tile a fixed
share, under-sampling a tile that covered most of the field. On the 635-image
benchmark corpus this solves 29 more images with the true centre as hint (475 → 504
of 596) and 30 more with the hint 0.3 fields off, with fewer false positives in both,
and it is no slower. It changes which catalogue stars a multi-tile field is matched
against, so a few marginal solves change either way (docs/test-images.md §7.7). - ASTAP compatibility: the
Start position:andSolution found:lines on stdout now
matchastap_clibyte for byte. Every field is two digits wide and the start position
has ASTAP's comma:Start position: 04: 20 00.0, +35d 00 00where arcsec printed
4: 20 0.0 +35d 00 0. N.I.N.A. reads only the.inifile, so it never saw the
difference, but a script that parses stdout could. One deliberate difference remains:
an RA that rounds up to 24h prints as00:where ASTAP prints24:.