门外汉使用matlab成功解码RINEX格式的GPS观测数据的经历

这个经历起源于一个名为卫星导航与定位的课程作业,由于是跨专业学生,加之经常翘课,最后老师来了个课后作业,搞得我一脸懵逼,一开始没什么兴趣做,毕竟与我专业不是特别相关,后来想想搞定这个相当于在GPS数据处理的门口踩上一脚,还是蛮值得的,于是在交作业的最后一天开干,终于在自己搜资料以及同学的帮助下,花了一天的时间将其搞明白了,才发现,GPS解码也就这回事! 哈哈!

前面都是废话,现在来干货!

(1)直接上RINEX格式说明文件,我用的是下面两个文档,一个简单的,一个详细的:

         链接:http://pan.baidu.com/s/1jI3eZBo 密码:ka9v

再来更加干货的matlab程序代码,附带测试数据:http://download.csdn.net/detail/oshenxingtianxia/9875011

最后推荐一个牛逼的文件查看软件:UltraEdit  (这个软件是个神奇的存在,成功读取文件,它功不可没,因为我可以看着文件内容读,以确认自己写的代码是否正确。)

(2)首先得弄清楚你的GPS数据是什么格式的,据说有蛮多种格式,笔者用的是RINEX格式的GPS观测文件,也是所谓得“O文件”。注意,RINEX格式也有版本区别。

(3)RINEX的GPS观测文件的存储结构:

主要包括一个文件头和数据记录,即文件前面是一个格式固定的文件头,后面全部是数据。把我难住的其实就只有一点:后面的记录数据是怎样存放的?

【1】数据存放特点:每行最多存80个字符。这个就导致后面存放的数据的行数的不确定性,不过规律是一样的。

【2】数据存放类型:

头文件中有以下内容:

           22    L1    L2    C1    C2    P1    P2    D1    D2    S1# / TYPES OF OBSERV

                  S2    L5    C5    D5    S5    L7    C7    D7    S7 # / TYPES OF OBSERV
                   L8    C8    D8    S8                                              # / TYPES OF OBSERV

  这个表示观测记录的数据类型,“22”表示总的观测值类型数量,存放时就按照这个顺序来存储,且间隔是固定的。如果观测的卫星没有这个数据就空着。

【3】数据记录部分的存储结构:

          15  3 21  0  0  0.0000000  0 23R19G01G16G30G08G03G09G07R16G04G19G32
                                                                 R21R10G27G23R09R20G11S20S38S33S35

 前面是时间,“23”表示总的卫星数,后面是各个卫星名称的缩写,后面的观测数据也是按照这个顺序存放的,即当把相同时刻的卫星观测数据按照这个顺序存放,由于卫星数是个变数,导致后面的卫星数占的行数和一个历元占的行数也是不确定的。后面就是循环的了,下面你会看到:

 15  3 21  0  0 30.0000000  0 23R19G01G16G30G08G03G09G07R16G04G19G32
                             
                                   R21R10G27G23R09R20G11S20S38S33S35

可以看到,采样间隔是30秒。 

来个不一样的。

   RINEX FILE SPLICE; other post-header comments skipped       COMMENT (你没看错,你们居然还有这个,这里也让我懵逼半天)
 
      15  3 21  1  0  0.0000000  0 28R19G01G16G30G28G03G17G09G07R22R16G04
                             
                                 G19G32R21R10R11G27G23R09R20G11E14S20
                               
                                S38S33S35S36

上面的英文也会出现在记录文件中,略坑,卫星数也变了。 不过好在每个卫星的记录数据占的行数是固定的。

(4)就到这里了,相信跟我一样的门外汉也懂了吧。

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值