quality opimages → indicesimport fullseye as fs; fs.ledger.lucky_select(frames, keep_fraction=0.3, min_keep=1, **quality_kw) (実装を直接呼ぶなら import astrostack; astrostack.lucky_select(frames, keep_fraction=0.3, min_keep=1, **quality_kw)、台帳から引くなら opsastrostack.get("lucky_select"))fullseye.ledger.lucky_select(...) は宣言 out 型 indices の値だけを返す(本体は補助情報も返す)。捨てられた側が要るときは fullseye.ledger.lucky_select.raw(...)、または astrostack.lucky_select を直接呼ぶ。品質点の上位 keep_fraction だけを採る —— lucky imaging の選別。
採用枚数は max(min_keep, ceil(keep_fraction * N))。必ず 1 枚は残す
ので、keep_fraction をいくら小さくしても空にはならない(空の合成を
後段へ渡す方が事故が大きい)。並べ替えは点の降順で、同点は元の順序を保つ
安定ソート —— 同じ入力なら同じ並びが返る。
Returns (indices, scores):
indices —— (K,) int64、採用フレームの添字を良い順に
(indices 語彙)。[frames[i] for i in indices] がそのまま
:func:sigma_clip_stack へ渡せる。scores —— (N,) float64、全フレームの点(捨てた側も含む)。
捨てた理由を図にできるように、選別の結果ではなく素材を返す。Ground truth it reproduces(tests/test_astrostack.py): 同じ星野を
FWHM だけ変えて撮ったフレーム列では、点は FWHM とともに下がる。
96x96 に 20 星、FWHM を 3.462〜6.080 px で振った 12 枚の実測で
corr(fwhm, score) = -0.925。上位 25 %(3 枚)を採って平均合成すると、
12 枚全部を平均した場合に比べて合成後の FWHM が 4.403 → 3.672 px、
16.6 % 改善する —— 枚数を 1/4 に減らしたのに像は鋭くなる、というのが
lucky imaging の主張そのもの(その代わり雑音は sqrt(4) = 2 倍になる)。
Raises ValueError: frames が list / tuple でない(3-D 配列は
明示的に拒否)/ 枚数が 1 未満 / keep_fraction が (0, 1] の外 /
min_keep が枚数を超える場合。
py -3.11 examples/astro_stacking.pypy -3.11 examples/poc_astro_photometry.pyindices を入力に取れる)—
quality)Provenance: astrostack.py — ASTROSTACK operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.