資源簡介
(有問題的私信我就好了,那個QQ號被盜了)根據(jù)多方資料自己動手編制讀取rinex3.02版本觀測文件數(shù)據(jù),基于MATLAB軟件!!!!!!之后有時間會陸續(xù)編制其他版本,目前在做衛(wèi)星定位導航方面研究。
r_rinex302_o_data.m:為讀取觀測文件(o文件)主程序
UTC_GPSsecond.m:為將UTC時間轉(zhuǎn)化為GPS周秒的函數(shù)程序(沒有認真研究,程序中算法可能有問題,但問題不大,只要算出歷元數(shù)就好,時間是否正確影響不大,歡迎大牛們指正!!)
另外,文件中配套有測試數(shù)據(jù),為rinex3.02版本,測試過程序無誤(結(jié)果也在文件中呈上!)

代碼片段和文件信息
%%?觀測文件o文件讀取程序(Rinex3.02)
%%?打開o文件
clc;
clear?all;
[filenamepathname]?=?uigetfile(‘*.??O‘‘打開O文件‘);
fid?=?fopen(strcat(pathnamefilename)‘rt‘);
if?fid?==?-1
????msgbox(‘文件選取出錯,讀取程序無法運行‘‘warning‘‘warn‘);
????return;
end
fid2?=?fopen(‘觀測文件頭.txt‘‘wt‘);
fid3?=?fopen(‘觀測文件數(shù)據(jù).txt‘‘wt‘);
fprintf(fid2‘觀測文件頭\n‘);
fprintf(fid3‘星座號?衛(wèi)星號???偽距????????載波相位???????信噪比?????時間?\n‘);
%%?人性化進度條
f?=?waitbar(0‘Please?wait...‘);
pause(.5)
waitbar(.33f‘Loading?your?data‘);
pause(1)
waitbar(.67f‘Processing?your?data‘);
pause(1)
waitbar(1f‘Finishing‘);
pause(1)
close(f)
%%?讀取文件頭
while?(1)
????line?=?fgets(fid);
????if?(line?==?-1)???%讀取一行數(shù)據(jù)
????????break;
????end
????if?(strfind(line‘APPROX?POSITION?XYZ‘)~=?0)????????%讀取測站近似坐標
????????appro_x?=?str2double(line(1:14));
????????appro_y?=?str2double(line(15:28));
????????approx_z?=?str2double(line(29:42));
?????end
????if?(strfind(line‘DELTA?H/E/N‘)~=?0)????????????????%讀取天線參數(shù):高,東向、北向的偏心
????????ant_h?=?str2double(line(1:14));
????????ant_e?=?str2double(line(15:28));
????????ant_n?=?str2double(line(29:42));
????end
????if?(strfind(line‘OBS?TYPES‘)~=?0)??????????????????%讀取觀測值種類
????????if?(strfind(line‘G‘)~=?0)
????????????obs_GC1C?=?line(8:10);
????????????obs_GL1C?=?line(24:26);
????????????obs_GS1C?=?line(40:42);
????????end
????????if?(strfind(line‘R‘)~=?0)
????????????obs_RC1C?=?line(8:10);
????????????obs_RL1C?=?line(24:26);
????????????obs_RS1C?=?line(40:42);
????????end
????????if?(strfind(line‘C‘)~=?0)
????????????obs_CC1I?=?line(8:10);
????????????obs_CL1I?=?line(16:18);
????????????obs_CS1I?=?line(24:26);
????????end
????end
????if?(strfind(line‘INTERVAL‘)~=?0)??????????????????%讀取觀測歷元的間隔
????????interval?=?str2double(line(1:11));
????end
????if?(strfind(line‘TIME?OF?FIRST?OBS‘)~=?0)?????????%讀取數(shù)據(jù)文件中第一個記錄的時刻
????????year(11)?=?str2double(line(1:6));
????????month(11)?=?str2double(line(7:12));
????????day(11)?=?str2double(line(13:18));
????????hour(11)?=?str2double(line(19:24));
????????minute(11)?=?str2double(line(25:30));
????????second(11)?=?str2double(line(31:43));
????end
????if?(strfind(line‘END?OF?HEADER‘)~=?0)
????????break;
????end
end
?fprintf(fid2‘測站近似坐標?X0=%14.4f‘a(chǎn)ppro_x);
?fprintf(fid2‘??Y0=%14.4f‘a(chǎn)ppro_y);
?fprintf(fid2‘??Z0=%14.4f\n‘a(chǎn)pprox_z);
?fprintf(fid2‘測站觀測間隔??interval=%10.3f\n‘interval);
?fprintf(fid2‘測站觀測開始時間:Begin=?‘);
?fprintf(fid2‘%15s‘strcat(num2str(year(11))‘年‘num2str(month(11))‘月‘num2str(day(11))‘日‘num2str(hour(11))‘:‘num2str(minute(11))‘:‘num2str(second(11))));
?
?%%?人性化進度條
f?=?waitbar(0‘Please?wait...‘);
pause(.5)
waitbar(.33f‘Start?reading?file?header‘);
pause(1)
waitbar(.67f‘Processing?your?data‘);
pause(1)
waitbar(1f‘Finishing‘);
pause(1)
close(f)
?
?%%?讀取觀測數(shù)據(jù)??
?line_num?=?0;??????????????????????????????????????????%行數(shù)
?while?feof(fid)~=?1
????????line_num?=?line_num+1;??????????????????????????%?歷元計數(shù)
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8160??2020-10-06?11:28??MATLAB?rinex3.02觀測文件(o文件)讀取\r_rinex302_o_data.m
?????文件???????3231??2020-10-05?19:35??MATLAB?rinex3.02觀測文件(o文件)讀取\UTC_GPSsecond.m
?????文件???19258166??2020-02-09?16:24??MATLAB?rinex3.02觀測文件(o文件)讀取\_6463110.19o
?????文件????????376??2020-10-06?12:06??MATLAB?rinex3.02觀測文件(o文件)讀取\使用說明(必讀!!).txt
?????目錄??????????0??2020-10-06?11:56??MATLAB?rinex3.02觀測文件(o文件)讀取
-----------?---------??----------?-----??----
?????????????19269933????????????????????5
評論
共有 條評論