資源簡(jiǎn)介
用于讀取N文件與O文件,計(jì)算某一歷元的衛(wèi)星位置
代碼片段和文件信息
#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?(“文件打開(kāi)失敗!\n“);
return?0;
}
while?(!?feof?(fp)){
fscanf(fp?“%lf“?&n[i]);
i++;
}
n0?=?(sqrt(3986005E+8))/pow(n[17]?3);
nn?=?n0?+?n[12];/*計(jì)算衛(wèi)星運(yùn)行的平均角速度*/
UT?=?n[4]?+?(n[5]?/?60)?+?(n[7]?/?3600);/*民用日的時(shí)分秒化為實(shí)數(shù)時(shí)*/
????//將6點(diǎn)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與正負(fù)302400的關(guān)系,然后返回到tk上*/
while?(tk?>?302400?||?tk?-302400){
if?(tk?>?302400){
tk?=?tk?-?604800;
}
else
{
tk?=?tk?+?604800;
評(píng)論
共有 條評(píng)論