psf_fit — ASTROSTACK photometry op

• 데이터 종류: image2d × keypoints → table

• 호출: import fullseye as fs; fs.ledger.psf_fit(image, centers, model='gaussian', box=11, max_iter=200)(구현을 직접 호출하려면 import astrostack; astrostack.psf_fit(image, centers, model='gaussian', box=11, max_iter=200), 원장에서 가져오려면 opsastrostack.get("psf_fit"))

사용법

별상에 PSF 를 맞춰 중심과 FWHM 을 냅니다.

*model* "gaussian"은 타원 가우시안 bkg + amp * exp(-((dr/sr)^2 + (dc/sc)^2)/2)의 6 파라미터 피팅으로, 진원도(roundness = min(sr,sc)/max(sr,sc))가 부산물로 나온다 —— 추적 오차나 바람으로 늘어난 별상은 여기에 나타난다. "moffat"은 원대칭인 bkg + amp * (1 + r^2/alpha^2)^(-beta)(Moffat 1969)이며, beta도자유 파라미터이다. 최소제곱은 scipy.optimize.least_squares (Trust Region Reflective)이고, 초기값은 2차 모멘트로부터 만드는 결정적인 값 —— 난수를 쓰지 않으므로 같은 입력이면 같은 답.

FWHM은 피팅한 파라미터로부터의 닫힌 식:

가우시안은 2 sqrt(2 ln 2) * sqrt(sr*sc)(기하 평균), Moffat은 2 alpha sqrt(2^(1/beta) - 1).

화소의 상자만큼 반드시 굵게 나온다. 여기서 피팅하는 것은 *연속* 가우시안이지만, 이미지의 각 화소는 연속 분포를 1 화소의 상자로 적분한 값이다. 폭 1의 균일한 상자의 분산은 1/12이므로, 반환되는 sigma는 참 sigma가 아니라 sqrt(sigma^2 + 1/12)가 된다 —— 이것은 추정 오차가 아니라 이미지가 그렇게되어 있다는 것이다. 실측은 이 예측과 잘 맞는다::

참 FWHM 예측 = 2.3548*sqrt(sigma^2+1/12) 실측(중앙값)

2.5 2.5908 2.5930

3.5 3.5654 3.5625

5.0 5.0460 5.0145

참 sigma를 원하면 sqrt(sigma_fit^2 - 1/12)로 빼면 되지만, 기본값으로는 빼지 않는다 —— 별 측정에서 보통 말하는 "FWHM"은 이미지 위의 겉보기폭이며, 조용히 보정을 넣으면 다른 도구의 값과 맞지 않게 된다.

Returns 각 별 1개의 dict로 된 list(table 어휘). 키는 row / col(피팅한 중심), fwhm_px, amplitude, background, roundness, rms(잔차 RMS), converged(bool), model, 그리고 model에 따른 sigma_row_px / sigma_col_px 또는 alpha_px / beta. 창이 이미지에서 삐져나오는 별, 피팅이수렴하지 않은 별도 버리지 않고 converged=False로 반환한다 —— 조용히 지우면 "별이 줄었다"는 것을 아무도 알아차릴 수 없다.

Raises ValueError: *model*이 PSF_MODELS에 없음 / *box*가 5 미만이거나 짝수 / *centers*가 (N, 2)가 아닌 경우.

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

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

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

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

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

• astro_stacking — py -3.11 examples/astro_stacking.py

• poc_star_astrometry — py -3.11 examples/poc_star_astrometry.py

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

—

같은 카테고리(photometry)

star_detect · aperture_photometry


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

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