synth opなし → images(引数だけで決まる op —— 画像やデータの入力を取らない)import fullseye as fs; fs.ledger.synth_frame_series(shape=(128, 128), n_frames=8, dither_px=1.5, fwhm_px=3.2, fwhm_jitter=0.0, n_cosmic=0, seed=0, **starfield_kw) (実装を直接呼ぶなら import astrostack; astrostack.synth_frame_series(shape=(128, 128), n_frames=8, dither_px=1.5, fwhm_px=3.2, fwhm_jitter=0.0, n_cosmic=0, seed=0, **starfield_kw)、台帳から引くなら opsastrostack.get("synth_frame_series"))fullseye.ledger.synth_frame_series(...) は宣言 out 型 images の値だけを返す(本体は補助情報も返す)。捨てられた側が要るときは fullseye.ledger.synth_frame_series.raw(...)、または astrostack.synth_frame_series を直接呼ぶ。
(frames, truth) -> images同じ星野を n_frames 枚、別々のノイズと別々のディザで撮り直す。
星の座標・フラックスは全フレームで同じ(field_seed を固定して星の抽選を
再現し、観測ごとの seed と shift_row / shift_col だけを振る)ので、
位置合わせ・合成・drizzle の正解が 1 組で済む。fwhm_jitter を与えると FWHM がフレームごとに揺れる
—— これが lucky imaging の「シーイングが揺らぐ」条件で、0 のままだと
:func:lucky_select が選ぶ理由が無くなる。
ディザは dither_px を半径とする決定的な螺旋(i 番目のフレームを
dither_px * (i / (n-1)) の半径・黄金角の方向へ置く)。乱数でないので
フレーム数を変えても並びが安定し、図が再現する。
Returns (frames, truth):
frames —— 長さ n_frames の list、各要素は (H, W) float64。
images 語彙そのものなので、合成 op へそのまま渡せる。truth —— :func:synth_starfield の truth に、shifts (N, 2)
(各フレームの (dr, dc))と fwhms (N,) を足したもの。
rows / cols はディザ前(フレーム 0 の位置)。Raises ValueError: :func:synth_starfield の条件に加えて、
n_frames が 1 未満、dither_px が負、fwhm_jitter が負の場合。
py -3.11 examples/astro_stacking.pypy -3.11 examples/poc_astro_photometry.pyimages を入力に取れる)lucky_select · sigma_clip_stack · drizzle_resample · cosmic_ray_reject_stack · align_frames
synth)Provenance: astrostack.py — ASTROSTACK operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.