使用编译版rtklib过程中如何进行main的调试(spp ppp)

在编译版rtklib的调试过程中,需要在main函数中定义一些参数。
在进行spp(伪距单点定位)的时候,我们通常这样设定相关参数。

// An highlighted blockprcopt_t popt = prcopt_default;solopt_t sopt = solopt_default;filopt_t fopt = { "" };gtime_t ts = { 0 }, te = { 0 };double tint = 0.0;int n = 8;char *infile[] = {{"D:\\data\\2019182\\kat11820.19o"},{"D:\\data\\2019182\\gbm20600.clk"},{"D:\\data\\2019182\\gbm20600.sp3"},{"D:\\data\\2019182\\gbm20601.clk"},{"D:\\data\\2019182\\gbm20601.sp3"},{"D:\\data\\2019182\\gbm20602.clk"},{"D:\\data\\2019182\\gbm20602.sp3"},{"D:\\data\\2019182\\brdm1820.19p"}};char *outfile = { "D:\\data\\2019182\\kat1091820_spp.pos" };#if 1    /* SPP */popt.navsys = SYS_GPS;// GPS+GAL //SYS_ALL;popt.mode = PMODE_SINGLE;popt.sateph = EPHOPT_PREC;popt.elmin = 7 * D2R;popt.ionoopt = IONOOPT_BRDC;popt.ionoopt = IONOOPT_TEC;sopt.posf = SOLF_XYZ;sopt.times = TIMES_GPST;sopt.timef = 1;sopt.timeu = 3;#endifpostpos(ts, te, tint, 0.0, &popt, &sopt, &fopt, infile, n, outfile, "", "");

在进行ppp(精密单点定位的时候,因为需要进行dcb(different code bias)改正、pcv改正等等,需要一些额外的文件 如图所示。
那么,如何在编译版的main中进行设置以达到同rtkpost一样的结算结果呢?
我们从代码出发,rtklib通过postpos.c进行后处理


找到execses函数

/* execute processing session ------------------------------------------------*/
static int execses(gtime_t ts, gtime_t te, double ti, const prcopt_t *popt,const solopt_t *sopt, const filopt_t *fopt, int flag,char **infile, const int *index, int n, char *outfile)

我们便可以找到.blq .erp .dcb等文件的读取方式

以dcb为例,可以看到,代码中先对fopt->dcb是否为空进行判断,如果其为非空,则进行读取,因此我们可以fop为线索,通过vs中的调用层次结果功能进行查找,进而发现调用结构如下pcv如下


发现源头在main,可以直接通过 filopt_t fopt = { “” };进行设置

typedef struct {        /* file options type */char satantp[MAXSTRPATH]; /* satellite antenna parameters file */char rcvantp[MAXSTRPATH]; /* receiver antenna parameters file */char stapos [MAXSTRPATH]; /* station positions file */char geoid  [MAXSTRPATH]; /* external geoid data file */char iono   [MAXSTRPATH]; /* ionosphere data file */char dcb    [MAXSTRPATH]; /* dcb data file */char eop    [MAXSTRPATH]; /* eop data file */char blq    [MAXSTRPATH]; /* ocean tide loading blq file */char tempdir[MAXSTRPATH]; /* ftp/http temporaly directory */char geexe  [MAXSTRPATH]; /* google earth exec file */char solstat[MAXSTRPATH]; /* solution statistics file */char trace  [MAXSTRPATH]; /* debug trace file */
} filopt_t;

只需要设置在main中设置好文件路径即可
因此,修改后关于ppp的main函数如下

    prcopt_t popt = prcopt_default;solopt_t sopt = solopt_default;filopt_t fopt = { "" };gtime_t ts = { 0 }, te = { 0 };double tint = 0.0;int n = 8;char *infile[] = {{"D:\\data\\2019182\\kat11820.19o"},{"D:\\data\\2019182\\gbm20600.clk"},{"D:\\data\\2019182\\gbm20600.sp3"},{"D:\\data\\2019182\\gbm20601.clk"},{"D:\\data\\2019182\\gbm20601.sp3"},{"D:\\data\\2019182\\gbm20602.clk"},{"D:\\data\\2019182\\gbm20602.sp3"},{"D:\\data\\2019182\\brdm1820.19p"}};char *outfile = { "D:\\data\\2019182\\kat1091820_spp.pos" };popt.navsys = SYS_GPS;// GPS+GAL //SYS_ALL;popt.mode = PMODE_SINGLE;popt.sateph = EPHOPT_PREC;popt.elmin = 7 * D2R;popt.ionoopt = IONOOPT_TEC;popt.tropopt = TROPOPT_ZTD;sopt.posf = SOLF_XYZ;sopt.times = TIMES_GPST;sopt.timef = 1;sopt.timeu = 3;strcpy(fopt.dcb, "D:\A正在处理\RTK数据\2019244\P1C11909.DCB");strcpy(fopt.eop, "D:\A正在处理\RTK数据\2019244\igs20697.erp");strcpy(fopt.blq, "D:\A正在处理\RTK数据\2019244\ocnload.blq");strcpy(fopt.satantp, "D:\A正在处理\RTK数据\2019244\igs14_gbm.atx");strcpy(fopt.rcvantp, "D:\A正在处理\RTK数据\2019244\igs14_gbm.atx");postpos(ts, te, tint, 0.0, &popt, &sopt, &fopt, infile, n, outfile, "", "");

关于调试后的结果对比,下次再写。

使用编译版rtklib过程中如何进行main的调试(spp ppp)相关推荐

  1. c语言调试过程中的错误,C语言调试过程中duplicate symbol错误分析

    说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...

  2. 世系是家谱的核心,编修家谱过程中我们应该如何编写世系图

    世系作为家族世代繁衍的重要依据,也是家谱的重要内容和核心,搞清楚世系有利于理清家族的血缘关系,这也是编修一份高质量家谱的前提条件. 世系的重要性 作为家谱的核心内容,世系一般都是通过图表来表示的,我们 ...

  3. ng-template 使用过程中参数传递错误的单步调试

    本文涉及到的代码,位于这个 Github 仓库:https://github.com/wangzixi-diablo/ngDynamic 问题描述 我使用如下代码,期望在使用 *ngTemplateO ...

  4. 在找工作的过程中,面试一定要经历的逻辑推理题...

    金三银四,估计现在应该有很多粉丝在找工作或者换工作的过程中,那么肯定是要经过面试这一关的.现在很多公司面试,都要求做笔试题.其中有软件测试的基本知识考察,也有不少逻辑推理题,不知道大家有没有遇到过,小 ...

  5. Swift与OC混编过程中的配置

    女主宣言 在使用Swift进行iOS开发的过程中,经常涉及到Swift与OC混编的情况,有时主工程是OC的需要另外编入Swift代码,而有时主工程是Swift的需要另外编入OC代码.这其中涉及到修改一 ...

  6. VB:编一个子过程DeleStr(s1,s2),将字符串s1中出现的s2子字符串删去,结果存放在s1中

    题目来源:大工慕课 链接 原题:Visual Basic程序设计教程(第二版)龚沛曾主编,高等教育出版社 实验6-8 作者:Caleb Sung 题目要求 编一个子过程DeleStr(s1,s2),将 ...

  7. 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余。小编收集了10个面试官最爱提的问题

    十大面试问题解惑,秒杀一切HR.技术面试.程序员必读! 最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余.小编收集了10个面试官最爱提的问题 ...

  8. 本科生如何入门GNSS算法(二)- rtklib定位解算过程中的GNSS数据格式以及基本概念

    目录 rtklib单点定位命令分析 rtklib日志​ 定位结果pos文件说明以及定位精度评估 rtklib界面API rtkplot使用 坐标转换 XYZ->BLH 其他的GNSS数据下载 公 ...

  9. 火狐浏览器手机版_火狐浏览器第三方编译版:tete009 Firefox

    tete009 Firefox是由tete009制作的知名的火狐浏览器第三方编译版,也可以说是火狐浏览器的增强版.它由原版便携化制作,加载大容量网页速度特别快,尤其是加载图片速度快,兼容性和启动速度非 ...

最新文章

  1. UVa 167(八皇后)、POJ2258 The Settlers of Catan——记两个简单回溯搜索
  2. 「图像分类」从数据集和经典网络开始
  3. 3级联动 ajax java_java+ajax(三级连动下拉框)
  4. 深入浅出python机器学习_4.3.1_岭回归的原理 4.3.2_岭回归的参数调节
  5. BZOJ 3622 Luogu P4859 已经没有什么好害怕的了 (容斥原理、DP)
  6. dubbo源码解析(四十一)集群——Mock
  7. activity 变成后台进程后被杀死_Android 后台运行白名单,优雅实现保活
  8. int转为string类型方法
  9. 计算机图形数学知识,平面----计算机图形学的基础几何知识
  10. JNI开发笔记(四)--实现一个简单的JNI工程并生成so库
  11. MySQL(6)--- 创建数据库
  12. ios html异步加载图片,iOS 异步加载本地图片
  13. 【Oracle】lsnrctl reload 命令简介
  14. 高端存储器研发再获突破 集成电路国产化进程加快
  15. 如何做好测试用例设计
  16. 系统可靠性分析与设计
  17. iPad连蓝牙鼠标鼠标滚动与屏幕相反的解决方法
  18. 4000元台式电脑组装配置单2022 4000元组装电脑配置清单
  19. 2022年中国数字科技专题分析
  20. C语言项目案例分析 源代码

热门文章

  1. CVPR2022 Oral:StreamYOLO-流感知实时检测器
  2. 契约锁电子签助力拍卖业务网上签约,保全证据、不可抵赖,成交快
  3. 基于 ANSIBLE 自动化运维实践
  4. 简简单单,做自己的视频加密软件
  5. 三年白干!程序员因违反《竞业协议》赔偿腾讯 97.6 万元,返还 15.8 万元
  6. 有趣的概率:三门问题
  7. 基于Zookeeper实现简易的负载均衡
  8. 【笔记】SQL查询语句的基本使用方法
  9. 【安卓Framework学习】Wifi框架学习之热点评分机制
  10. Ubuntu断点续存之wget