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)*Provenance: astrostack.py — ASTROSTACK 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.