quality op• Data kinds: images → indices
• Call: import fullseye as fs; fs.ledger.lucky_select(frames, keep_fraction=0.3, min_keep=1, **quality_kw) (implementation को सीधे call करना हो तो import astrostack; astrostack.lucky_select(frames, keep_fraction=0.3, min_keep=1, **quality_kw), registry से लेना हो तो opsastrostack.get("lucky_select"))
• Ledger के ज़रिए return value: fullseye.ledger.lucky_select(...) केवल घोषित out type indices का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.lucky_select.raw(...) का उपयोग करें, या astrostack.lucky_select को सीधे call करें।
quality score के ऊपरी keep_fraction को ही रखता है — lucky imaging का चयन।
रखी जाने वाली संख्या max(min_keep, ceil(keep_fraction * N)) है। कम से कम 1 frame हमेशा रखा जाता है, इसलिए keep_fraction कितना भी छोटा हो, परिणाम कभी खाली नहीं होता (खाली stack आगे भेजना बड़ी दुर्घटना होती)। sorting घटते score के क्रम में है, एक stable sort जो बराबरी पर मूल क्रम रखता है —— समान इनपुट समान क्रम लौटाता है।
(indices, scores) लौटाता है:
• indices —— (K,) int64, रखे गए frames के indices, सबसे अच्छा पहले (indices vocabulary)। [frames[i] for i in indices] को सीधे sigma_clip_stack को दिया जा सकता है।
• scores —— (N,) float64, सभी frames के scores (हटाए गए frames सहित)। यह चयन का परिणाम नहीं बल्कि सामग्री लौटाता है, ताकि हटाने का कारण plot किया जा सके।
यह जो ground truth दोहराता है (tests/test_astrostack.py): समान star field की frame series के लिए जिसमें केवल FWHM बदला गया हो, score FWHM के साथ गिरता है। 20 तारों वाले 96x96 के 12 frames पर, FWHM को 3.462–6.080 px में बदलकर मापा गया:
corr(fwhm, score) = -0.925। ऊपर के 25 % (3 frames) लेकर mean-stacking करने पर, सभी 12 frames के औसत की तुलना में stacking के बाद FWHM 4.403 → 3.672 px होता है, 16.6 % का सुधार —— frames की संख्या 1/4 कर देने पर भी image अधिक sharp होती है, जो ठीक lucky imaging का दावा है (बदले में, noise sqrt(4) = 2 गुना बड़ा हो जाता है)।
Raises ValueError: *frames* list / tuple नहीं (3-D array स्पष्ट रूप से अस्वीकार) / 1 से कम frame / keep_fraction (0, 1] से बाहर / *min_keep* frames की संख्या से अधिक।
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• astro_stacking — py -3.11 examples/astro_stacking.py
• poc_astro_photometry — py -3.11 examples/poc_astro_photometry.py
indices को input के रूप में लेते हैं)—
quality)*Provenance: astrostack.py — ASTROSTACK operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.