【导航定位】GNSS数据协议-RINEX OBS
RINEX协议
RINEX(Receiver INdependent EXchange format,与接收机无关的交换格式)是一种在GPS测量应用中普遍采用的标准数据格式,该格式采用文本文件形式(ASCII码)存储数据数据记录格式与接收机的制造厂商和具体型号无关。目前RINEX版本已经发布到了4.xx版,但主流仍使用3.xx版。
最新版本是2024年10月发布的rinex4.02版本https://files.igs.org/pub/data/format/rinex_4.02.pdf(edit by 20250328)
RINEX协议主要覆盖三类文件:
- 1.Observation data file(观测数据)
- 2.Navigation message file(导航信息如星历等)
- 3.Meteorological data file(气象数据)
在GNSS导航定位中,我们主要关注前两种,GNSS观测数据和GNSS星历数据。
RINEX命名格式
文件名主体的所有元素必须是大写ASCII字母或数字,一共8个元素且所有元素长度固定,前六个以下划线“_”分隔。文件类型和压缩字段(扩展名)使用句号“.”作为分隔符,并且必须是ASCII字符和小写字母。
文件名构成元素如下表(第二行为所占字符数):
Name | S | Start Time | Period | Data Freq. | Content | Format | Compression |
---|---|---|---|---|---|---|---|
9 | 1 | 11 | 3 | 3 | 2 | 3 | 2-3 |
站点信息 | 数据来源 | 开始时间 | 数据持续时间 | 数据更新频率 | 数据类型 | 文件格式 | 压缩格式 |
- Name/站点信息:格式为XXXXMRCCC,其中XXXX为IGS站点名,M和R分别为该站点和接收机的Monument号,范围(0-9);CCC为ISO国家码
- S/数据来源:R表示接收机数据,S表示实时数据流,U表示位置来源
- Start Time/开始时间:年日时分,分别占4、3、2、2个字符
- Period/数据持续时间:前两个字符表示长度,第三个字符表示单位,单位有M(分钟)、H(小时)、D(天)、Y(年)、U(未指定)
- Data Freq./数据更新频率:前两个字符表示长度,第三个字符表示单位,C(100Hz)、Z(Hz)、S(秒)、M(分钟)、H(小时)、D(天)、U(未指定)
- Content/数据类型:第一个字符表示卫星系统星座标识位,可表示为G(GPS)、R(GLONASS)、E(Galileo)、J(QZSS)、C(北斗)、I(IRNSS)、S(SBAS);第二个字符表示文件类型,可表示为O(观测数据)、N(导航信息)、M(气象数据)。
- Format/文件格式:一般为”.rnx”,若文件经过压缩,则为”.crx”
- Compression/压缩格式:格式包括:".gz",".Bz2”和“.zip”
示例:ALGO00CAN_R_20121601000_15M_01S_GO.rnx.gz
表示站点名为ALGO,站点和接收机的Monument号均为0,来自CAN国家也就是加拿大的接收机数据,开始时间为2012年的第160天10:00,数据持续时间为15min,数据更新频率为1秒的GPS观测数据,文件格式为.rnx,压缩方式为.gz。
RINEX OBS文件格式
RINEX文件由文件头和数据记录两节组成,文件头用于存放与整个文件有关的全局性信息,位于每个文件的最前部,61-80列是标签信息,以“END OF HEADER”来表示结束。
1. RINEX版本和文件类型
3.02 OBSERVATION DATA M (MIXED) RINEX VERSION / TYPE
RINEX版本号为3.02。
OBSERVATION DATA表示该数据文本属于观测数据。
M (MIXED) 表示观测数据包含不同类型的观测,如伪距和多普勒频率。
2. 固件版本与采集时间
Alloy 6.21 SMO 20240101 020304 UTC PGM / RUN BY / DATE
Alloy 6.21表示该数据使用的是Trimble Alloy接收机,固件版本6.21。
SMO表示生成文件的机构缩写
DATE表示生成文件的日期
HKCL MARKER NAME
MARKER NAME表示天线标识名称
23004M001 MARKER NUMBER
MARKER NAME标识天线标识的编号
GEODETIC MARKER TYPE
MARKER TYPE标识天线标识的类型
SMO Lands Department HKSAR OBSERVER / AGENCY
OBSERVER表示观测单位
AGENCY表示机构名称
6246R40045 TRIMBLE ALLOY 6.21 REC # / TYPE / VERS
该行表示接收机的编号、类型和版本
4624A17034 TRM59800.00 SCIT ANT # / TYPE
该行表示接收机的编号和类型
-2392740.9396 5397563.0493 2404757.8653 APPROX POSITION XYZ
APPROX POSITION XYZ表示近似的接收机大地坐标
0.0083 0.0000 0.0000 ANTENNA: DELTA H/E/N
ANTENNA:DELTA H/E/N 表示
H:天线参考点相对于标记物的高度
E/U:ARP在水平方向相对于标记物的偏心度
G 15 C1C L1C S1C C1X L1X S1X C2W L2W S2W C2X L2X S2X C5X SYS / # / OBS TYPESL5X S5X SYS / # / OBS TYPES
S 3 C1C L1C S1C SYS / # / OBS TYPES
R 12 C1C L1C S1C C1P L1P S1P C2C L2C S2C C2P L2P S2P SYS / # / OBS TYPES
E 15 C1X L1X S1X C5X L5X S5X C7X L7X S7X C8X L8X S8X C6X SYS / # / OBS TYPESL6X S6X SYS / # / OBS TYPES
J 15 C1C L1C S1C C1X L1X S1X C1Z L1Z S1Z C2X L2X S2X C5X SYS / # / OBS TYPESL5X S5X SYS / # / OBS TYPES
C 9 C2I L2I S2I C7I L7I S7I C6I L6I S6I SYS / # / OBS TYPES
SYS / # / OBS TYPES表示系统和观测类型
G S R E J C:分别表示GPS/SBAS/GLONASS/Galileo/QZSS/Beidou
第二个数字表示观测到的观测值类型的数量。
类似于C1C这种形式表示的是观测值的类型,
其中,第一个字母为观测值的类型,C1C中的第一个字母包含如下几类:C表示观测的是伪距,L表示的是载波,S表示的是原始信号强度(载噪比),D表示多普勒观测值,X表示接收机频道编号
第二个数字表示波段,
1 = L1 (GPS, QZSS, SBAS, BDS) G1 (GLO) E1 (GAL) B1C/B1A (BDS)
2 = L2 (GPS, QZSS) G2 (GLO) B1 (BDS)
3 = G3 (GLO)
4 = G1a (GLO)
5 = L5 (GPS, QZSS, SBAS, NavIC/IRNSS) E5a (GAL) B2a (BDS)
6 = E6 (GAL) L6 (QZSS) B3/B3A (BDS) G2a (GLO)
7 = E5b (GAL) B2/B2b (BDS)
8 = E5a+b (GAL) B2a+b (BDS)
9 = S (NavIC/IRNSS)
第三个字母表示属性,
A = A channel (GAL, NavIC/IRNSS, GLO)
B = B channel (GAL, NavIC/IRNSS, GLO)
C = C channel (GAL, NavIC/IRNSS) C/A code-based (GPS,GLO,QZSS, SBAS)
D = Semi-codeless (GPS) Data Channel (BDS, QZSS)
E = C/B (QZSS) E channel (QZSS)
I = I channel (GPS,GAL, QZSS, BDS)
L = L channel (L2C GPS, QZSS)
P channel (GPS, QZSS)
M = M code-based (GPS)
N = Codeless (GPS)
P = P code-based (GPS,GLO) Pilot Channel (BDS)
Q = Q channel (GPS,GAL,QZSS,BDS)
S = D channel (GPS, QZSS) M channel (L2C GPS, QZSS)
W = Based on Z-tracking (GPS)(see text)
X = B+C channels (GAL, NavIC/IRNSS) I+Q channels (GPS,GAL, QZSS,BDS) M+L channels (GPS, QZSS) D+P channels (GPS, QZSS, BDS)
Y = Y code-based (GPS)
Z = A+B+C channels (GAL) D+P channels (BDS) I+Q channels. (QZSS) D+E channels. (QZSS)
(Rinex4.0版本)
1.000 INTERVAL
INTERVAL表示观测数据采集的时间间隔
2024 01 01 01 00 00.0000000 GPS TIME OF FIRST OBS
TIME OF FIRST OBS:表示观测数据开始的历元
2024 01 01 01 59 59.0000000 GPS TIME OF LAST OBS
TIME OF LAST OBS:表示观测数据结束的历元
G L2X -0.25000 SYS / PHASE SHIFT
R L1P 0.25000 SYS / PHASE SHIFT
R L2C -0.25000 SYS / PHASE SHIFT
J L2X 0.25000 SYS / PHASE SHIFT
SYS/PHASE SHIFT表示用于生成与周期性偏移相一致的相位的相位偏移校正,需要注意的是该行在4.0版本被弃用。
DBHZ SIGNAL STRENGTH UNIT
SIGNAL STRENGTH UNIT:表示信号强度的单位,此处为Db/Hz
6 R03 5 R04 6 R05 1 R14 -7 R15 0 R16 -1 GLONASS SLOT / FRQ #
该行表示GLONASS的频率和卫星的对应关系(GLONASS是频分多址FDMA)
GLONASS COD/PHS/BIS
该行表示用于对齐伪距和载波相位观测值的GLONASS相位偏差。
18 LEAP SECONDS
LEAP SECONDS表示跳秒
COMMENT
EPOCH COUNT m00 m10 m20 m30 m40 m50 COMMENT---- ---- ---- ---- ---- ---- COMMENTB 600 600 600 600 600 600 COMMENT
COMMET表示附加的说明
END OF HEADER
END OF HEADER表示文件头的结尾
之后就进入到了观测值文件数据块的部分。
其中,
> 2024 1 1 1 0 0.0000000 0 48 .000000002000
该行为数据起始行,
>表示数据行起始标识符
后面的时间(2024 1 1 1 0 0.0000000)为观测数据时间,分别对应年 月 日 时 分 秒
之后的数据位(这里是0)是历元观测数据标识:0:OK 1:前一历元和后一历元出现电源故障
之后的数据位(这里是48)表示当前历元观测到的卫星数量,也就是下面会有多少行该历元的卫星数据,
最后的数据位(例子这里是.000000002000)为接收机钟偏差修正值。
C 1 37011636.08606 192729396.60906 36.900 37011632.16806 149030668.65906 40.200 37011629.92606 156608469.88906 38.300
C表示这颗卫星的星座,C表示Beidou,G表示GPS,R表示GLONASS,E表示Galileo、J表示QZSS,S表示SBAS
1:表示这颗卫星的PRN,也就是编号。
后面的数据依照文件头的SYS / # / OBS TYPES里的顺序来依序查看,例如,本案例中北斗数据次序为C2I L2I S2I C7I L7I S7I C6I L6I S6I,则这一行后面的9个数据则依次对应C2I L2I S2I C7I L7I S7I C6I L6I S6I,第一个为2频点的I支路伪距,第二个为2频点的I支路载波,第三个为2频点的I支路多普勒,第四个2频点的I支路伪距,以此类推。
而其他行也同样可按照类似的方式进行解读。
Ref:
https://zhuanlan.zhihu.com/p/668064086