114-[RTKLIB_BUG]关于rejc

在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表示P1j=1,这是rejc索引为1,表示剔除第二个频率的数据。

基于此,认为rejc的索引应该取整而不是取余,即:

rtk->ssat[sat-1].rejc[j/2]++;

并且上述程序中trace表示剔除的也是取整,故认为这应该是一个bug。不过rejc并不影响程序正常运行,只是在输出解算状态信息会不对。

你可能感兴趣的:(RTKLIB,rtklib,bug)