资源简介
基于MATLAB使用C语言的读取GPS的rinex3.0的N文件,亲测好用,特来分享
代码片段和文件信息
function [navData] = ReadNav
%% 打开导航文件
NAVfilepath = ‘.\cuta1680.14p‘;
fid = fopen(NAVfilepath);
gpsnav = 0;%记录gps卫星数目
bdsnav = 0;%记录北斗卫星数目
%% 跳过头文件
while ~feof(fid)%feof若未结束返回0值
line = fgetl(fid);
if strcmp(line(61:73)‘END OF HEADER‘)break;end
end
%% 读取导航文件信息
while ~feof(fid)
line = fgetl(fid);
if line(1)==‘G‘ % 判断卫星种类
flag = 1;%GPS标志位
gpsnav = gpsnav + 1; % 记录GPS卫星数目
%% line 1
data4line = sscanf(line(2:end)‘%e‘);
navData.type(flag).sat(gpsnav).prn = data4line(1);
time4utc = data4line(2:7);
gpst = cal2gps(time4utc);%转换时间
navData.type(flag).sat(gpsnav).gpst = gpst ;%toc钟参数与toe对应
navData.type(flag).sat(gpsnav).svClkBias = data4line(8);%偏差
navData.type(flag).sat(gpsnav).svClkDrf = data4line(9);%漂移
navData.type(flag).sat(gpsnav).svDrfRate = data4line(10);%漂移速度
%% line 2
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).IODE = data4line(1);%数据发布时间
navData.type(flag).sat(gpsnav).Crs = data4line(2);
navData.type(flag).sat(gpsnav).Deltan = data4line(3);
navData.type(flag).sat(gpsnav).Mo = data4line(4);
%% line 3
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).Cuc = data4line(1);
navData.type(flag).sat(gpsnav).e = data4line(2);%轨道偏心角
navData.type(flag).sat(gpsnav).Cus = data4line(3);
navData.type(flag).sat(gpsnav).sqrta = data4line(4);%轨道长半径开方
%% line 4
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).toe = data4line(1);%星历参考时间(GPS周内秒数)
navData.type(flag).sat(gpsnav).Cic = data4line(2);
navData.type(flag).sat(gpsnav).OMEGA0 = data4line(3);
navData.type(flag).sat(gpsnav).Cis = data4line(4);
%% line 5
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).io = data4line(1);%GPS周内秒数
navData.type(flag).sat(gpsnav).Crc = data4line(2);
navData.type(flag).sat(gpsnav).omega = data4line(3);%近地点角距
navData.type(flag).sat(gpsnav).OMEGAdot = data4line(4);
%% line 6
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).idot = data4line(1);
navData.type(flag).sat(gpsnav).L2 = data4line(2);%L2上的码
navData.type(flag).sat(gpsnav).GPSWeek = data4line(3);%GPS周数
navData.type(flag).sat(gpsnav).L2P = data4line(4);%L2P码数据标记
%% line 7
line = fgetl(fid);
data4line = sscanf(line‘%e‘);
navData.type(flag).sat(gpsnav).SVaccuracy = data4line(1);%卫星精度
navData.type(flag).sat(gpsnav).SVhealth = data4line(2);%卫星健康状态
navData.type(flag).sat(gpsnav).TGD = data4line(3);
navData.type(flag).sat(gpsnav).IODC = data4line(
- 上一篇:某科技大学C语言实现班主任管家系统
- 下一篇:Hopfield TSP.rar
评论
共有 条评论