lucky_select — ASTROSTACK quality op

• 資料種類:images → indices

• 呼叫: import 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] 可以直接

傳給 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* 超過張數時。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• astro_stacking — py -3.11 examples/astro_stacking.py

• poc_astro_photometry — py -3.11 examples/poc_astro_photometry.py

型別可銜接的下一個運算子(可接受 indices 作為輸入)

—

同類別(quality)

frame_quality · noise_sigma


*Provenance: astrostack.py — ASTROSTACK 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.