資源簡介
基于MATLAB使用C語言的讀取GPS的rinex3.0的N文件,親測好用,特來分享
代碼片段和文件信息
function??[navData]?=?ReadNav
%%?打開導航文件
NAVfilepath?=?‘.\cuta1680.14p‘;
fid??????=??fopen(NAVfilepath);
gpsnav????????=?0;%記錄gps衛(wèi)星數(shù)目
bdsnav????????=?0;%記錄北斗衛(wèi)星數(shù)目
%%?跳過頭文件
while?~feof(fid)%feof若未結(jié)束返回0值
????line?=?fgetl(fid);
????if?strcmp(line(61:73)‘END?OF?HEADER‘)break;end
end
%%?讀取導航文件信息
while?~feof(fid)
???line?=?fgetl(fid);
????if?line(1)==‘G‘?%?判斷衛(wèi)星種類
????????flag?=?1;%GPS標志位
????????gpsnav?=?gpsnav?+?1;??%?記錄GPS衛(wèi)星數(shù)目
????????%%?line?1?
????????data4line?=?sscanf(line(2:end)‘%e‘);
????????navData.type(flag).sat(gpsnav).prn?=?data4line(1);
????????time4utc?=?data4line(2:7);
????????gpst?=?cal2gps(time4utc);%轉(zhuǎn)換時間
????????navData.type(flag).sat(gpsnav).gpst?=?gpst?;%toc鐘參數(shù)與toe對應
????????navData.type(flag).sat(gpsnav).svClkBias?=?data4line(8);%偏差
????????navData.type(flag).sat(gpsnav).svClkDrf??=?data4line(9);%漂移
????????navData.type(flag).sat(gpsnav).svDrfRate?=?data4line(10);%漂移速度
????????%%?line?2
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).IODE?=?data4line(1);%數(shù)據(jù)發(fā)布時間
????????navData.type(flag).sat(gpsnav).Crs?=?data4line(2);
????????navData.type(flag).sat(gpsnav).Deltan?=?data4line(3);
????????navData.type(flag).sat(gpsnav).Mo?=?data4line(4);
????????%%?line?3
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).Cuc?=?data4line(1);
????????navData.type(flag).sat(gpsnav).e?=?data4line(2);%軌道偏心角
????????navData.type(flag).sat(gpsnav).Cus?=?data4line(3);
????????navData.type(flag).sat(gpsnav).sqrta?=?data4line(4);%軌道長半徑開方
????????%%?line?4
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).toe?=?data4line(1);%星歷參考時間(GPS周內(nèi)秒數(shù))
????????navData.type(flag).sat(gpsnav).Cic?=?data4line(2);
????????navData.type(flag).sat(gpsnav).OMEGA0?=?data4line(3);
????????navData.type(flag).sat(gpsnav).Cis?=?data4line(4);
????????%%?line?5
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).io?=?data4line(1);%GPS周內(nèi)秒數(shù)
????????navData.type(flag).sat(gpsnav).Crc?=?data4line(2);
????????navData.type(flag).sat(gpsnav).omega?=?data4line(3);%近地點角距
????????navData.type(flag).sat(gpsnav).OMEGAdot?=?data4line(4);
????????%%?line?6
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).idot?=?data4line(1);
????????navData.type(flag).sat(gpsnav).L2?=?data4line(2);%L2上的碼
????????navData.type(flag).sat(gpsnav).GPSWeek?=?data4line(3);%GPS周數(shù)
????????navData.type(flag).sat(gpsnav).L2P?=?data4line(4);%L2P碼數(shù)據(jù)標記
????????%%?line?7
????????line?=?fgetl(fid);
????????data4line?=?sscanf(line‘%e‘);
????????navData.type(flag).sat(gpsnav).SVaccuracy?=?data4line(1);%衛(wèi)星精度
????????navData.type(flag).sat(gpsnav).SVhealth?=?data4line(2);%衛(wèi)星健康狀態(tài)
????????navData.type(flag).sat(gpsnav).TGD?=?data4line(3);
????????navData.type(flag).sat(gpsnav).IODC?=?data4line(
評論
共有 條評論