在RTKLIB的ppp_res
中有这样一段程序:
/* reject satellite by pre-fit residuals */
if (!post&&opt->maxinno>0.0&&fabs(v[nv])>opt->maxinno) {
trace(2,"outlier (%d) rejected %s sat=%2d %s%d res=%9.4f el=%4.1f\n",
post,str,sat,j%2?"P":"L",j/2+1,v[nv],azel[1+i*2]*R2D);
exc[i]=1; rtk->ssat[sat-1].rejc[j%2]++;
continue;
}
其中对于rtk->ssat[sat-1].rejc
的索引取余,那么问题来了,rejc
是这样定义的:
unsigned int rejc [NFREQ]; /* reject counter */
表示剔除第几个频率的计数,而在该函数中,若j表示L1,P1,L2,P2
,当j表示P1
即j=1
,这是rejc
索引为1,表示剔除第二个频率的数据。
基于此,认为rejc
的索引应该取整而不是取余,即:
rtk->ssat[sat-1].rejc[j/2]++;
并且上述程序中trace
表示剔除的也是取整,故认为这应该是一个bug。不过rejc
并不影响程序正常运行,只是在输出解算状态信息会不对。