119 lines
3.1 KiB
Matlab
119 lines
3.1 KiB
Matlab
|
function [time, dt, sats, eof] = fepoch_0(fid)
|
|||
|
% FEPOCH_0 Finds the next epoch in an opened RINEX file with
|
|||
|
% identification fid. From the epoch line is produced
|
|||
|
% time (in seconds of week), number of sv.s, and a mark
|
|||
|
% about end of file. Only observations with epoch flag 0
|
|||
|
% are delt with.
|
|||
|
|
|||
|
%Kai Borre 09-14-96; revised 03-22-97; revised Sept 4, 2001
|
|||
|
%Copyright (c) by Kai Borre
|
|||
|
%$Revision: 1.0 $ $Date: 1997/09/22 $
|
|||
|
%fide = fopen(fid,'rt');
|
|||
|
|
|||
|
%<25><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>أ<EFBFBD><D8A3>ļ<EFBFBD><C4BC><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
% time<6D><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% dt<64><74><EFBFBD><EFBFBD><EFBFBD>ջ<EFBFBD><D5BB>Ӳ<D3B2>ò<EFBFBD><C3B2><EFBFBD>Ϊ<EFBFBD><CEAA>ѡ<EFBFBD><EFBFBD><EEA3AC>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>o<EFBFBD>ļ<EFBFBD><C4BC>ж<EFBFBD><D0B6>У<EFBFBD>
|
|||
|
% sats<74><73><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>Ԫ<EFBFBD><D4AA><EFBFBD>۲<DBB2><E2B5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% eof<6F><66><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ļ<EFBFBD>ĩβ
|
|||
|
|
|||
|
global sat_index;
|
|||
|
time = 0;
|
|||
|
dt = 0;
|
|||
|
sats = [];
|
|||
|
NoSv = 0;
|
|||
|
eof = 0;
|
|||
|
|
|||
|
%ѭ<><D1AD><EFBFBD><EFBFBD>ȡo<C8A1>ļ<EFBFBD><C4BC><EFBFBD>ÿһ<C3BF><D2BB>
|
|||
|
while 1
|
|||
|
lin = fgets(fid); % earlier fgetl <20>ȶ<EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
|||
|
if (feof(fid) == 1); % <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ĩβ<C4A9><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
eof = 1;
|
|||
|
break
|
|||
|
end;
|
|||
|
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if length(lin) <= 1
|
|||
|
continue;
|
|||
|
end
|
|||
|
|
|||
|
% answer = findstr(lin,'COMMENT'); % <20>жϸ<D0B6><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>COMMENT<4E><54>
|
|||
|
%
|
|||
|
% if ~isempty(answer); % <20><><EFBFBD>С<EFBFBD>COMMENT<4E><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
% lin = fgetl(fid);
|
|||
|
% end;
|
|||
|
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>29<32><39><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>Ϊ0<CEAA><30>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>ֻ<EFBFBD><D6BB>29<32><39>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>û<EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>PRN<52><4E><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% if ((strcmp(lin(29),'0') == 0) & (size(deblank(lin),2) == 29))
|
|||
|
% eof = 1;
|
|||
|
% break
|
|||
|
% end; % We only want type 0 data
|
|||
|
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еڶ<D0B5><DAB6><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>29<32><39><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
% <20><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ijһ<C4B3><D2BB>Ԫ<EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF>ԴӸ<D4B4><D3B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡʱ<C8A1>䡢PRN<52>Ȳ<EFBFBD><C8B2><EFBFBD>
|
|||
|
if ((strcmp(lin(2),'1') == 1) & (strcmp(lin(29),'0') == 1))
|
|||
|
ll = length(lin)-2;
|
|||
|
if ll > 60, ll = 60; end;
|
|||
|
linp = lin(1:ll);
|
|||
|
%fprintf('%60s\n',linp);
|
|||
|
|
|||
|
%ʹ<><CAB9>strtok<6F><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
% <20><><EFBFBD><EFBFBD><EFBFBD>ǻ<EFBFBD><C7BB>õ<EFBFBD>ǰʱ<C7B0><CAB1>
|
|||
|
[nian, lin] = strtok(lin);
|
|||
|
% year;
|
|||
|
|
|||
|
[month, lin] = strtok(lin);
|
|||
|
% month;
|
|||
|
|
|||
|
[day, lin] = strtok(lin);
|
|||
|
% day;
|
|||
|
|
|||
|
[hour, lin] = strtok(lin);
|
|||
|
% hour
|
|||
|
|
|||
|
[minute, lin] = strtok(lin);
|
|||
|
% minute
|
|||
|
|
|||
|
[second, lin] = strtok(lin);
|
|||
|
% second
|
|||
|
|
|||
|
[OK_flag, lin] = strtok(lin);
|
|||
|
% OK_flag<61><67><EFBFBD>ǵ<EFBFBD>29<32><39><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
%<25><>ʱ<EFBFBD><CAB1>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ֵ<EFBFBD>ͣ<EFBFBD>Ȼ<EFBFBD><C8BB><EFBFBD>ټ<EFBFBD><D9BC><EFBFBD><EFBFBD><EFBFBD>GPS<50>ܺ<EFBFBD><DCBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
h = str2num(hour)+str2num(minute)/60+str2num(second)/3600;
|
|||
|
jd = julday(str2num(nian)+2000, str2num(month), str2num(day), h);
|
|||
|
[week, sec_of_week] = gps_time(jd);
|
|||
|
time = sec_of_week;
|
|||
|
|
|||
|
%<25><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
[NoSv, lin] = strtok(lin,'G');
|
|||
|
|
|||
|
%<25><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԫÿ<D4AA><C3BF><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>PRN
|
|||
|
for k = 1:str2num(NoSv)
|
|||
|
[sat, lin] = strtok(lin,'G');
|
|||
|
prn(k) = str2num(sat);
|
|||
|
end
|
|||
|
|
|||
|
% prn<72><6E>1<EFBFBD><31>NoSv<53>еľ<D0B5><C4BE><EFBFBD><EFBFBD><EFBFBD>sats<74><73><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
sats = prn(:);
|
|||
|
|
|||
|
% <20><><EFBFBD>ռ<EFBFBD><D5BC>Ӳ<D3B2>е<EFBFBD>o<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>û<EFBFBD>иò<D0B8><C3B2><EFBFBD>
|
|||
|
dT = strtok(lin);
|
|||
|
if isempty(dT) == 0 %<25><><EFBFBD><EFBFBD>dT<64><54>Ϊ0<CEAA><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼
|
|||
|
dt = str2num(dT);
|
|||
|
end
|
|||
|
|
|||
|
break % <20><><EFBFBD><EFBFBD>whileѭ<65><D1AD>
|
|||
|
|
|||
|
end
|
|||
|
|
|||
|
end;
|
|||
|
|
|||
|
% datee=[str2num(nian) str2num(month) str2num(day) str2num(hour) str2num(minute) str2num(second)];
|
|||
|
|
|||
|
%%%%%%%% end fepoch_0.m %%%%%%%%%
|