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並不影響程序正常運行,只是在輸出解算狀態信息會不對。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章