align_frames — ASTROSTACK align op

• 데이터 종류: images → images

• 호출: import fullseye as fs; fs.ledger.align_frames(frames, reference=0, order=3, **align_kw)(구현을 직접 호출하려면 import astrostack; astrostack.align_frames(frames, reference=0, order=3, **align_kw), 원장에서 가져오려면 opsastrostack.get("align_frames"))

• 원장 경유의 반환값: fullseye.ledger.align_frames(...) 는 선언된 out 형 images 의 값만 반환합니다(실제 함수는 보조 정보도 반환). 버려진 쪽이 필요하면 fullseye.ledger.align_frames.raw(...) 를 쓰거나 astrostack.align_frames 를 직접 호출하세요.

• 실제 반환: (aligned, matrices) -> images

사용법

프레임 열을 기준 한 장에 정합합니다.

각 프레임에 대해 frame_align으로 변환을 추정하고, scipy.ndimage.affine_transform으로 역사상·재샘플링한다.

정직한 주의: 보간은 상을 보존하지 않는다. 잡음 없는 64x64 / 12개 별을 (0.5, 0.5) px만큼 어긋내고 되돌린 실측::

order=1 (쌍선형) 총 플럭스 -0.016 % 별의 피크 -11.437 %

order=3 (스플라인) 총 플럭스 -0.016 % 별의 피크 -0.312 %

총 플럭스는 어느 쪽이든 거의 유지되는데, 별의 피크는 쌍선형이면 1할이상 떨어진다 —— 0.5 px 어긋남은 쌍선형에게 최악의 위상으로, 이웃한 4 화소의 단순 평균이 되기 때문이다. 기본값을 order=3으로 한 것은 이실측에 의한 것이다(order=3은 별 주위에 극소의 음의 테두리를 만들지만, 위의 측정에서는최소값 -0.0000으로 눈에 보이는 양이 아니었다).

플럭스도 피크도 엄밀히 유지하고 싶다면 보간하지 말고 drizzle_resample 에 넘길 것 —— 보간하지 않는 것이 drizzle의 존재 이유 그 자체이다. 다만

추정 시프트를 그대로 넘겨서는 안 된다: 여기서 반환하는 matrices의 병진은 "기준으로 되돌리는" 방향으로, drizzle이 필요로 하는 방향과는 부호가 반대이다. drizzle_shifts를 거칠 것::

aligned, mats = align_frames(frames)

sci, wht = drizzle_resample(frames, drizzle_shifts(mats), scale=2.0)

Returns (aligned, matrices):

• aligned —— 길이 N의 list, 각각 (H, W) float64(images 어휘). 기준 프레임은 변환을 거치지 않고 그대로 반환한다(항등 변환이라도 보간은 상을 무디게 하므로, 거칠 이유가 없다).

• matrices —— 길이 N의 list, 각각 (3, 3). 기준은 단위 행렬.

Raises ValueError: *frames*가 list / tuple이 아님 / 장수가 2 미만 / *reference*가 범위 밖 / *order*가 0~5 밖 / frame_align이어느 1장에서든 실패한 경우(실패를 조용히 항등 변환으로 떨어뜨리지 않는다).

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• astro_stacking — py -3.11 examples/astro_stacking.py

타입이 이어지는 다음 연산자(images 를 입력으로 받는 것)

lucky_select · sigma_clip_stack · drizzle_resample · cosmic_ray_reject_stack

같은 카테고리(align)

frame_align


*Provenance: astrostack.py — ASTROSTACK 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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