GNSS精密星历读取(matlab)
這個代碼只讀取了精密星歷SP3文件第一顆衛星隨不同時間的X,Y,Z,和2-9顆衛星的X坐標,如果需要其他數據,自行改進代碼
%%
clc
clear
fid = fopen('ESA0OPSRAP_20222770000_01D_15M_ORB.SP3');%SP3文件
% read header
line = fgetl(fid);
%如果兩字符串一樣則strcmp返回值為1,否則返回0;
while ~(strcmp(line(34:37),'NONE'))
? ? strcmp(line(34:37),'NONE');
? ? line = fgetl(fid);
end
% read body
j = 1;
? ?str='EOF';
? ? ? line = fgetl(fid);
while 1
? ?if (line(1:3)==str),
? ? ? ?break,?
? ?end%判斷line是不是字符串類型的,如果不是則退出循環
? ?line = fgetl(fid);
? ?for k=1:51%選取的是51顆衛星,實際情況看自己下載的數據
? ?X(1,k)=str2double(line(6:18));
? ?Y(1,k)=str2double(line(20:32));
? ?Z(1,k)=str2double(line(34:46));
? ?G(1,k)=str2double(line(50:60));
? ?line = fgetl(fid);
? ?end
? %先讀取10顆衛星試試
? ?ephx(1,j) = X(1,1);
? ?ephx(2,j) = X(1,2);
? ?ephx(3,j) = X(1,3);
? ?ephx(4,j) = X(1,4);
? ?ephx(5,j) = X(1,5);
? ?ephx(6,j) = X(1,6);
? ?ephx(7,j) = X(1,7);
? ?ephx(8,j) = X(1,8);
? ?ephx(9,j) = X(1,9);
? ?ephx(10,j) = X(1,10);
? ?ephy(1,j) = Y(1,1);
? ?ephz(1,j)=Z(1,1);
? ?
? ? ? j=j+1;
end
fclose(fid);
總結
以上是生活随笔為你收集整理的GNSS精密星历读取(matlab)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作51:后端vue学习地址
- 下一篇: 前端学习(2346):uniapp环境搭