📄 rinex.h
字号:
#ifndef RINEX_H
#define RINEX_H
#include "Time.h"
#include "Coordinate.h"
#define _MAX_RNX_PROGRAM_NUMBER 20
#define _MAX_RNX_AGENCY_NAME 20
#define _MAX_CREATE_TIME 20
#define _MAX_RNX_MARK_NUMBER 20
#define _MAX_RNX_MARK_NAME 20
#define _MAX_RNX_RCVR_SN 20
#define _MAX_RNX_RCVR_TYPE 20
#define _MAX_RNX_RCVR_VER 20
#define _MAX_RNX_ANT_SN 20
#define _MAX_RNX_ANT_TYPE 20
#define _MAX_CNT_OBS_TYPE 20 //观测值类型 L1 L2............
#define _MAX_CNT_OBS_NUM 24 //某历元观测到的卫星数
#define _MAX_OBS_NAME 20
#define _GOT_PSEUDO_RANGE P
#define _GOT_CARRIER_PHASE L
#define _GOT_DOPPLER D
#define _GOT_SNR S
#define _GPS_F1 125
#define _GPS_F2 135
typedef struct tagDELTA_UTC{
double A0;//terms of polynomial
double A1;//terms of polynomial
long T;//reference time for UTC data
long W;//UTC reference week number
}DELTA_UTC;//Almanac parameters to compute time in UTC
typedef DELTA_UTC *PDELTA_UTC;
typedef struct tagGMBNHDR {
int ver_major; //RINEX VERSION 版本号
int ver_minor;
char program_name[_MAX_RNX_PROGRAM_NUMBER];//Name of program creating current file
char agency_name[_MAX_RNX_AGENCY_NAME];//Name of agency creating current file
char create_file_time[_MAX_CREATE_TIME];//Date of file creation
double ion_alpha[4];
double ion_beta[4];
DELTA_UTC delta_utc;
long leap_seconds;
long size;
long rec_num;
}GMNHDR; //导航电文头文件结构体
typedef GMNHDR *PGMNHDR;
typedef struct tagGMNREC {
int PRN;//卫星的PRN号
COMMONTIME TOC;//历元
GPSTIME TOE;
double ClkBias;//卫星钟偏差 s
double ClkDrift;//卫星钟的漂移 s/s
double ClkDriftRate;//卫星钟漂移速度 s/s2
double IODE;//Issue of Data,Ephemeris数据、星历发布时间
double Crs;//m
double DetlaN;//rad/s 广播轨道—1
double M0;//rad
double Cuc;//rad
double e;//轨道偏心率 广播轨道—2
double Cus;//rad
double SqrtA;//sqrt(m)
double toe;//星历的参考时刻 GPS周内的秒数
double Cic;//rad
double Omega;//rad 广播轨道—3
double Cis;//rad
double i0;//rad
double Crc;//m
double omega;//rad 广播轨道—4
double OmegaDot;//rad/s
double iDot;//rad/s
double CodesOnL2Channel;//L2上的码
double GPSWeek;//GPS周数,不是1024的余数
double L2PDataFlag;//P码数据标记 广播轨道—5
double SVAccuracy;//卫星精度
double SVHealth;//卫星健康状态
double TGD;//s
double IODC;//钟的数据龄期 广播轨道—6
double TransTimeOfMsg;//电文发送时刻(单位为GPS周的秒,通过交接字(HOW)中的Z计数得出)
double Spare1;//拟合区间
double Spare2;
double Spare3; // 广播轨道—7
} GMNREC; // 导航电文信息记录结构
typedef GMNREC *PGMNREC;
/*
typedef struct tagGMN
{
GMNHDR hdr;
GMNREC record;
} GMN;//导航电文信息结构
typedef GMN *PGMN;
*/
///////////////////////////////////////////////// 以上是导航电文 //////////////////////////////////////////////////////
///////////////////////////////////////////////// 以下是观测值信息 ////////////////////////////////////////////////////
typedef enum tagGPSOBSTYPE
{ // GPS观测值类型的枚举
UNKNOWN,L1,L2,P1,P2,S1,S2,C1,D1,T1,L5
} GPSOBSTYPE;
typedef GPSOBSTYPE *PGPSOBSTYPE;
/*
const int _MAX_ROID = 3;
typedef struct tagGPSOBSPROP// 观测值
{
char name[_MAX_OBS_NAME]; // 观测值名
GPSOBSTYPE type; // 类型
double frequency; // 频率
unsigned char wl_fact; // 波长因子 unsigned char wl_fact;
double precision; // 精度
char obs_id[_MAX_ROID]; // ID–RINEX的观测值标示
unsigned char wl_pos; // 波长因子的序号
} GPSOBSPROP;
typedef GPSOBSPROP *PGPSOBSPROP;
*/
typedef struct tagGMOHDR {
int ver_major;
int ver_minor;
char mark_number[_MAX_RNX_MARK_NUMBER];//天线标志编号(点名)
char mark_name[_MAX_RNX_MARK_NAME];//天线标志名称
char rcvr_sn[_MAX_RNX_RCVR_SN];//接收机序列号
char rcvr_type[_MAX_RNX_RCVR_TYPE];//接收机类型
char rcvr_ver[_MAX_RNX_RCVR_VER];//接收机版本号
char ant_sn[_MAX_RNX_ANT_SN];//天线序列号
char ant_type[_MAX_RNX_ANT_TYPE];//天线类型
CRDTOPOCENTRIC ant_delta;//Antenna height,Eccentricities of antenna center
CRDCARTESIAN approx_pos;//Approximate marker position (WGS84)
COMMONTIME start;//Time of first observation record
COMMONTIME end; //Time of last observation record
int interval;//Observation interval in seconds
double leap_seconds;//自1980 1 6 以来的跳秒数
int obs_type_number;//Number of different observation types stored in the file
int obs_type_list[_MAX_CNT_OBS_TYPE];//Observation types
long size;//有记录的卫星数量
} GMOHDR;//GPS观测值信息头
typedef GMOHDR *PGMOHDR;
typedef struct tagGMOREC{ //GPS观测值
COMMONTIME epoch; // 历元时刻
int sign_of_use; //历元标志,0 表示有效
int num_sat; // 卫星数
int prn_lst[36]; // 卫星列表
double rcvr_clk_bias; // 接收机钟的偏差
double value[_MAX_CNT_OBS_NUM][_MAX_CNT_OBS_TYPE]; // 观测值的数值 行表示卫星数,列表示观测类型L1 L2
} GMOREC;
typedef GMOREC *PGMOREC;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -