• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Matlab
  • 标签: rinex  

资源简介

运用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));   
   

评论

共有 条评论