GROOPS实例——使用GPS卫星进行简化动力学定轨及精密单点定位

GROOPS简化动力学定轨与精密单点定位

1.GROOPS简介

最近在学习GROOPS,分享一些学习成果及心得,主要涵盖GPS简化动力学定轨部分的内容与精密单点定位(ppp),官方给出的说明文档链接:https://groops-devs.github.io/groops/html/cookbook.gnssPpp.html。
首先介绍一下GROOPS:GROOPS(The Gravity Recovery Object Oriented Programming System )是由奥地利格拉茨科技大学开发的一款开源软件,该软件包含精密定轨、占网分析以及精密单点定位等众多内容,并发布于:https://github.com/groops-devs/groops

2.简化动力学定轨及精密单点定位

2.1.元数据准备

进行精密定轨及单点定位需要准备以下元数据,这些元数据需要再Groops数据网上(https://ftp.tugraz.at/outgoing/ITSG/groops/data/)下载或者是在IGS机构下载以及通过Groops软件转换得到(GROOPS支持的格式):

——可从Groops数据网直接下载得到的数据:
1)卫星相关数据
发射器列表(Transmitter List,此文件比较简单,可自己写)
发射器信息(Transmitter info)
天线定义文件(Antenna definition)
接收机信息(Receiver definition)
卫星宏观模型(Satellite macro model)
卫星姿态文件(Attitude)
2)测站相关数据
测站信息(Station info)
天线定义文件(Antenna definition)
精度定义文件(Accuracy definition)
测站位置文件(StationPosition,用以约束定位结果)
3)其他
重力场文件(Gravity field,GOCO06s_static_2010-01-01.gfc.txt)
潮汐文件(Tides and tidal deformation,earthAnelastic2003.xml,oceanTide_fes2014b_n180_version20170520.dat,oceanTide_fes2014b_admittance_linear_linear.txt,atmosphericTide_AOD1BRL06.dat,atmosphericTide_AOD1BRL06_admittance.txt,secularPole2018.xml)
地球自转文件(Earth orientation parameters)
全球气压及温度文件(Global Pressure and Temperature 3,GPT3)
JPL星历数据(ephemerides_JPL_DE432.dat)
love函数相关文件(deformationLoveNumbers_CM_Gegout97.txt,loadLoveNumbers_Gegout97.txt)

——需要从其他网站(CDDIS,WHU,CNT等机构,精密文件“P”最好使用同一机构下的)上下载的数据:
P-精密星历文件(.sp3)
P-精密钟差文件(.clk)
P-码偏差文件(.bia)
观测值文件(.**o)
对流层模型文件(VMF3)
*注:VMF3下载地址 https://vmf.geo.tuwien.ac.at/trop_products/ (格网式-GRID或测站式-GNSS)

需通过Groops转化或手动生成的数据:
1)卫星星相文件(Star Camera),在定轨过程中的中间产物,这里不做描述。

2)特定卫星的Prn钟差文件
打开Groops,添加项目LoopPrograms,在LoopPrograms中添加GnssClockRinex2InstrumentClock以循环获取所有GPS卫星的钟差文件。

LoopPrograms中的设置:
Loop->fileAscii,
inputfile->transmitter list
其余默认即可。

GnssClockRinex2InstrumentClock中的设置:
inputfileClockRinex->钟差文件(clk)
identifier->{loopstring}
intervals->uniformSampling, 起始时间为处理数据当天零时零分零秒,结束时间可设置为第二天零时零分零秒,采样间隔最好与钟差文件保持一致。
其余保持默认设置。
获取的钟差文件如下(文件名自定义,卫星prn会自动追加在文件名中):
文件名自定义,卫星prn会自动追加在文件名中
3)每个卫星的信号偏差文件
GnssSinexBias2SingalBias:
inputfileSinexBias->bia文件
inputfileGlonassReceiverDefination->GLONASS卫星发射器的频率号映射(不用GLONASS卫星可不设置),部分结果如下:
在这里插入图片描述
:注意,输出文件的名称必须为gnssSignalBias.{prn}.*,否则后续处理将会报错。
4)Groops格式的观测值文件
RinexObservation2GnssReceiver
inputfileRinexObservation->观测文件
inputStationInfo->站信息文件
inputfileSemiCodelessReceiver->Groops数据网上下载

5)对流层模型的时间序列
下载对当天00,06,12,18及第二天00的流层模型Grid 1×1数据。
运行ViennaMappingFunctionStation2File
inputfile->将下载的数据全部添加
timeSeries->uniformSampling
起始时间当天00:00:00,结束时间为第二天00:00:00,采样间隔6h。

2.2简化动力学定轨

基本认识:
精密单点定位需要精密轨道,从精密星历中获取精密轨道的方法主要有三种:
a)插值法
b)动力学方法
c)简化动力学方法
简化动力学方法是动力学方法的“简化版”,它估计了卫星所受到的主要摄动力(地球引力场,太阳光压等),而将除主要摄动力以外的摄动力视为一种随机脉冲误差,通过估计这一误差对轨道进行进一步改正获取精密轨道。
GROOPS软件实现:
LoopPrograms中的设置:
Loop->fileAscii,
inputfile->transmitter list
其余默认。

在LoopPrograms中依次添加如下项目:
在这里插入图片描述
loop->fileAscii(transmitter list)
在这里插入图片描述

Sp3Format2Orbit->输入sp3文件,获取每一个卫星的轨道。
在这里插入图片描述
InstrumentResample->对从sp3文件中获取的轨道插值
在这里插入图片描述
orbitSampling=900s

OrbitAddVelocityAndAcceleration->使用插值轨道获取卫星速度及加速度,输入插值轨道文件。
在这里插入图片描述
GnssPrn2SvnBlockVariables->获取卫星PRN对应的SVN号,将其转换得到的SVN号保存至变量中供后续使用(svn),输入文件为transmitter info。
在这里插入图片描述
SimulateStarCameraGnss->根据轨道文件、卫星姿态文件(根据SVN给出)及JPL星历获取星相数据。
在这里插入图片描述
PreprocessingVariationalEquation->输入添加速度及加速度的轨道、星相文件,获取变分方程文件(轨道积分结果)
包含以下设置
forces->摄动力模型
重力场、天文潮、地球潮汐以及相对论效应即可,除重力场maxDegree设置为20以外,其余参数默认(如图所示)。

在这里插入图片描述
PreprocessingVariationalEquation其余设置,添加地球自转文件、JPL星历及重力场模型(和上文一样再添加一次)
在这里插入图片描述
PreprocessingVariationalEquationOrbitFit->最小二乘法拟合获取其他轨道改正参数,对于每一个循环来说,这个项目需要进行两次,第一次估计太阳光压:
输入变分方程及添加了速度、加速度的轨道、JPL星历以估计太阳光压参数(至少估计前五个参数,也有文献提出五参数比七参数更好)
在这里插入图片描述
第二次估计随机脉冲误差,与上一步相比,输入的变分方程为估计太阳光压所得到的变分方程,并按下图的方式添加随机脉冲:
在这里插入图片描述
至此,简化动力学定轨已完成,所得变分方程包含了轨道及状态转换矩阵。

2.3精密单点定位

精密单点定位过程非常复杂,具体原理就不再赘述,仅分享如何设置GROOPS的定位策略文件。
a)首先,设置处理数据的采样策略,根据观测文件的采样间隔设置,一般为30s:
在这里插入图片描述
b)而后,设置卫星相关信息,输入准备好的卫星发射器列表、发射器信息、天线定义、卫星接收机定义、信号偏差、变分方程、JPL星历及钟差文件等。
设置estimateCodeBias及estimatePhaseBias为no,其余保持默认设置。
在这里插入图片描述
注:这里输入的信号文件名称必须为gnssSignalBias.{prn}.dat,否则报错(这个问题看了一堆源码才发现)。

c)其次,设置接收机信息
选择stationoNetwork模式
输入要处理的测站名列表文件(自己手动创建,每行一个测站)、测站信息文件、天线定义文件、接收机定义文件、精度文件、用以约束的测站位置文件以及观测值文件。
在这里插入图片描述
相关参数设置:
在这里插入图片描述
对流层设置:
在这里插入图片描述
viennaMapping中输入文件为上文准备的对流层模型时间序列文件,trend中开始时间应设置为处理当天的正午。

潮汐文件:
输入文件前文准备的潮汐数据文件(默认设置里有对应的名字),所有的minDegree设置为1,其余默认。
在这里插入图片描述
其余设置:
输入JPL星历、love函数相关文件。
设置codeMaxPositionDiff=200,minEstimableEpochRatio=0.25。(如果出现“”测站不可用“报错信息,可以将位置差适当调大,可用历元数适当调小),其余默认。
在这里插入图片描述
d)电离层设置->默认设置即可,地球自转文件,提供上文自转文件,保持默认设置即可,整周模糊度,默认设置。
e)constrains(约束)
parameters->wildcard:object= * ,type=troposphere*,temporal= * ,interval= * 。

f)processingStep:forEachReceiverSeparately
在processingStep:forEachReceiverSeparately,依次添加
(1)processingStep->selectParameters:
在这里插入图片描述
在这里插入图片描述

(2)processingStep->estimate:
在这里插入图片描述

(3)processingStep->Group:
processingStep->Group中再次添加processingStep->selectParameters,设置如下:
在这里插入图片描述
在这里插入图片描述
以及processingStep->estimate:
在这里插入图片描述

(4)processingStep->estimate:

在这里插入图片描述
(5)processingStep->resolveAmbiguities:
在这里插入图片描述
(6)processingStep->estimate:
在这里插入图片描述
(7)processingStep->printResidualStatistics
(8)processingStep->writeResults
为每个输出文件追加自定义文字吧!

Groops简化动力学定轨及精密单点定位的内容就分享到这里了,我是按照官网的教程结合一些源代码完成的这部分内容,由于源代码阅读不够充分,理论知识掌握不够全面,欢迎卫星定位及大地测量相关专业的同学指出不足并学习讨论。

  • 12
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
基于12颗GPS卫星的自主定轨仿真程序是一种通过模拟GPS卫星定位系统,实现对物体的自主定位和迹跟踪的程序。这个程序基于12颗GPS卫星的信息,通过计算物体到每颗卫星的距离,并利用三角定位原理来获取物体的精确位置信息。 首先,该仿真程序需要获取12颗GPS卫星的位置和道信息,这些信息可以通过现实的卫星数据进行获取。然后,程序会根据物体接收到的卫星信号来计算物体与每颗卫星之间的距离。根据物体与至少四颗卫星的距离信息,程序可以采用三角定位算法来计算出物体的精确位置。 在程序运行过程中,可以设置不同的物体起始位置和速度,模拟物体在不同场景中的运动状态。程序会根据物体的起始位置和速度,在每个时间步长内,更新物体的位置和速度信息。通过不断更新物体的位置信息,可以实现对物体运动迹的跟踪和记录。 此外,该仿真程序还可以添加一些功能,如可视化显示物体的运动迹和实时定位信息,以及导出仿真结果和分析物体迹等。 总而言之,基于12颗GPS卫星的自主定轨仿真程序可以帮助我们实现对物体的自主定位和迹跟踪。通过模拟GPS卫星定位系统,该程序可以计算出物体的精确位置信息,并模拟物体在不同场景中的运动迹。这个程序可以应用于物体追踪、导航系统的测试和验证等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值