日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分别用精密星历和广播星历计算卫星坐标 -- 对 GNSS 第一次编程的总结

發布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分别用精密星历和广播星历计算卫星坐标 -- 对 GNSS 第一次编程的总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019/9/24
最近上GNSS 課,老師布置了編寫讀取廣播星歷和精密星歷來計算衛星坐標的作業,這篇文章對其進行一個簡單的總結。
星歷下載:https://blog.csdn.net/Gou_Hailong/article/details/100809806

一、用到的知識點

1、旋轉矩陣

百度百科
2、拉格朗日插值

百度百科
3、RINEX 也就是廣播星歷的數據格式
參考博客

4、SP3

(圖片來源于百度文庫)
參考博客

二、要注意的問題

1、用 actan2 函數

2、XXDXX字符串轉double 用函數

double st2d(char *str) { //將"aDb"格式數字轉換為doubledouble f;char *pEnd;f = strtod(str, &pEnd);f *= pow(10, strtod(pEnd + 1, NULL));return f; }

3、截取子串的函數

char st[85] = "";//求子串用到 char *substr(char *buf, int pos, int len) { //求子串memset(st, '\0', sizeof(st));return strncpy(st, buf + pos, len); }

4、調試過程中如果出現 stack overflow 問題,
解決方案:屬性->鏈接器->系統->堆棧保留大小 改的大一些

5、調用 strcpy、strcat 等函數時會提示 _CRT_SECURE_NO_WARNINGS 警告,原因是這些函數不安全,可能會造成內存泄露等。
解決方案1:
在頭部加宏定義:

#define _CRT_SECURE_NO_WARNINGS

解決方案2:
在項目 -> 屬性 -> C/C++ -> 預處理器 -> 預處理器定中添加 _CRT_SECURE_NO_WARNINGS 這個預定義。
2020/5/12
應某些朋友的請求,終于抽出時間來介紹自己當時所做的工作,詳見如下:

三、算法原理

由于時間太久,再看代碼的話,不免有些生疏(我是誰,我在哪,這是我寫的嗎?)還好教材比較詳細,就不費功夫自己整理遼。

總結:用廣播星歷計算衛星位置比較復雜,用精密星歷計算衛星位置就用到了拉格朗日內插而已。

聲明:上圖出自教材《GPS測量與數據處理》(李征航 黃勁松 編著 第三版)武漢大學出版社 P75始 此圖出于方便自己和他人學習查閱之目的,如有侵權,請聯系作者刪除!

四、源碼簡介

當時在完成編程作業的時候用的是C語言,后來學了fortran 感覺星歷文件就是設計的用fortran 讀的。所以,最近又寫了fortran 的版本(沒寫完)
1.C語言版本
程序結構框架:

此程序自帶了算例文件(路徑data/8.28)是2019/8/28日的廣播星歷和精密星歷文件。程序輸出(路徑data/out)

brdcxx.txt //這是用廣播星歷計算出來的xx號衛星的坐標 spxx.txt //這是用精密星歷計算出來的xx號衛星的坐標 detxx.txt //這是兩者之間的差值 廣-精 //這三個文件存儲的數據格式都是 sec x y z time //其中 sec 是一天中第幾秒 單位 s // xyz 是衛星坐標 單位 m // time 是鐘改正 單位 1e-6 s

輸出文件可用matlab 等軟件進行繪圖。
廣播星歷結構體:

精密星歷結構體:

感興趣的朋友可以下載:
https://download.csdn.net/download/Gou_Hailong/12413077
勞動所得,賺點積分嘛。(無積分者接受有償提供源碼,嘿嘿嘿)如果使用中遇到問題歡迎私信我或聯系我的qq,但是我水平有限,可能解決不了您的問題,但是我會盡力的!
值得注意的一點是:此程序要配置Egien 庫:

1.Fortran版本(只實現了讀文件)
https://blog.csdn.net/Gou_Hailong/article/details/106085616

參考/引用文章

[1] 百度百科:https://baike.baidu.com/item/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E6%8F%92%E5%80%BC%E5%85%AC%E5%BC%8F/4285592?fr=aladdin [2] 百度百科:https://baike.baidu.com/item/%E6%97%8B%E8%BD%AC%E7%9F%A9%E9%98%B5/3265181?fr=aladdin [3] Miaow678-CSDN博主:https://blog.csdn.net/Miaow678/article/details/83860975 [4] 靈影葬-CSDN博主:https://blog.csdn.net/liuci3234/article/details/21971241 [5] 流浪豬頭拯救地球-CSDN博主:https://blog.csdn.net/Gou_Hailong/article/details/106085616

總結

以上是生活随笔為你收集整理的分别用精密星历和广播星历计算卫星坐标 -- 对 GNSS 第一次编程的总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。