在RTKLIB的ppp_res中有这样一段程序:
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
];
表示剔除第几个频率的计数,而在该函数中,若j表示L1,P1,L2,P2,当j表示P1即j=1,这是rejc索引为1,表示剔除第二个频率的数据。
基于此,认为rejc的索引应该取整而不是取余,即:
rtk
->ssat
[sat
-1].rejc
[j
/2]++;
并且上述程序中trace表示剔除的也是取整,故认为这应该是一个bug。不过rejc并不影响程序正常运行,只是在输出解算状态信息会不对。