【MG-APP】处理BDS第3代数据

2024-03-25 11:30
文章标签 数据 app 处理 mg bds

本文主要是介绍【MG-APP】处理BDS第3代数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考链接:

MG-APP开源软件https://github.com/XiaoGongWei/MG_APP

1、https://github.com/XiaoGongWei/MG_APP/issues/17
2、 不迷途导航程序员
3、北斗卫星导航系统
4、http://mgex.igs.org/IGS_MGEX_Status_BDS.php
5、北斗PCO&PCV

1、首先需要下载最新的atx文件igs14.atx(ftp://ftp.igs.org/pub/station/general/igs14.atx),与BDS-III数据O文件放在同一个文件夹。
2、看了一下采集的数据,2I6I频点数据较多,BDS-III竟然没有7I,数据如下:
观测类型:C1X C2I C5X C6I C7I C7Z

BDS
3、将MG-APP代码处理BDS优先级2->7->6更改成2->6->7,更改后的代码如下:
BDS_type
4、注意你的sp3clk文件也要有BDS-III的产品才可以定位,要不然BDS-III卫星没有轨道和钟差还会剔除了。
然后调试QPPPModel::Run函数的循环,看看能不能定位。下面是使用BDS-II和BDS-III的联合定位结果有问题可以在这里提交

ULAB测站单BDS数据处理结果

使用MG-APP软件使用消电离层组合处理了单BDS数据(BDS2+BDS3,ULAB00MNG_R_20200620000_01D_30S_MO.20o)结果直接用图像展示:
GBM0MGX产品下载:ftp://ftp.gfz-potsdam.de/GNSS/products/mgex/2095

在这里插入图片描述仿动态结果:
在这里插入图片描述

静态结果:
在这里插入图片描述消电离层组合载波和伪距残差:
在这里插入图片描述

每个历元用到的卫星(有些卫星剔除了,观测值不是同时有B2I和B6I,质量原因等)、伪距和载波残差,如下图:
在这里插入图片描述

MG-APP将BDS3当做新系统来处理思路

MG-APP代码中增加新系统,需要修改的函数:
说明:代码滤波前把BDS3标识符改成D,滤波后把D还原成C:
因此,QPPPModel中滤波要考虑一下。

步骤1、
bool QPPPModel::setSatlitSys里面:
m_KalmanClass.setSatlitSys(SystemStr + “D”);
m_SRIFAlgorithm.setSatlitSys(SystemStr + “D”);

步骤2、
void QPPPModel::Run

// store spp position
spp_vct[0] = spp_pos[0]; spp_vct[1] = spp_pos[1]; spp_vct[2] = spp_pos[2];
if (!m_Solver_Method.compare(“SRIF”, Qt::CaseInsensitive))
is_filter_good = m_SRIFAlgorithm.SRIFforStatic(prevEpochSatlitData,epochResultSatlitData,spp_pos,X,P);
else
is_filter_good = m_KalmanClass.KalmanforStatic(prevEpochSatlitData,epochResultSatlitData,spp_pos,X,P);
代码滤波前把BDS3标识符改成D,滤波后把D还原成C:
步骤3、

void QPPPModel::saveResult2Class
要判断是否有BDS3,如果有那么
//Stores the receiver skew of the first system, and the relative offset of its other systems GCRE
for(int i = 0;i < m_sys_str.length();i++)
{
switch (m_sys_str.at(i).toLatin1()) {
case ‘G’:
epochRecClock.clockData[0] = X(4+i);
break;
case ‘C’:
epochRecClock.clockData[1] = X(4+i);
break;
case ‘R’:
epochRecClock.clockData[2] = X(4+i);
break;
case ‘E’:
epochRecClock.clockData[3] = X(4+i);
break;
default:
break;
}
}

保存钟差要考虑
步骤4、
最后写钟差文件bool QWrite2File::writeClockZTDW2Txt要考虑

这篇关于【MG-APP】处理BDS第3代数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/844864

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

Java利用@SneakyThrows注解提升异常处理效率详解

《Java利用@SneakyThrows注解提升异常处理效率详解》这篇文章将深度剖析@SneakyThrows的原理,用法,适用场景以及隐藏的陷阱,看看它如何让Java异常处理效率飙升50%,感兴趣的... 目录前言一、检查型异常的“诅咒”:为什么Java开发者讨厌它1.1 检查型异常的痛点1.2 为什么说