-
Notifications
You must be signed in to change notification settings - Fork 0
Phase2_Rejection
所有算法输入同一pixel stack:
value[]
valid[]
support[]
weight[]
quality[]
rejection的首要输入是:
UPM-calibrated value[]
不是原始未统一数据。
输出:
accepted_mask[]
low_reject_count
high_reject_count
diagnostics
最终SNR weighted integration发生在rejection之后。
none
sigma_clipping
winsorized_sigma_clipping
averaged_sigma_clipping
linear_fit_clipping
generalized_esd
rcr
定义:
- iterative;
- configurable center(mean/median);
- low/high sigma;
- max iterations;
- convergence=本轮无新增reject。
首要Python Oracle:
astropy.stats.sigma_clip
先用winsorized robust estimator抑制极端值对location/scale的影响,再迭代判reject。
必须写出AstroCS精确定义。
可用:
- SciPy
winsorize验证winsorization primitive; - Siril作为完整stacking外部Oracle。
不得声称逐位复刻PixInsight,除非找到并冻结其权威算法定义。
名称存在不同实现传统。
Phase2 v1必须明确采用哪一数学定义。
优先基线:
IRAF
AVSIGCLIP公开定义:估计sigma²与signal的比例关系, 再用该经验Poisson-like模型迭代reject。
必须:
- 在Wiki写完整公式;
- 用IRAF公开文档例子/独立Python实现对照;
- 不把名字相同但语义不同的算法混在一起。
按pixel stack排序/构造独立变量后拟合:
y = a x + b
基于fit residual做low/high clipping。
外部行为Oracle:
Siril
Siril公开文档明确该算法拟合pixel stack最佳直线并reject outliers。
Siril为GPL软件,因此:
EXTERNAL ORACLE ONLY
不得复制其生产源码。
严格按Rosner/NIST定义。
配置:
alpha
max_outlier_fraction / max_outliers
NIST指出该方法假设近似正态,并给出逐步R_i和critical lambda_i。
首要硬Oracle:
NIST Rosner example
必须复现其示例的3个outliers结论。
按Maples et al. 2018论文独立实现。
要求:
- 不复制UNC官方RCR源码;
- 官方代码许可仅允许非商业用途,作为Oracle/研究对照;
- 生产实现从论文数学独立编写;
- 支持weighted/unweighted行为时必须分别测试。
每个算法声明:
minimum valid N
recommended N
fallback
若当前pixel有效样本不足:
- 默认fallback=
none; - 不静默换成另一rejection算法;
- 统计fallback pixel count。
普通Sigma/Winsorized/ESD/Linear Fit:
rejection判断先基于已校准sample distribution。
最终SNR权重不应该偷偷改变算法定义。
只有明确标为weighted的算法模式(例如RCR weighted)才能使用权重进入reject数学。