Skip to content

arcsec v0.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 16:28
· 114 commits to main since this release

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. Prints HFD_MEDIAN= and STARS=,
    writes no .ini or .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 -o says.
  • --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 .wcs file 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 n turns it off, as in ASTAP. --extract2 implies 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 in WcsSolution::matched_stars.
  • Benchmark tooling only (no change to the solver or its command line): an expanded
    635-image benchmark corpus (scripts/corpus.tsv, fetched by scripts/fetch-corpus.py)
    drawn from ten public archives plus simulated camera artefacts and more negative
    controls, and scripts/benchmark.py --corpus with per-tier, per-source and per-FOV
    breakdowns and SIP/TPV/SIN-aware truth. The original 103 images remain the v1
    subset. See docs/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-core users: SolveParams has a new speed field and WcsSolution new
    matched_stars and sip fields, so code that builds them with struct literals needs
    to set them (SearchSpeed::Auto, Vec::new(), None).
  • --sip, --check and --speed take 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 .1476 reader (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 .290 reader (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: and Solution found: lines on stdout now
    match astap_cli byte for byte. Every field is two digits wide and the start position
    has ASTAP's comma: Start position: 04: 20 00.0, +35d 00 00 where arcsec printed
    4: 20 0.0 +35d 00 0. N.I.N.A. reads only the .ini file, 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 as 00: where ASTAP prints 24:.