使用C++卫星坐标计算


C++读取txt文本中RINEX格式星历文件,并计算出该时刻卫星在地固坐标系中坐标。
资源截图
代码片段和文件信息
#include“标头.h“
void main()
{
//1***********定义参数变量
Time time;/*年月日时分秒*/
double a0 = 0;/*种差*/
double a1 = 0;/*钟速*/
double a2 = 0;/*钟漂*/
  //2***********
double IODE = 0;/*卫星钟改正参数的数据龄期*/
double Crs = 0;
double Delta_n = 0;/*平均角速度改正数*/
double M0 = 0;/*参考时刻t0的平近点角*/
//3***********
double Cuc = 0;
double e = 0;/*卫星轨道椭圆离心率*/
double Cus = 0;
double sqrt_a = 0;/*卫星轨道椭圆长半径的平方根*/
//4***********
double t0 = 0;    /*卫星参考时刻*/
double Cic = 0;
double OMEGA_0 = 0;/*参考时刻t0的升交点赤经*/
double Cis = 0;
//5***********
double i0 = 0;/*参考时刻t0的轨道平面倾角*/
double Crc = 0;
double w = 0;/*近地点角距*/
double OMEGA_DOT = 0;/*升交点赤经的变化率*/
 //6***********
double IDOT = 0;/*卫星轨道平面倾角i0的变化率*/
double cflgl2 = 0;/*L2上的CA码伪距指示*/
int weekno = 0;/*GPS星期数*/
double pflgl2 = 0;/*L2上的P码伪距指示*/
  //7***********
double svacc = 0;/*本星的精度指示*/
double svhlth = 0;/*卫星健康指标*/
double tgd = 0;/*电离层延迟改正参数*/
double IODC = 0;/*卫星钟改正参数的数据龄期*/
//8***********
double ttm = 0;/*信息传输时间*/
double fi = 0;/*星历拟合区间标志*/
double Spare = 0;
double spare = 0;
FILE *fpout *fin;
fpout = fopen(“星历.txt“ “r“);
if (!fpout)
{
cout << “open the file errror!
“;
}
else
{
cout << “open the file success!
“;
}
//一、
fscanf(fpout “%d %d %d %d %d %lf %lf %lf %lf“ &time.year &time.month
&time.day &time.hour &time.minute &time.second &a0 &a1 &a2);
//printf(“%d %d %d %d %d %.10lf %.10lf %.10lf %.10lf 
“ time.year time.month
// time.day time.hour time.minute time.second a0 a1 a2);
//二、
fscanf(fpout “ %lf %lf %lf %lf “ &IODE &Crs &Delta_n &M0);
//printf(“IODE:%.10lf 
 Crs:%.10lf 
 Delta_n:%.10lf 
 M0:%.10lf 
“ IODE Crs Delta_n M0);
//三、
fscanf(fpout “ %lf %lf %lf %lf “ &Cuc &e &Cus &sqrt_a);
//printf(“ %.10lf   %.10lf   %.10lf   %.10lf 
“ Cuc e Cus sqrt_a);
//四、
fscanf(fpout “ %lf %lf %lf %lf “ &t0 &Cic &OMEGA_0 &Cis);
//printf(“ %.10lf   %.10lf   %.10lf   %.10lf 
“ t0 Cic OMEGA_0 Cis);
//五、
fscanf(fpout “ %lf %lf %lf %lf “ &i0 &Crc &w &OMEGA_DOT);
//printf(“ %.10lf   %.10lf   %.10lf   %.10lf 
“ i0 Crc w OMEGA_DOT);
//六、
fscanf(fpout “ %lf %lf %lf %lf “ &IDOT &cflgl2 &weekno &pflgl2);
//printf(“ %.10lf   %.10lf   %.10lf   %.10lf 
“ IDOT cflgl2 weekno pflgl2);
//七、
/*fscanf(fpout “ %lf %lf %lf %lf “ &svacc &svhlth &tgd &IODC);
printf(“ %.10lf   %.10lf   %.10lf   %.10lf 
“ svacc svhlth tgd IODC);
*/

double tt0e;  //t为GPS周秒
GetGPSTime(time.year time.month time.day time.hour
time.minute time.second &t0e &weekno&GASTweek);//把数据分开读入到一个数组中存储
int l = 0;
double XK[21];
double YK[21];
double ZK[21];
for (int l = 0; l < 21; l++)
{
//计算平均角速度
double GM = 3986004.418e008;
double n n0;
n0 = sqrt(GM / (pow(sqrt_a 6)));
n = Delta_n + n0;

//规划时刻
t = t0e + l * 60;
double tk = t - t0e;
double Mk = M0 + n * tk;


// 迭代计算平近点角的计算
double Ek

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-08-01 23:06  根据提供的广播星历计算卫星坐标
     目录           0  2018-05-30 23:25  根据提供的广播星历计算卫星坐标.vs
     目录           0  2018-05-30 23:25  根据提供的广播星历计算卫星坐标.vs根据提供的广播星历计算卫星坐标
     目录           0  2018-05-30 23:25  根据提供的广播星历计算卫星坐标.vs根据提供的广播星历计算卫星坐标v14
     文件       40448  2018-08-01 23:06  根据提供的广播星历计算卫星坐标.vs根据提供的广播星历计算卫星坐标v14.suo
     目录           0  2018-07-30 09:23  根据提供的广播星历计算卫星坐标Debug
     文件     1093632  2018-05-30 23:09  根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.pdb
     目录           0  2018-05-30 23:25  根据提供的广播星历计算卫星坐标enc_temp_folder
     目录           0  2018-06-26 15:55  根据提供的广播星历计算卫星坐标enc_temp_folderd4bb85a82752428ecb172e4a9236af63
     文件        4761  2018-05-30 22:47  根据提供的广播星历计算卫星坐标enc_temp_folderd4bb85a82752428ecb172e4a9236af63源1.cpp
     目录           0  2018-07-30 09:25  根据提供的广播星历计算卫星坐标x64
     目录           0  2018-07-30 09:26  根据提供的广播星历计算卫星坐标x64Debug
     文件       74752  2018-07-30 10:19  根据提供的广播星历计算卫星坐标x64Debug根据提供的广播星历计算卫星坐标.exe
     文件      429592  2018-07-30 10:19  根据提供的广播星历计算卫星坐标x64Debug根据提供的广播星历计算卫星坐标.ilk
     文件      700416  2018-07-30 10:19  根据提供的广播星历计算卫星坐标x64Debug根据提供的广播星历计算卫星坐标.pdb
     目录           0  2018-07-30 09:28  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标
     文件        6528  2018-05-27 17:00  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标1.cpp
     目录           0  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug
     文件       67129  2018-05-27 17:04  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug1.obj
     文件       68783  2018-05-27 17:40  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标DebugGPS.obj
     文件      470016  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debugvc140.idb
     文件      364544  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debugvc140.pdb
     文件         270  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.log
     目录           0  2018-07-30 09:15  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tlog
     文件        3790  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tlogCL.command.1.tlog
     文件       79564  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tlogCL.read.1.tlog
     文件        3108  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tlogCL.write.1.tlog
     文件        1210  2018-07-30 09:23  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tloglink.command.1.tlog
     文件        2902  2018-07-30 09:23  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tloglink.read.1.tlog
     文件         538  2018-07-30 09:23  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tloglink.write.1.tlog
     文件           0  2018-07-30 09:25  根据提供的广播星历计算卫星坐标根据提供的广播星历计算卫星坐标Debug根据提供的广播星历计算卫星坐标.tlogunsuccessfulbuild
............此处省略29个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)