文章目录
卫星位置精度
rtklib的定位中用于计算伪距的权值时,要用到用户测距精度 vare
/* pseudorange residuals -----------------------------------------------------*/
static int rescode(int iter, const obsd_t *obs, int n, const double *rs,
const double *dts, const double *vare, ...)
{
...
/* error variance */
var[nv++]=varerr(opt,azel[1+i*2],sys)+vare[i]+vmeas+vion+vtrp;
...
return nv;
}
用户测距精度在计算卫星位置时通过函数var_uraeph
计算,
extern void eph2pos(gtime_t time, const eph_t *eph, double *rs, double *dts, double *var)
{
...
/* position and clock error variance */
*var=var_uraeph(eph->sva);
}
函数var_uraeph
计算用户测距精度仅仅需要一个参数ura,这个参数来自星历文件。
static double var_uraeph(int ura)
{
const double ura_value[]={
2.4,3.4,4.85,6.85,9.65,13.65,24.0,48.0,96.0,192.0,384.0,768.0,1536.0,
3072.0,6144.0
};
return ura<0||15<ura?SQR(6144.0):SQR(ura_value[ura]);
}
URA
GPS/BDS URA
URA(User Range Accuracy)用户距离精度,单位是米,URA与精度的关系如下表(来自北斗ICD,GPS ICD中的内容与北斗ICD一致),
编码 | URAI 值 | URA 范围(m,1σ) |
---|---|---|
0000 | 0 | 0.00 < URA ≤ 2.40 |
0001 | 1 | 2.40 < URA ≤ 3.40 |
0010 | 2 | 3.40 < URA ≤ 4.85 |
0011 | 3 | 4.85 < URA ≤ 6.85 |
0100 | 4 | 6.85 < URA ≤ 9.65 |
0101 | 5 | 9.65 < URA ≤ 13.65 |
0110 | 6 | 13.65 < URA ≤ 24.00 |
0111 | 7 | 24.00 < URA ≤ 48.00 |
1000 | 8 | 48.00 < URA ≤ 96.00 |
1001 | 9 | 96.00 < URA ≤ 192.00 |
1010 | 10 | 192.00 < URA ≤ 384.00 |
1011 | 11 | 384.00 < URA ≤ 768.00 |
1100 | 12 | 768.00 < URA ≤ 1536.00 |
1101 | 13 | 1536.00 < URA ≤ 3072.00 |
1110 | 14 | 3072.00 < URA ≤ 6144.00 |
1111 | 15 | URA > 6144.00 |
GLONASS URA
GLONASS URA设置为常数5m,
extern void geph2pos(gtime_t time, const geph_t *geph, double *rs, double *dts,
double *var)
{
...
*var=SQR(ERREPH_GLO);
}