资源简介
附有一个实例导航文件 2.10 NAVIGATION DATA GPS(GPS) RINEX VERSION / TYPE
cnvtToRINEX 2.00.4 convertToRINEX OPR 26-Apr-10 08:24 UTC PGM / RUN BY / DATE
----------------------------------------------------------- COMMENT
0.1024D-07 0.1490D-07 -0.5960D-07 -0.1192D-06 ION ALPHA
0.8806D+05 0.3277D+05 -0.1966D+06 -0.1966D+06 ION BETA
0.186264514923D-08-0.621724893790D-14 405504 44 DELTA-UTC: A0,A1,T,W
15 LEAP SECONDS
END OF HEADER
代码片段和文件信息
#include “iostream.h“
#include “stdio.h“
#include “afx.h“
#include “math.h“
void readdata();//读取导航文件数据
void dealdata();//处理导航文件数据
typedef struct Navedata //定义导航数据存储结构
{
int PRN;//卫星的PRn号
int yearmonthdayhourminute; //卫星钟参考时刻
double second;
double a0a1a2; //卫星钟飘参数
double IODECrsDeltNM0; //数据星历发布时间,在轨道径向方向上周期改正正弦的振幅
double CuceCussqrtA; //轨道延迹方向上周期改正余弦振幅 、扁心率、轨道延迹方向上周期改正正弦振幅 、长半轴平方根
double ToeCicOMEGACis; //星历参考时刻、轨道倾角周期改正余弦项振幅、参考时刻升交点赤径主项、轨道倾角周期改正正弦项振幅
double i0CrcomegaOMEGADOT; //参考时间轨道倾角、在轨道径向方向上周期改正余余弦的振幅、近地点角距、升交点赤径在赤道平面中的长期变化
double IDOTL2CGPSWeekL2P; ////轨道倾角变化率、gps周等
double AccuracyofSatHealthofSatTGDIODC; //卫星精度、卫星健康、电离层群迟改正数
double eight1eight2eight3eight4;//导航数据第八行的参数(计算中不用)
};
typedef struct xyz
{
int prn;
double xyz;
};
#define allstarnum 9 //导航文件中需要计算的卫星的个数
struct Navedata stars[allstarnum];//定义每个卫星数据的结构数组
struct xyz positions[allstarnum]; //每个卫星坐标的结构数组
void readdata()//读取数据文件
{
CStdioFile fpt;
CString string;
BOOL isend=fpt.Open(“50191100.10n“CFile::modeRead);//打开导航文件
if(!isend)
printf(“file open failed!“);
int headlinenum=0;
while (isend)//读取头文件
{
isend=fpt.ReadString(string);
headlinenum++;
int headend=string.Find(“END OF HEADER“);
if (-1!=headend)
break;
}
fpt.SeekToBegin();//把指针指到文件的开头
for (int i=0;i isend=fpt.ReadString(string);
for (i=0;i {
//读取数据部分的第一行prnyear等
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%d %d %d %d %d %d %lf %lf %lf %lf“ &stars[i].PRN&stars[i].year&stars[i].month&stars[i].day&stars[i].hour&stars[i].minute&stars[i].second &stars[i].a0 &stars[i].a1 &stars[i].a2);
//读取IDOTCrsdeltn,m0;
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“&stars[i].IDOT&stars[i].Crs&stars[i].DeltN&stars[i].M0);
//读取cuc,e,cus,sqrta
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“&stars[i].Cuc &stars[i].e &stars[i].Cus &stars[i].sqrtA);
//读取toe,cic,omega,cis
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“&stars[i].Toe &stars[i].Cic &stars[i].OMEGA &stars[i].Cis);
//读取i0,crc,omega,omegadot
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“&stars[i].i0 &stars[i].Crc &stars[i].omega &stars[i].OMEGADOT);
//读取idot,l2c,gpsweek,l2p
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“ &stars[i].IDOT &stars[i].L2C &stars[i].GPSWeek &stars[i].L2P);
//读取accracyofsat等
isend=fpt.ReadString(string);
string.Replace(‘D‘‘e‘);
sscanf(string“%lf %lf %lf %lf“&stars[i].AccuracyofSat &stars[i].HealthofSat &stars[i].TGD &stars[i].IODC);
//读取eight等
isend=fpt.ReadString(stri
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1355928 2010-05-30 23:00 Debug\2008302590115.exe
文件 1734032 2010-05-30 23:00 Debug\2008302590115.ilk
文件 17027 2010-05-30 23:00 Debug\2008302590115.obj
文件 2626508 2010-05-30 14:19 Debug\2008302590115.pch
文件 2769920 2010-05-30 15:27 Debug\2008302590115.pdb
文件 132096 2010-05-30 23:00 Debug\vc60.idb
文件 69632 2010-05-30 15:27 Debug\vc60.pdb
文件 6488 2010-04-26 16:24 50191100.10n
文件 5286 2010-05-30 15:27 2008302590115.cpp
文件 4146 2010-05-30 13:42 2008302590115.dsp
文件 551 2010-05-30 09:11 2008302590115.dsw
文件 41984 2010-05-30 23:01 2008302590115.ncb
文件 54784 2010-05-30 23:01 2008302590115.opt
文件 501 2010-05-30 23:00 2008302590115.plg
目录 0 2010-05-30 15:27 Debug
----------- --------- ---------- ----- ----
8818883 15
- 上一篇:数据结构 吴陈 科学出版社 课后答案
- 下一篇:遥感影像几何纠正程序
评论
共有 条评论