DAY8---GINav学习(SPP)

前面的学习,主要是关于文件的读取(reaad_infile.m)文件,对于spp具体的操作并未进行整体的介绍。

今天开始,将从expose.m(主函数)里面的文件进行入手,整体介绍spp。

1 执行定位的文件-(expose.m)

 1.1 读取输入文件-(read_infile.m)

“obsr” 是指观测数据(Observation Data)的接收机部分。它包含了接收机接收到的用于定位的观测数据。观测数据是由接收机记录并测量的卫星信号数据。这些数据包括卫星的伪距(pseudorange)和相位观测(phase measurement),以及其他与导航和定位相关的参数,如卫星的方位角、仰角、信号强度等;是定位过程中的关键输入之一,用于计算接收机的位置、速度和时钟偏差等参数。通过接收多个卫星的观测数据,并结合卫星的导航数据,可以实现精密的定位和导航。“obsr” 变量通常是一个结构体,包含了解析和处理观测数据所需的各种字段和参数。这些字段和参数包括接收机的位置、观测数据的时间标记、卫星编号、信号类型、观测值等。

“obsb” 是指观测数据(Observation Data)的基准站部分。它包含了用于差分定位的基准站观测数据。观测数据是由接收机记录并测量的卫星信号数据。基准站观测数据是在RTK定位中用于计算差分修正的数据。差分定位是一种技术,通过比较基准站和流动站(或移动站)的观测数据,可以减小定位误差。基准站观测数据提供了一个参考点,允许对流动站的观测数据进行差分修正,从而提高定位的精度。“obsb” 通常是一个结构体,包含了解析和处理基准站观测数据所需的各种字段和参数。这些字段和参数包括基准站的位置、观测数据的时间标记、卫星编号、信号类型、观测值等。

“nav” 是指导航数据(Navigation Data)。它包含了与卫星轨道和钟差等导航信息相关的数据。导航数据是由GNSS(全球导航卫星系统)卫星发射并广播的数据,包括卫星的位置、钟差、卫星轨道参数等。这些信息对于进行高精度的定位和导航至关重要。“nav” 通常是一个结构体,包含了解析和处理导航数据所需的各种字段和参数。这些字段和参数可能包括卫星的编号、卫星轨道参数、钟差修正值等。导航数据用于计算卫星的位置和钟差,从而进行定位和导航的精确计算。差分定位、RTK(Real-Time Kinematic)定位等技术都需要使用准确的导航数据来实现高精度的定位。

在进行spp的时候,不进行imu这一部分。

在该部分只包括观测文件与星历文件。

修改代码,read_infile.m文件如下。

function [obsr,obsb,nav]=read_infile(opt,file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%read input file,include rover obs file, base obs file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Copyright (C) 2020-2025, by Kai Chen, All rights reserved.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
global glc gls
obsr=gls.obs; obsb=gls.obs; nav=gls.nav; 
%obsr: "obsr"代表流动站(Rover Station)的观测数据。
%obsr文件包含了流动站接收到的卫星观测数据,包括伪距和载波相位观测数值。

% 读取观测文件(基准站的观测数据)
if ~strcmp(file.obsr,'')%如果流动站的观测数据里面不为空
    %"file.obsr"代表流动站观测数据文件(Rover Station Observation File)
    %这些文件通常以”.obsr"的扩展名来表示。
    [obsr,nav]=readrnxobs(obsr,nav,opt,file.obsr);%调用readrnxobs()函数
    if obsr.n==0
        error('Number of rover obs is zero!!!');
    end
else
    error('Have no observation file for rover!!!');
end
% 读取观测文件(流动站的观测数据)
if ~strcmp(file.obsb,'')%如果基准站的观测数据里面不为空
    %"file.obsb"表示基准站观测数据文件(Base Station Observation File)。
    %这些文件通常以”.obsb"的扩展名来表示。
    [obsb,nav]=readrnxobs(obsb,nav,opt,file.obsb);%调用readrnxobs()函数
    if obsb.n==0&&opt.mode>=glc.PMODE_DGNSS&&opt.mode<=glc.PMODE_STATIC
        error('Number of base obs is zero!!!');
    end
else
    if opt.mode>=glc.PMODE_DGNSS&&opt.mode<=glc.PMODE_STATIC
        error('Relative positioning mode,but have no observation file for base station!!!');
    end
end
% 读取导航文件
if ~strcmp(file.beph,'')
    %“file.beph"是指广播星历文件(Broadcast Ephemeris),也称为星历数据文件。
    %这些文件通常以”.beph"的扩展名来表示。
    nav=readrnxnav(nav,opt,file.beph);%调用readrnxnav()函数
else
    error('Have no broadcast ephemeris file!!!');
end
fprintf('Info:Data preparation has been completed\n');
return

2.RINEX3.02文件

2.1头文件

使用示例GINav里面的观测文件为例,主要是关于RINEX3.02头文件的详细介绍。

头文件:(前两行)

3.02表示的RINEX文件的版本,OBSERVATION DATA表示的是接收机的类型:Mixed(MIXED)表示的是混合型的---RINEX VERSION / TYPE。

在一个RINEX格式文件的文件头部信息中,“cnvtToRINEX 3.02.0” 或 “convertToRINEX” 是由具体的软件程序或工具生成的说明性注释。它用于指示该RINEX文件是通过哪个版本的转换软件或工具生成的,以及所使用的具体版本号;“OPR” 是指操作员(Operator)的字段。它用于记录进行数据转换或生成RINEX文件的人员或操作员的相关信息;“28-Mar-19 06:06 UTC” 表示数据转换或文件生成的日期和时间。在这个例子中,即表示转换或生成RINEX文件的日期是2019年3月28日,时间是UTC时间;“PGM / RUN BY / DATE” 表示以下字段是用于指示转换软件或工具的名称(PGM),转换执行者的姓名或用户名(RUN BY),以及执行转换的日期(DATE)。

MARKER NAME表示测站名字为0833;MARKER NUMBER表示测站编号为0833;MARKER TYPE表示测站类型为GEODETIC。

GNSS Observer(GNSS观测者):这个字段记录了执行GNSS观测工作的人员的姓名、ID或其他标识符。GNSS观测者是负责在测站上进行GNSS观测和数据收集的人员;Trimble(观测设备制造商):这个字段记录了用于GNSS观测的设备的品牌或制造商。在这个例子中,“Trimble” 是一家广为人知的GNSS设备制造商,其设备被广泛用于测量、测绘和导航领域;OBSERVER / AGENCY(观测者或代理机构):这个字段记录了观测者或代理机构的名称。它表示执行GNSS观测的人员或组织,可以是个人、研究机构、测绘公司或其他相关机构。

REC表示的是接收机的序列号为5413460833;TYPE表示的是接收机的类型为TRIMBLE R10;VERS表示的是接收机的版本为4.84。

 ANT表示天线型号为TRMR10;TYPE表示天线类型为NONE(没有定义的格式)。

表示的是测站近似位置的坐标:X、Y与Z。

H表示的是天线在高程方向的偏差,E表示的是在东方向的偏差;N表示的是在南方向的偏差。

 

 SYS / # / OBS TYPES 表示的是系统/编号/观测类型。

系统

类型

波段(Band)

种类

G:GPS系统

R:GLONASS系统

C:BDS系统

E:Galileo系统

J:QZSS系统

I:INRSS系统

S:SBAS系统

C:测码伪距

L:载波相位

D:多普勒

S:信噪比

I:电离层延迟

X:接收机频道数目

1

2

3

4

5

6

7

8

9

0(ALL)

P:P码

C:C码

D:D码

Y:Y码

M:M码

INTERVAL表示的是接收器记录观测数据的时间间隔为1.000。

TIME OF FIRST OBS表示的是接收机时观测首次发生的时间,以GPS时为基准,为2019年3月28日3时17分33s。

TIME OF LAST OBS表示的是接收机最后一次观测的时间,以GPS时为基准,为2019年3月28日3时59分1s。

RCV CLOCK OFFS APPL(接收器时钟偏移应用)是一个与接收器时钟相关的参数,当RCV CLOCK PFFS APPL为0时,表示没有应用接收器的时钟偏移校正;当RCV CLOCK PFFS APPL为1时,示已应用接收器的时钟偏移校正。

 GLONASS SLOT / FRQ #表示的时GLONASS的槽位/频率编号,第一数字9表示的是由9个这种GLONASS的槽位/频率编号。

 SYS / PHASE SHIFT表示的是对应系统的相位偏移量。例如:L2X表示的是信号类型为L2C;-0.25000表示的是相位偏移量。

LEAP SECONDS表示的是跳秒数量为18。闰秒是为了调整协调世界时(Coordinated Universal Time,简称UTC)与地球自转速度之间的差异而引入的。地球自转速度的变化会导致地球日长度的微小变化,而为了保持UTC与地球自转一致,不定期地会在UTC中插入或删除闰秒。

  

OF SATELLITES表示的是卫星数量为41。

PRN / # OF OBS 表示每个PRN码对应的观测次数的简写。PRN表示的是伪随机噪声(Pseudo Random Noise)码,它是用于识别卫星的唯一标识符;# OF OBS表示观测次数,即卫星被观测或接收到的次数。

 “DBHZ” 是一个信号强度单位,表示信号强度的级别或水平

文件头结束。

3.广播星历格式说明(.n)

3.1 头文件

 左边为信息,右侧为对应的标签(第60个字符)

第一行:记录了RINEX的版本号和观测类型

第二行:创建本数据文件所采用的:程序名称、单位名称及日期

第三行:注释行

第四行:历书中电离层参数:A0~A4

第五行:历书中电离层参数:B0~B3(第五行第六行的参数可做电离层改正)

第六行:用于计算UTC时间的历书参数;A0,A1为多项式系数;T为UTC数据的参考时刻;W为UTC参考周数,为连续计数

第七行:跳秒,GPS时与UTC时之差

第八行:"END OF HEADER"头文件的结束标志

3.2 数据部分

具体参数意义见下表

 4.广播星历格式说明(.p)

4.1 头文件

 第1行:3.03表示RINEX版本,为导航文件的数据,M为混合数据。

第2行:PGM表示该操作、程序或流程的名称或类型;RUN BY表示操作、程序或流程的运行者、执行者或相关人员;DATE示操作、程序或流程的执行日期或时间。

第3-5行:注释行。

第6-9行:TIME SYSTEM CORR表示与时间系统校正相关的信息,GAUT表示一种时间系统或参考框架的名称或标识符。9.3132257462e-09-5.329070518e-15表示的时间系统校正或时间偏移量;259200表示一个时间量;2046表示一个时间的索引、标识符或其他相关信息。

第10行:LEAP SECONDS表示为跳秒为18。

4.2数据部分

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值