日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ALOS卫星轨道插值并绘制轨道

發布時間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ALOS卫星轨道插值并绘制轨道 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

已知ALOS衛星為用戶提供的軌道數據,總共有28個軌道位置點,包括軌道點的時間、空間位置(x,y,z)及其在該點的速度(dx,dy,dz),任意兩個軌道點的獲取時間相隔為60秒。
利用各種數據插值方法計算數據獲取時間內任意時刻的衛星所在的位置。
并用三維繪圖命令畫出地球及相應軌道。

%% 用字符格式方式讀取數據
FID=fopen(‘I:\專業課程\MATLAB\實驗二-三-衛星參數文件讀取及基線計算\LED-ALPSRP063392880-P1.1__D.orbit.txt’);
FID_num=textscan(FID,’%s%d’,1);
FID_head=textscan(FID,’%s%d%s’,2);
FID_data=textscan(FID,’%s%f%f%f%s%s%s’,56);
temp_1=FID_data{1,2};
temp_2=FID_data{1,3};
temp_3=FID_data{1,4};
orbit_data=[temp_1 temp_2 temp_3];
% 初始時間和時間間隔
Time_first=double(FID_head{1, 2}(1,1));
Time_intervel=double(FID_head{1, 2}(2,1));

%% 軌道位置數據插值,以時間為基準
myfrontsize=14;
xyz_data=orbit_data(1:2:56,:);
plot3(xyz_data(:,1),xyz_data(:,2),xyz_data(:,3),‘r’,‘linewidth’,2);
title(‘衛星軌道’);
xlabel(‘X( m)’,‘Fontsize’,18);
ylabel(‘Y( m)’,‘Fontsize’,18);
zlabel(‘Z( m)’,‘Fontsize’,18);
%% 插值
orignal_time=Time_first:Time_intervel:57660;
interp_time=Time_first:1:57660;
xyz_data_inter=zeros(size(interp_time,2),3);
% spline 球面線性插值 pchip三次多項式插值 nearest最近鄰插值 lagrange插值
xyz_data_inter(:,1)=interp1(orignal_time,xyz_data(:,1),interp_time,‘nearest’);
xyz_data_inter(:,2)=interp1(orignal_time,xyz_data(:,2),interp_time,‘nearest’);
xyz_data_inter(:,3)=interp1(orignal_time,xyz_data(:,3),interp_time,‘nearest’);
xyz_data_inter(:,1)=lagrange(orignal_time,xyz_data(:,1),interp_time);
xyz_data_inter(:,2)=lagrange(orignal_time,xyz_data(:,2),interp_time);
xyz_data_inter(:,3)=lagrange(orignal_time,xyz_data(:,3),interp_time);
%% 繪制衛星軌道圖
plot3(xyz_data_inter(:,1),xyz_data_inter(:,2),xyz_data_inter(:,3),‘r’,‘linewidth’,2);hold on;
plot3(xyz_data(:,1),xyz_data(:,2),xyz_data(:,3),‘g’);
title(‘拉格朗日鄰插值衛星軌道’,‘Fontsize’,20);
xlabel(‘X( m)’,‘Fontsize’,18);
ylabel(‘Y( m)’,‘Fontsize’,18);
zlabel(‘Z( m)’,‘Fontsize’,18);
% Plotting the Earth 畫地球
equat_rad=6378137.00;
polar_rad=6356752.3142;
[xx yy zz]=ellipsoid (0,0,0,equat_rad, equat_rad, polar_rad);
load(‘topo.mat’,‘topo’,‘topomap1’);
topo2 = [topo(:,181:360) topo(:,1:180)];
pro.FaceColor= ‘texture’;
pro.EdgeColor = ‘none’;
pro.FaceLighting = ‘phong’;
pro.Cdata = topo2;
colormap(topomap1)
omega_earth = 7.292115855377074e-005; % (rad/sec)
J2000_days=103752/24;
Go = 1.727564365843028; % (rad) http://www.amsat.org/amsat/articles/g3ruh/106.html
GMST = Go + omega_earth86400*(J2000_days + 0.5);
GMST = GMST - 2pifloor(GMST/(2pi));
GMST_deg=GMST(180/pi);
earth= surface(xx,yy,zz,pro);
%% 寫文本文件
Pos_data=[interp_time;xyz_data_inter(:,1)’;xyz_data_inter(:,2)’;xyz_data_inter(:,3)’];
fid=fopen(‘I:\專業課程\MATLAB\實驗四\插值軌道數據.txt’,‘w’);
fprintf(fid,’%s\t\t%s\t\t%s\t\t%s\r\n’,‘t’,‘x’,‘y’,‘z’);
fprintf(fid,’%f\t%6.2f\t%6.2f\t%6.2f\r\n’,Pos_data);
fclose(fid);
%% 利用重復軌道計算軌道之間的基線
FID_2=fopen(‘I:\專業課程\MATLAB\實驗二-三-衛星參數文件讀取及基線計算\LED-ALPSRP070102880-P1.1__D.orbit.txt’);
FID_num_2=textscan(FID_2,’%s%d’,1);
FID_head_2=textscan(FID_2,’%s%d%s’,2);
FID_data_2=textscan(FID_2,’%s%f%f%f%s%s%s’,56);
temp_1=FID_data_2{1,2};
temp_2=FID_data_2{1,3};
temp_3=FID_data_2{1,4};
orbit_data_2=[temp_1 temp_2 temp_3];
% 初始時間和時間間隔
Time_first_2=double(FID_head_2{1, 2}(1,1));
Time_intervel_2=double(FID_head_2{1, 2}(2,1));
% 樣條插值
xyz_data_2=orbit_data_2(1:2:56,:);
orignal_time_2=Time_first_2:Time_intervel_2:57660;
interp_time_2=Time_first_2:1:57660;
xyz_data_inter_2=zeros(size(interp_time_2,2),3);
xyz_data_inter_2(:,1)=interp1(orignal_time_2,xyz_data_2(:,1),interp_time_2,‘spline’);
xyz_data_inter_2(:,2)=interp1(orignal_time_2,xyz_data_2(:,2),interp_time_2,‘spline’);
xyz_data_inter_2(:,3)=interp1(orignal_time_2,xyz_data_2(:,3),interp_time_2,‘spline’);
% 原始軌道數據
plot3(xyz_data(:,1),xyz_data(:,2),xyz_data(:,3),’*r’,‘linewidth’,2);hold on;
plot3(xyz_data_2(:,1),xyz_data_2(:,2),xyz_data_2(:,3),‘db’,‘linewidth’,2);hold on;
title(‘拉格朗日鄰插值衛星軌道’,‘Fontsize’,20);
xlabel(‘X( m)’,‘Fontsize’,18);
ylabel(‘Y( m)’,‘Fontsize’,18);
zlabel(‘Z( m)’,‘Fontsize’,18);
% 插值后軌道數據
plot3(xyz_data_inter(:,1),xyz_data_inter(:,2),xyz_data_inter(:,3),’*r’,‘linewidth’,2);hold on;
plot3(xyz_data_inter_2(:,1),xyz_data_inter_2(:,2),xyz_data_inter_2(:,3),‘ob’,‘linewidth’,2);hold on;
title(‘拉格朗日鄰插值衛星軌道’,‘Fontsize’,20);
xlabel(‘X( m)’,‘Fontsize’,18);
ylabel(‘Y( m)’,‘Fontsize’,18);
zlabel(‘Z( m)’,‘Fontsize’,18);


總結

以上是生活随笔為你收集整理的ALOS卫星轨道插值并绘制轨道的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。