本文以GOCE卫星1b数据为例,介绍GOCE重力梯度数据的读取与坐标转换(GRF—LNOF)。
- 数据介绍
数据选取2013年3月1日至3月31日共计31天、分辨率为1秒的观测数据,数据观测记录2678400个。一个观测记录包含以下31项数据,数据格式如下:
(1):GPS时间/s;
(2-3):纬度、经度/°;
(4):地心半径/m;
(5-10):XX、YY、ZZ、XY、XZ、YZ六个方向分量上的组合梯度值;
(11-16):六个方向分量梯度值的观测中误差;
(17-22):六个方向分量的标识码;
(23-31):GRF框架转换为LNOF坐标系的旋转矩阵9个元素。 - 数据读取
fid=fopen('GGC_GRF_DataFile_GOCO03s_20130301T000000_20130331T235959_0002.DAT');
data=zeros(2678400,31) %定义数据矩阵
%读取数据
for n=1:2678400
line =fgetl(fid);
if ~ischar(line), break, end
if isempty(line), continue, end
cells = textscan(line,'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%d%d%d%d%d%d%f%f%f%f%f%f%f%f%f');
for k=1:31
data(n,k)=cells{k};
end
end
fclose(fid);
- 坐标转换
GOCE卫星重力梯度观测数据是在重力梯度仪参考框架(GRF)下的,为了后续计算,需要将其转换成惯性坐标系(IRF)、地固坐标系(EFRF)或者局部指北坐标系(LNOF)。此处以转换成LNOF为例。
%声明一个存储LNOF系下的梯度矩阵
Vlnof=zeros(2678400,6);
%计算局部指北坐标系(LNOF)下的GOCE重力梯度Vlnof
for n=1:2678400
Vgrf=[data(n,5) data(n,8) data(n,9);data(n,8) data(n,6) data(n,10);data(n,9) data(n,10) data(n,7)];
R=[data(n,23) data(n,24) data(n,25);data(n,26) data(n,27) data(n,28);data(n,29) data(n,30) data(n,31)];
Vnew=R*Vgrf*R';
Vlnof(n,1)=Vnew(1,1);Virf(n,2)=Vnew(2,2);Virf(n,3)=Vnew(3,3);Virf(n,4)=Vnew(1,2);Virf(n,5)=Vnew(1,3);Virf(n,6)=Vnew(2,3);
end