• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签: 卫星位置  N  O  

资源简介

用于读取N文件与O文件,计算某一历元的卫星位置

资源截图

代码片段和文件信息

#include
#include
#include

int main(){

double D2R(double deg);

int i = 0;
double n[50] n0 nn t tk Mk Ek Vk Yk Gu Gr Gi uk rk ik xk yk zk X Y Z Lk UT yy mm JD gpsz;

FILE *fp;
fp = fopen(“gnss_gps.txt“ “r“);

if (fp == NULL){
printf (“文件打开失败!\n“);
return 0;
}

while (! feof (fp)){
fscanf(fp “%lf“ &n[i]);
i++;
}

n0 = (sqrt(3986005E+8))/pow(n[17] 3);
nn = n0 + n[12];/*计算卫星运行的平均角速度*/

UT = n[4] + (n[5] / 60) + (n[7] / 3600);/*民用日的时分秒化为实数时*/
    //将6点5分06秒变成6+5/60+6/3600

n[1] = n[1] + 2000;

if (n[2] <= 2){
yy = n[1] - 1;  
        mm = n[2] + 12;
}

if (n[2] > 2){
yy = n[1];
mm = n[2];
}

JD = (int)(365.25 * yy) + (int)(30.6001 * (mm + 1)) + n[3] + (UT / 24) + 1720981.5;/*化为儒略日*/
gpsz = (int)((JD - 2444244.5) / 7);

t = (JD - 2444244.5 - 7 * gpsz) * 24 * 3600;

tk = 60*15 + t - n[18];/*tk1为中间值,用以判断tk与正负302400的关系,然后返回到tk上*/

while (tk > 302400 || tk < -302400){
if (tk > 302400){
tk = tk - 604800;
}
else
{
tk = tk + 604800;

评论

共有 条评论