TEQC GNSS数据质量分析算法
2021/6/14 22:21:08
本文主要是介绍TEQC GNSS数据质量分析算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- TEQC应用
- TEQC算法
- 1. 电离层误差变化率检测周跳
- 2. MP1(L1伪距多径值)、MP2(L2伪距多径值)
- 总结
TEQC应用
TEQC是由UNAVCO Facility研制的为研究GPS 监测站数据服务的公开免费软件,软件在快速、多角度、全方位的分析观测数据方面具有强大的优势。TEQC应用的例子有很多:
- UNAVCO会用TEQC对该机构下的CORS站的数据质量检测,并且将生成的报告上传到FTP上
- RTKLib中的rtkplot.exe实际也集成了TEQC,因此可以画每颗卫星的多径、仰角情况;
- 北云公开的测试报告《C1高精度办卡测试报告 原始观测数据质量篇》中,在对其高精度板卡测试,对原始观测数据质量进行分析时,“伪距多径值”、“观测数据完整率”、“每周跳观测量”指标均由TEQC获得
TEQC算法
TEQC虽然没有公开其具体代码,但是多数指标通过简单统计即可获得。部分指标则涉及一些简单的算法,在其公开论文《Geodetic Data Services Plan for GNSS Modernization: Data Formats and Preprocessing Tools》也有描述。接下来,主要参考该论文,对其中一些指标的算法进行阐述。
1. 电离层误差变化率检测周跳
下面是TEQC报告中的一个示例:
- 第一行是电离层误差变化率的阈值,超出阈值则认为有周跳;
- 下面两行则是检测出来的周跳数
IOD signifying a slip : >400.0 cm/minute
IOD slips < 10.0 deg* : 125
IOD slips > 10.0 deg : 439
具体计算方法如下:
频率i的载波相位L和伪距P建模如下,其中R是卫星和接收机天线之间的真实距离,c是光速,dtr是接收机钟差,dts是卫星钟差,Ii为频率i的电离层误差,N为对流层延迟,mi为频率i的相位多径误差,Mi为频率i的伪距多径误差,ni λ \lambda λi 为整周模糊度项:
电离层延迟误差与频率的平方成反比,L1和L2电离层延迟的关系如下:
根据(1)式中的模型,用L1 - L2,并且带入(4)式,可以得到下式:
或者下式:
顺便说一句,在整周模糊度已经固定的情况下,由于相位多径通常非常小,忽略多径,通过(5)式和(6)式,其实可以计算得到电离层延迟,这也是如何用双频数据计算电离层延迟的方法。
TEQC利用(5)和(6),将两个时刻的电离层误差相减(忽略相位多径误差,通常为毫米级),并且除以时间间隔,便可以得到电离层误差的变化率:
TEQC利用电离层误差变化率监测L1,L2周跳。由于除了周跳,不同时刻电离层延迟的变化、卫星运动、接收机运动,均会影响由(7)式所计算的电离层误差变化率。所以TEQC默认设置了400cm/min的阈值,不过这个值是可以通过命令行选项进行修改的。
2. MP1(L1伪距多径值)、MP2(L2伪距多径值)
下面是TEQC报告中的一个示例。MP12和MP21是移动平均多径的RMS值。第三行是用多少个点来计算移动平均值。
Moving average MP12 : 0.370746 m
Moving average MP21 :0.234991 m
Points in MP moving avg : 50
为了得到多径方程,我们通过(1)式和(2)式中的模型计算线性组合MP1、MP2,并且将式中的电离层误差用(5)式和(6)式替代。这样我们就可以得到:
其中B1 和B2定义为:
式(8)中,由于相位多径m1和m2非常小,MP1的变化主要由M1和B1造成。由于B1由模糊度计算得到,因此在没有周跳的情况,B1不会发生变化。MP2和MP1类似。
如果将伪距多径M1、M2认为是零均值的白噪声,而B1、B2在没有周跳的时间段内是个常值,那么将线性组合值MP1、MP2在无周跳时间段内的均值减去,则就是多径值M1、M2,这也正是TEQC计算多径的方法。TEQC减去均值后,再计算RMS,便得到了报告中的MP12,MP21。
总结
TEQC开源工具虽然好用,但是我们还是应该“知其然,并知其所以然”。只有掌握了算法,才能写出我们可以任意修改的工具。我曾经尝试过写计算多径值的函数,基本上通过上述算法,可以得到和TEQC一致的结果。学会使用优秀的工具很重要,但是理解这些指标如何计算、为什么这么算更重要。
这篇关于TEQC GNSS数据质量分析算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享