quality op• データ種: image2d → table
• 呼び出し: import astrostack; astrostack.frame_quality(image, threshold_sigma=5.0, max_stars=25, min_separation=3, psf_box=11, n_score_stars=5) (または opsastrostack.get("frame_quality"))
1 枚の品質を数える —— 鋭さ・FWHM・背景・真円度、そして選別用の点。
lucky imaging の選別基準は歴史的に 「基準星のピーク強度」 である
(Law, Mackay & Baldwin, *Lucky imaging: high angular resolution imaging in
the visible from the ground*, A&A 446, 739 (2006))—— 大気が良い瞬間ほど
同じ総フラックスが少ない画素に集まるので、`ピーク / 総フラックス` が
上がる。ここでもそれを採り、追尾の伸びを弾くために真円度を掛ける::
score = median(roundness) * median(peak_fraction)
`peak_fraction は明るい方から n_score_stars` 個の星について
`(ピーク画素 - 背景) / 開口フラックス`。尺度に依らない(露出時間や
ゲインを変えても動かない)ので、フレーム間の比較にそのまま使える。
`sharpness` は別に、ラプラシアンの分散を画像の分散で割った古典的な
合焦指標(Pech-Pacheco et al., *Diatom autofocusing in brightfield
microscopy*, ICPR 2000)。星の数が変わると動くので選別には使わないが、
星が 1 つも無いフレームでも値が出る唯一の指標なので残してある。
Returns dict(`table 語彙)。キーは n_stars / background` /
`noise_sigma / fwhm_px(検出星の FWHM 中央値)/ roundness` /
`peak_fraction / peak_snr / sharpness / score` /
`total_flux。星が 1 つも無いときは星由来の値が nan、score` は
`0.0(「選ばない」が正しい答えなので、nan` で並べ替えを壊さない)。
Raises `ValueError`: 2-D でない / 非有限を含む / *n_score_stars* が
1 未満の場合。
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• astro_stacking — py -3.11 examples/astro_stacking.py
table を入力に取れる)—
quality)*Provenance: astrostack.py — ASTROSTACK operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.