资源简介
运用matlab读取rinex文件的观测文件,程序简洁,完整,可靠
代码片段和文件信息
function [OBSXYZ]= ReadObsfile()
%此文件用来读取RINEX格式的观测数据文件
%读取前先设定每颗卫星所提供的观测参数个数
fprintf(‘开始读取O文件\n‘);
[FileNamePathName]=uigetfile(‘*.*o‘‘select observation rinex file‘);
fido=fopen(FileName);
if fido<1
fprintf(‘打开o文件失败\n‘);
end
fseek(fido0‘eof‘);
f_size=ftell(fido);
fseek(fido0‘bof‘);%把指针放到文件开头
head_find=0;
while(~feof(fido)&head_find==0)
line=fgetl(fido);
k=findstr(line‘APPROX POSITION XYZ‘);
if~isempty(k)
XYZ=[str2num(line(2:14))str2num(line(16:28))str2num(line(31:42))];
end
k=findstr(line‘TYPES OF OBSERV‘);
if ~isempty(k)
[numtypetype]=parse_type(line); %函数在最下面,用于得到观测值的类型数量和类型
end
k=findstr(line‘INTERVAL‘);
if~isempty(k)
interval=str2num(line(1:11));
end
k=findstr(line‘END OF HEADER‘);
if~isempty(k)
head_find=1;
end
end
epoch=0;
while(feof(fido)~=1)
epoch=epoch+1;
clear sat_num num_sats;
line=fgetl(fido);
long=length(line);
if(long<80)
line(long+1:80)=‘0‘;
end
utc_time(1)=str2num(line(1:3));
utc_time(2)=str2num(line(4:6));
utc_time(3)=str2num(line(7:9));
utc_time(4)=str2num(line(10:12));
utc_time(5)=str2num(line(13:15));
utc_time(6)=str2num(line(16:26));
utc_time;
OBS(epoch).t=cal2gps(utc_time); %%%%%%
num_sats=str2num(line(30:32));
if(num_sats>12)
fprintf(‘程序不能读取大于12课卫星的o文件‘);
return
end
for i=1:num_sats
start_dx=33+(i-1)*3;
sat=sscanf(line(start_dx:start_dx+2)‘%c‘);
if ~isempty(deblank(sat(2:3)))
sat_num(i)=str2num(sat(2:3));
- 上一篇:maya源文件斧头
- 下一篇:虚拟网络映射仿真代码
评论
共有 条评论