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

代碼片段和文件信息
%%?觀測(cè)文件o文件讀取程序(Rinex3.02)
%%?打開o文件
clc;
clear?all;
[filenamepathname]?=?uigetfile(‘*.??O‘‘打開O文件‘);
fid?=?fopen(strcat(pathnamefilename)‘rt‘);
if?fid?==?-1
????msgbox(‘文件選取出錯(cuò),讀取程序無(wú)法運(yùn)行‘‘warning‘‘warn‘);
????return;
end
fid2?=?fopen(‘觀測(cè)文件頭.txt‘‘wt‘);
fid3?=?fopen(‘觀測(cè)文件數(shù)據(jù).txt‘‘wt‘);
fprintf(fid2‘觀測(cè)文件頭\n‘);
fprintf(fid3‘星座號(hào)?衛(wèi)星號(hào)???偽距????????載波相位???????信噪比?????時(shí)間?\n‘);
%%?人性化進(jì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)????????%讀取測(cè)站近似坐標(biāo)
????????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)??????????????????%讀取觀測(cè)值種類
????????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)??????????????????%讀取觀測(cè)歷元的間隔
????????interval?=?str2double(line(1:11));
????end
????if?(strfind(line‘TIME?OF?FIRST?OBS‘)~=?0)?????????%讀取數(shù)據(jù)文件中第一個(gè)記錄的時(shí)刻
????????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‘測(cè)站近似坐標(biāo)?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‘測(cè)站觀測(cè)間隔??interval=%10.3f\n‘interval);
?fprintf(fid2‘測(cè)站觀測(cè)開始時(shí)間:Begin=?‘);
?fprintf(fid2‘%15s‘strcat(num2str(year(11))‘年‘num2str(month(11))‘月‘num2str(day(11))‘日‘num2str(hour(11))‘:‘num2str(minute(11))‘:‘num2str(second(11))));
?
?%%?人性化進(jìn)度條
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)
?
?%%?讀取觀測(cè)數(shù)據(jù)??
?line_num?=?0;??????????????????????????????????????????%行數(shù)
?while?feof(fid)~=?1
????????line_num?=?line_num+1;??????????????????????????%?歷元計(jì)數(shù)
?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????8160??2020-10-06?11:28??MATLAB?rinex3.02觀測(cè)文件(o文件)讀取\r_rinex302_o_data.m
?????文件???????3231??2020-10-05?19:35??MATLAB?rinex3.02觀測(cè)文件(o文件)讀取\UTC_GPSsecond.m
?????文件???19258166??2020-02-09?16:24??MATLAB?rinex3.02觀測(cè)文件(o文件)讀取\_6463110.19o
?????文件????????376??2020-10-06?12:06??MATLAB?rinex3.02觀測(cè)文件(o文件)讀取\使用說(shuō)明(必讀!!).txt
?????目錄??????????0??2020-10-06?11:56??MATLAB?rinex3.02觀測(cè)文件(o文件)讀取
-----------?---------??----------?-----??----
?????????????19269933????????????????????5
評(píng)論
共有 條評(píng)論