本文主要是介绍【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、看了一下采集的数据,2I
和6I
频点数据较多,BDS-III竟然没有7I
,数据如下:
观测类型:C1X C2I C5X C6I C7I C7Z
3、将MG-APP代码处理BDS优先级2->7->6
更改成2->6->7
,更改后的代码如下:
4、注意你的sp3
和clk
文件也要有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代数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!