用RTKLIB中的rtkpost进行ppp和spp定位(附用CUI rnx2rtkp 编译)
目录
rtkpost
ppp
spp
VS2019编译rnx2rtkp
使用crx2rnx.exe
.bat批量化处理rnx2rtkp.exe
RTKLIB中调用LAPACK库
rtkpost
rtkpost是一个事后处理软件,可对采集到的数据进行后期处理定位;而rtknavi则是实时定位的软件
数据集:链接:https://pan.baidu.com/s/139B0pKn0PIM8qwX2h898Og
提取码:j0nr
obs选用rover_trimble.obs,这个数据所用的接收机比rover_ublox.obs要好一点
ppp
RINEX OBS:输入观测数据.obs;
RINEX OBS: Base Station:做相对定位时导入基站信息(此处不需要);
.xxp是多系统广播星历(.xxn是gps的广播星历,内容为卫星位置和卫星广播钟差改正系数),.sp3是精密星历,.clk是精密钟差,.pos是输出定位结果
obs是动态数据,故选PPP Kinematic模式;如果是静态数据就选PPP Static;
单频数据的话选L1;双频L1+L2;三频L1+L2+L5;
Ionosphere Correction:不提供电离层数据就选Broadcast;Iono-Free LC无电离层组合模型;est-stec非组合模型;
Clock:提供了精密钟差选Precise;没有就Broadcast
如果已知有哪些卫星的数据就选哪些,不清楚的话就都选上;
导入天线改正文件.atx;电离层数据.I;差分码偏差.DCB文件
对DCB改正的理解:卫星和接收机端都有一些硬件延迟,这些误差会被钟差吸收。简单来说,钟差只与接收机和卫星有关,但由于它又吸收了硬件延迟,往深究了还与频点有关,在做ppp时,DCB修正必须考虑。
配置好以后点击“execute”,解算完成后再点"plot"
解算得到的动态ppp定位结果,点1,再点2,拉入reference.pos文件,即grountruth
再点1-2,即显示解算和真实轨迹之间的差值,选择Gnd Trk或者Position或者其他模式查看误差情况。
动态ppp精度大概在2m左右,飞点严重。
spp
其他一样,在setting1时有改动
不使用精密星历,精密钟差和电离层误差
解算结果:
误差在5-10m,飞点也更严重
VS2019编译rnx2rtkp
rnx2rtkp是rtkpost.exe对应的C代码源文件,可以用它调整处理过程。
打开VS2019,点“打开项目或编辑方案”,选择“\app\rnx2rtkp\msc\msc.sln”,报错msc.sln已被卸载,重新加载后报错“没有msc.vcxproj文件”。我下载的2.4.3 b33版本,里面确实没有该文件,有两种解决方案。
1)下载2.4.2 p13版本,打开.sln后没有报错;
2)复制其他版本的msc.vcxproj文件,也解决了问题。具体可见http://blog.sciencenet.cn/blog-858128-1234695.html
打开项目后,函数入口在rnx2rtkp.c的main(),后续改代码也在这里改。选择Debug模式,运行,有报错,按照https://blog.csdn.net/weixin_44126610/article/details/105009973解决即可。
测试:选择上述数据集中的.sp3 .clk .obs .18p .conf(用rtkpost测试时保存的配置文件)复制到msc文件里,项目-->msc属性-->调试 导入命令行参数:
运行后,会生成结果文件.pos
使用crx2rnx.exe
有时候需要对文件进行解压,例如rinex3标准.crx---->.rnx;rinex2标准.xxd---->.xxo。可以使用rtklib\bin\crx2rnx.exe进行处理
1)“win+R” 输入cmd,打开命令行,cd进入.exe所在路径
2)对单个文件,需要逐一运行:
crx2rnx KRGG00ATF_R_20200100000_01D_30S_MO.CRX
crx2rnx iqqe0640.12d
3)如需批量运行:
for %a in (*CRX) do crx2rnx.exe %a
或手写.bat脚本执行:
echo
for %%i in (*CRX) do crx2rnx.exe %%i
pause on
存储为.bat文件,放在.exe同一路径下,点开.bat运行即可
.bat批量化处理rnx2rtkp.exe
在bat文件中输入多个命令行参数可以批量化运行RTKLIB,不需要额外修改代码。
bat文件放在D:\softwork\RTKLIB\app\rnx2rtkp\msc\Debug路径下,内容如下:
rnx2rtkp.exe 2>filter.txt -k D:\softwork\RTKLIB\app\rnx2rtkp\msc\AR\URUM_2020010.conf -o D:\softwork\RTKLIB\app\rnx2rtkp\msc\AR\URUM_2020010_guo.pos -p 8 -x 2 -y 2 D:\softwork\RTKLIB\app\rnx2rtkp\msc\multi_freq_data\URUM00CHN_R_20200100000_01D_30S_MO.rnx D:\softwork\RTKLIB\app\rnx2rtkp\msc\multi_freq_data\brdm0100.20p D:\softwork\RTKLIB\app\rnx2rtkp\msc\multi_freq_data\GBM0MGXRAP_20200100000_01D_05M_ORB.SP3 D:\softwork\RTKLIB\app\rnx2rtkp\msc\multi_freq_data\GBM0MGXRAP_20200100000_01D_30S_CLK.CLK
pause
双击bat文件即可运行,这里注意文件路径是相对于bat所在路径的,与调试时在RTKLIB中输入的路径不同。
其中2>filter.txt是stderr流,用于输出错误信息到filter.txt中。
例如,我想输出状态向量x,则在filter_函数后面加上
fprintf(stderr, "x before update is %5d *1:\n", n);
matfprint(x, n, 1, 15, 3, stderr);
RTKLIB中调用LAPACK库
LAPACK库是由美国国家科学基金等资助开发的著名公开软件,用Fortran语言编写,具有强大的矩阵运算功能,是matlab的底层函数库。
RTKLIB本身支持LAPACK库,但相关资料很少,不太清楚怎么使用,故重新调用LAPACK库。
步骤参考了该博文:(15条消息) VS的C++项目添加LAPACK库简便方法(注:64位+32位,且不用自己编译库)_SimulatorC的博客-CSDN博客,但有些地方不太一样,在此加以修正:
1.下载博主提供的安装文件包,其中包括了所有头文件和.lib文件,以及一部分.dll文件;
2.安装MinGW,但.dll所在路径为‘C:\MinGW\bin’;
3.在VS中添加目录;设置环境变量;
4.在rtklib.h中#define LAPACK 1,即可使用调用了LAPACK库的矩阵运算函数;
5.编译能通过,但运行提示缺少.dll文件,根据提示将所需.dll文件复制到‘C:\Windows\SysWOW64’下即可。
用RTKLIB中的rtkpost进行ppp和spp定位(附用CUI rnx2rtkp 编译)相关推荐
- RTKLIB中PPP程序结构及重要函数
1 程序结构 2 重要函数 (1)pppos中主要函数 udstate_ppp:更新状态变量xp.更新Pp矩阵 ppp_res:计算观测值残差v.构造H矩阵.计算观测误差方差构造R矩阵 filter: ...
- RTKLIB中的各种AR mode 详解
文章目录 模糊度解算方式 通过界面选择模糊度模式 通过代码设置模糊度模式 各种模式的介绍 WLNL 和 TCAR ARMODE_OFF Instantaneous Mode Continuous Mo ...
- RTKLIB中RTK定位原理(一)
1 模型 1.1 非差观测值 非差观测值与RTKLIB中PPP定位原理--观测模型部分中一致. 1.2 单间单差观测值 若两个接收机距离较近,经过站间单差,电离层对流层延迟可消除,卫星s的钟差以及初始 ...
- RTKLIB 2.4.2后处理PPP设置参数简介
RTKLIB 2.4.2后处理PPP设置参数简介 添加必选文件 通过Options界面配置解算参数并添加可选文件 Setting1选项卡配置参数输入 Setting2选项卡设置整周模糊度固定策略 Ou ...
- RTKLIB 中的 rtknavi 中的选项的传递过程
RTKLIB 中的 rtknavi 中的选项的传递过程 最近看了一下RTKLIB的源码,追了一下其中的 rtknavi 中的选项是如何传递进去生效的.过程如下,以处理过程选项(PrcOpt:Proce ...
- RTKLIB中CRC-24Q检校部分内容说明
CRC检校原理: CRC检校极为循环冗余检校码,是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的信道编码技术,主要用于检验在数据传输,接受或者保存过程中是否出现缺失或者错误. CRC计 ...
- 北斗导航 | RTKLib中的模型和算法(二)—— 坐标系统
===================================================== github:https://github.com/MichaelBeechan CSDN: ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)
场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...
最新文章
- android studio gradle版本太低问题解决方案
- 【工具推荐】ELMAH——可插拔错误日志工具(转)
- 数据中台实战:商品售前分析
- 启动weblogic的错误:Could not obtain an exclusive lock to the embedded LDAP data files directory...
- 简单的导出表格和将表格下载到桌面上。
- 盘点2020 最烂密码大曝光,第一名的竟然是它?
- 广东省计算机媒体大赛,广东省大学生计算机设计大赛
- mediawiki mysql_MediaWiki
- python基本判断语句_python基础4 - 判断(if)语句
- androidh5混合开发_Android H5混合开发(3):原生Android项目里嵌入Cordova
- mysql select high_priority_MySQL进阶SELECT语法篇
- 绝对干货!纯用HTML+CSS+JS 编写的计算器应用
- CAD弹窗拦截器/CAD字体自动替换工具
- C++遇到错误蓝屏电脑代码底层分享!
- 移动前端开发和 Web 前端开发的区别是什么?
- 科普 | 世界各国电压和电源线插头标准
- 木马是如何穿过防火墙的
- 网络原理考点之internet路由选择协议
- html 评分星级显示,星级评分效果.html
- 如何选择合适的网络自动化工具