资源简介
RINEX格式的GPS观测文件matlab读取程序(附测试数据),建议读者先弄清楚RINEX的格式,然后再来根据需要修改代码
代码片段和文件信息
function readGPSdata
%观测文件读取程序
clear all;
clc;
[filenamepathname]=uigetfile(‘*.??O‘‘打开O文件‘);
fid=fopen(strcat(pathnamefilename)‘rt‘);
if fid==-1
msgbox(‘文件选取出错,读取程序无法运行‘‘warning‘‘warn‘);
return;
end
fid2=fopen(‘观测文件备份.txt‘‘wt‘);
fprintf(fid2‘观测文件数据备份\n‘);
%读取文件头
while (1)
line=fgets(fid);
%读取一行数据
if (line==-1)
break;
end
if (findstr(line‘APPROX POSITION XYZ‘)~=0)%测站近似坐标
approxx=str2num(line(1:14));
approxy=str2num(line(15:28));
approxz=str2num(line(29:42));
end
if (findstr(line‘DELTA H/E/N‘)~=0)%获取天线参数:高,东向、北向的偏心
anth=str2num(line(1:14));
ante=str2num(line(15:28));
anth=str2num(line(29:42));
end
if (findstr(line‘TYPES OF OBSERV‘)~=0)%观测值种类
signalnum=str2num(line(5:6));
typeNum=1;
for i=1:signalnum%使编号对应为0-L1;1-L2;2-C1;3-P1;4-P2;5-D1;6-D2
ii=11+(i-1)*6;
if (line(ii:ii+1)==‘L1‘)
type(typeNum)=0;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘L2‘)
type(typeNum)=1;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘C1‘)
type(typeNum)=2;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘C2‘)
type(typeNum)=3;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘P1‘)
type(typeNum)=4;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘P2‘)
type(typeNum)=5;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘D1‘)%多普勒频率
type(typeNum)=6;
typeNum=typeNum+1;
elseif (line(ii:ii+1)==‘D2‘)
type(typeNum)=7;
break;
end
end
end
if (findstr(line‘INTERVAL‘)~=0)%观测历元的间隔
inter=str2num(line(1:11));
end
if (findstr(line‘TIME OF FIRST OBS‘)~=0)%数据文件中第一个记录的时刻
nian(11)=str2num(line(1:6));
yue(11)=str2num(line(7:12));
ri(11)=str2num(line(13:18));
shi(11)=str2num(line(19:24));
fen(11)=str2num(line(25:30));
miao(11)=str2double(line(31:43));
end
if (findstr(line‘TIME OF LAST OBS‘)~=0)%数据文件中最后一个记录的时刻
nian(21)=str2num(line(1:6));
yue(21)=str2num(line(7:12));
ri(21)=str2num(line(13:18));
shi(21)=str2num(line(19:24));
fen(21)=str2num(line(25:30));
miao(21)=str2double(line(31:43));
end
if (findstr(line‘# OF SATELLITES‘)~=0)
satenum=str2num(line(1:6));
end
% if (findstr(line‘PRN / # OF OBS‘)~=0)
%读取个卫星观测数据的相应数据的个数
%end
if (findstr(line‘END OF HEADER‘)~=0)
break;
end
end
fprintf(fid2‘测站近似坐标X0=%14.4f‘approxx);
fprintf(fid2‘ Y0=%14.4f‘approxy);
fprintf(fid2‘ Z0=%14.4f\n‘approxz);
fprintf(fid2‘测站观测间隔
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13222818 2017-06-18 13:51 程序与测试数据\abmf0800.15o
文件 10321 2017-06-20 08:13 程序与测试数据\readGPSdata.m
目录 0 2017-06-20 08:16 程序与测试数据\
- 上一篇:机器学习工具包spider工具包
- 下一篇:电场线图形的模拟
相关资源
- ps基本原理及其matlab仿真(西安电子科
- GPS基本原理及MATLAB仿真
- INS_GPS组合导航matlab仿真程序
- GPS仿真-matlab工具箱
- GPS周跳探测matlab
- SINS、GPS、DR仿真
- 新手适用简易GPS matlab代码
- 扩展Kalman滤波在INS/GPS组合导航系统
- Matlab GPS Toolbox
- 卫星位置计算器实验材料.zip
- 导航卫星坐标定位和伪距测量结算及
- PPPH源码matlab有说明书
- GPS基本原理及其MATLAB仿真178018
- 软件定义的GPS和伽利略接收机163752
- 惯性导航matlab开源程序GPS&IMU;数据融合
- GPS+IMU室内外无缝定位数据融合MATLAB程
- 英文原版全球定位系统—信号、测量
- gps数据最小二乘拟合分析
- 不同gps坐标系统比较与转换以及经纬
- MATLAB GPS卫星星座仿真
- GPS L1C/A伪码产生
- GPS-INS组合导航Matlab程序.zip
- 惯导-GPS组合导航程序
- rinex3.0的matlab读取程序
- GPS RINEX格式读取MATLAB版
- GPS 捕获 matlab仿真实现
- GPS捕获跟踪定时同步的matlab代码
- 伪距差分定位MATLAB
- 基于Matlab的GPS卫星仿真器设计
- 基于直接法的GPS姿态测量仿真程序
评论
共有 条评论