sigma_clip_stack — ASTROSTACK stack op

• 資料種類:images → image2d

• 呼叫: import fullseye as fs; fs.ledger.sigma_clip_stack(frames, mode='sigma_clip', kappa=3.0, iters=5, center='median', scale='mad')(要直接呼叫實作,import astrostack; astrostack.sigma_clip_stack(frames, mode='sigma_clip', kappa=3.0, iters=5, center='median', scale='mad');從台帳取用則 opsastrostack.get("sigma_clip_stack"))

• 經台帳呼叫的回傳值: fullseye.ledger.sigma_clip_stack(...) 只回傳宣告的 out 型別 image2d 的值(底層函式還會回傳輔助資訊)。需要被捨棄的部分時,請用 fullseye.ledger.sigma_clip_stack.raw(...),或直接呼叫 astrostack.sigma_clip_stack。

• 底層回傳: (stack, accepted) -> image2d

用法

合成一串影格(平均 / 中位數 / κ-σ 剪裁),並給出採納遮罩。

*mode*:

• "mean" —— 簡單平均。雜訊依 sqrt(N) 下降,但離群值(宇宙射線、人造衛星的軌跡)只被稀釋 1/N,必定殘留。

• "median" —— 中位數。對離群值穩健,但在常態分布時雜訊只能下降到平均的 sqrt(pi/2) = 1.2533 倍(= 實際上相當於丟棄了 36 % 的張數)。

• "sigma_clip" —— 以中位數為中心、scale 為尺度,剔除 |x - center| > kappa * scale,對其餘求平均。重複 iters 次。對離群值穩健,且存活下來的像素會被平均,所以雜訊也依 sqrt(N_accepted) 下降 —— 實用的預設。

崩潰點為 50 %。 只要以中位數為中心、以 MAD 為尺度,在被汙染幀超過半數的像素上,中位數本身就落在汙染一側,裁剪就會丟棄正確的一方。這不是本實作的缺陷,而是中位數的定義本身,若設為 center="mean" 則會更早(即使只有 1 張被汙染)崩潰。測試在 0〜60 % 的汙染率下測量誤差,崩潰的一側也原樣保留。

scale 的預設為 "mad" 是實測的結果。 scale="std" 會「讓用來發現離群值的尺度被離群值自身撐大」,所以汙染增加時反而什麼都不剔除 —— 在 24x24 平坦場(真值 100、σ=2)20 張中的 4 張(20 %)加入 +500 汙染的實測中,scale="std" 的拒絕率為 0.0 %、誤差 +99.9975(= 與簡單平均直到小數點以下都完全相同),scale="mad" 的拒絕率為 22.0 %、誤差 -0.019。崩潰點 std 在 10〜20 % 之間,mad 恰好為 50 %,相差近 5 倍。

Returns (stack, accepted):

• stack —— (H, W) float64。

• accepted —— (N, H, W) bool,True = 採用的像素。mode="mean" / "median" 時全為 True(兩者都不裁剪,所以用一個 False 都沒有來表示不存在「取捨」的概念)。

Raises ValueError:*frames* 不是 list / tuple / 張數小於 2 / 形狀不一致 / *mode* 不在 STACK_MODES 中 / *kappa* 非正 / *center* 不是 "median" / "mean" / *scale* 不是 "std" / "mad" 時。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• astro_stacking — py -3.11 examples/astro_stacking.py

• poc_astro_photometry — py -3.11 examples/poc_astro_photometry.py

• poc_exoplanet_transit — py -3.11 examples/poc_exoplanet_transit.py

• poc_river_surface_velocity — py -3.11 examples/poc_river_surface_velocity.py

型別可銜接的下一個運算子(可接受 image2d 作為輸入)

frame_quality · noise_sigma · cosmic_ray_reject · star_detect · psf_fit · aperture_photometry · frame_align

同類別(stack)

drizzle_resample


*Provenance: astrostack.py — ASTROSTACK 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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