RTKLIB学习记录 dops值输出

dop位置精度衰减因子,是对卫星导航系统定位性能进行评估的重要指标, 是体现卫星分布于定位质量影响的重要参数。通常包括几何精度衰减因子(GDOP)、位置精度衰减因子(PDOP)、水平精度衰减因子(HDOP)、垂直精度衰减因子(VDOP)和时间精度衰减因子(TDOP)

RTKLIB原本输出没有dop值,dop值是反应定位性能的一个指标,其实在rtklib定位计算过程中对于dop值已经进行计算,并没有存储输出,只需要打开输出即可。

首先是确定dop值是在哪里计算的,在pntpos.c中的单点定位(pntpos)计算过程中利用伪距计算接收机位置(estpos),最小二乘解算出位置后(lsq)需要对结果进行有效性检验(valsol),其中valsol中利用两种方式进行检验:1、卡方检验;2、gdop值最大检验(通过dops函数)。dops函数就是计算dop值,[0]-[3]分别对应GDOP/PDOP/HDOP/VDOP。

知道在哪计算后需要对计算出的dop值进行储存,用到sol_t结构体,在dops函数下加入一行代码,将计算的dop值储存

for (i=0;i<3;i++) sol->dops[i]=dop[i];

储存的同时,需要该函数valsol声明dop

static int valsol(const double *azel, const int *vsat, int n,
                  const prcopt_t *opt, const double *v, int nv, int nx,
                  char *msg, sol_t* sol) 
{
    double azels[MAXOBS*2],vv,dop[3];

只有储存是不够的,还需要将dop输出出来。在solution.c中需要对输出头(outsolheads)和输出主体(outsols)进行更改。

outsols中一般输出XYZ即ecef坐标系,在outecef中找到打印加入sol->dops[1](dops[1]是PDOP)

p+=sprintf(p,"%s%s%14.4f%s%14.4f%s%14.4f%s%3d%s%3d%s%8.4f%s%8.4f%s%8.4f%s"
               "%8.4f%s%8.4f%s%8.4f%s%6.2f%s%6.1f%s%6.2f",
               s,sep,sol->rr[0],sep,sol->rr[1],sep,sol->rr[2],sep,sol->stat,sep,
               sol->ns,sep,SQRT(sol->qr[0]),sep,SQRT(sol->qr[1]),sep,
               SQRT(sol->qr[2]),sep,sqvar(sol->qr[3]),sep,sqvar(sol->qr[4]),sep,
               sqvar(sol->qr[5]),sep,sol->age,sep,sol->ratio, sep, sol->dops[1]);

outsolheads中找到对应坐标系输出:else if (opt->posf==SOLF_XYZ)  /* x/y/z-ecef */

加入输出头pdop,这一步可有可无,只不过在头中显示该列是pdop,可以不加

else if (opt->posf==SOLF_XYZ) { /* x/y/z-ecef */
        p+=sprintf(p,"%14s%s%14s%s%14s%s%3s%s%3s%s%8s%s%8s%s%8s%s%8s%s%8s%s%8s%s%6s"28  %s%6s
                   "%s%6s%s%6s",
                   "x-ecef(m)",sep,"y-ecef(m)",sep,"z-ecef(m)",sep,"Q",sep,"ns",
                   sep,"sdx(m)",sep,"sdy(m)",sep,"sdz(m)",sep,"sdxy(m)",sep,
                   "sdyz(m)",sep,"sdzx(m)",sep,"age(s)",sep,"ratio", sep, "pdop");

这时,可以发现在打印输出中sol->dops[1]标红,即未在头文件该结构体中声明dops。

在rtklib.h头文件中找到sol_t结构体加入声明 double dops[4];即可运行函数

本人也是刚接触rtklib,写这篇文章是因为当时需要输出dop值,在网上也找不到相关参考,只能一步步摸索,如果有错误也希望和大家相互交流。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值