一文搞懂导航电文

一文搞懂导航电文(以Rinex3.04为例)

一.什么是Rinex

RINEX(Receiver Independent Exchange Format/与接收机无关的交换格式)是一种在GPS测量应用中普遍采用的标准数据格式。该格式采用文本文件存储数据,数据记录格式与接收机的制造厂商和具体型号无关。

二.Rinex格式文件的下载方式

附上网址:
1.ftp://nfs.kasi.re.kr/ 与igs内容差不多,部分会缺,在电脑文件管理器中打开即可;

2.http://www.csno-tarc.cn/datacenter/ephemeris 选择广播星历下载即可,可选择日期,打开链接的方式同上;

3.cddss官网下载(不建议),需注册,下载比较繁琐;

(注:美国出于信息安全的考虑,关闭了所有通过ftp下载igs,cddss上的数据的途径,网上搜索下载Rinex格式文件的网站是会看到很多ftp链接里带有igs,cddss的,作者试过全都打不开)

4.https://igs.org/formats-and-standards/ 下载Rinex各版本格式说明文件,根据需要下载即可。

三.Rinex导航电文内容说明

Rinex格式的导航电文分为文件头和数据两部分,我们分别进行介绍:

(一)文件头

我们先看看Rinex3.04版本的说明文档中对文件头格式的说明:

image-20220930132004228

我们发现图表的最后一列有一列FORMAT,这里的FORMAT指【FORTRAN 95/2003标准中的读写格式定义】

具体有:

  • An: 表示以n个字符宽度输出字符串
  • Fn.m: 表示以n个字符宽输出浮点数,小数点后占m个字符宽度
  • In[.m]: 表示以n个字符宽输出整数,至少输出m位数字(不足以“0”补齐),方括号表示可选,In表示输出占n个字符宽的整数,即n位整数,不足也不需以“0”补齐
  • nX: 表示向右跳过n个字符的宽度
  • Tn: 表示输出位置移动到本行第n列

例如F9.2.11X就指表示以9个字符宽输出浮点数,小数点后占2个字符宽度,且向右跳过11个字符的宽度.

在了解了格式之后我们给出一个Rinex格式的文件的文件头结合上图介绍:

1
2
3
     3.04           N: GNSS NAV DATA    M: MIXED            RINEX VERSION / TYPE
ssrcrin-13.7.0x 20220101 000000 UTC PGM / RUN BY / DATE
END OF HEADER

先看第一行,“RINEX VERSION / TYPE”说明第一行写的是Rinex格式的版本和该文件的类型,”3.04”说明该文件是3.04版本的,我们想要读懂它就需要看Rinex304的说明文档,“N: GNSS NAV DATA”说明这是文件存的是导航电文数据,“M: MIXED”说明该文档存有多个导航系统的数据;

第二行“PGM / RUN BY / DATE”给出了创建当前文件的程序的名称是ssrcrin-13.7.0x,没有写创建当前文件的机构的名称,创建当前文件的时间是20220101 000000,格式是”yyyymmdd hhmmss”,采用的时间是”UTC”时间,即协调世界时;

第三行“END OF HEADER”说明文件头结束。

(二)数据

下图是Rinex3.04版本的说明文档中对数据格式的说明:

image-20220930140604755

我们结合一颗GPS卫星的数据进行分析:

1
2
3
4
5
6
7
8
G24 2022 01 01 02 00 00 2.766801044345E-04 7.958078640513E-13 0.000000000000E+00
7.200000000000E+01-5.281250000000E+00 5.369152218170E-09 7.382124868389E-01
-3.110617399216E-07 1.224164501764E-02 7.973983883858E-06 5.153692775726E+03
5.256000000000E+05-8.381903171539E-08 2.017266027501E+00 1.136213541031E-07
9.341236686746E-01 2.133437500000E+02 7.961493677997E-01-8.411778955786E-09
-7.186013612025E-10 1.000000000000E+00 2.190000000000E+03 0.000000000000E+00
2.000000000000E+00 0.000000000000E+00 2.328306436539E-09 7.200000000000E+01
5.184180000000E+05 4.000000000000E+00

解算卫星在WGS-84坐标系的坐标的参数有:

G24是卫星编号,后面4个数据分别是Toc、卫星钟差、卫星钟漂、卫星钟漂变化率,第二行是第二行4个数据分别是IODE、Crs、Δ n和M0,并在后面标好了单位,如Crs的单位是(meters)米,M0的单位是(radians)弧度。之后各行的数据对照官方文档一一对应即可。

四.总结

导航电文不难看懂,难的是耐下心来对照官方说明文档搞懂各行各个数据的意义,在读懂了导航电文的含义后,接下来的步骤就是解算卫星在WGS-84坐标系下的的坐标,我会在之后的文章中介绍。本文章仅代表个人观点和看法,难免会有错误和疏漏,如有错误希望大家可以和我指出ღ( ´・ᴗ・` )。

五.计算程序

计算部分按公式一步步推就行了,作者很懒,详细的步骤就不给出了,值得一提的是树上给的公式和常量很多是错的,所以建议根据PPT上的公式进行程序的编写,需要详细步骤的我推荐一下这篇文章:https://blog.csdn.net/tyst08/article/details/102462810,公式都是正确的,写的很详细很不错,可以一步步跟进编写。

End~~ 撒花ฅ>ω<*ฅ花撒