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 만 취합니다 —— 럭키 이미징의 선별.
채택 장수는 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*이 장수를 넘는 경우.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.