5、卫星测高数据处理:卫星测高波形数据图绘制

1、MATLAB绘制三维图的代表函数

1.1、三维曲线

  • plot3

1.2、三维曲面

  • surf
  • mesh
  • pcolor

2、不太正确的画法

  • 原因:每条波形之间没有关系,但是因为插值的原因,每条波形相互影响,呈现的是曲面的形状
  • 两个图都是三维图,只不过后面的一个图是从上往下看

2.1、正常视角三维图

clc,clear,clf
filename  = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat       = ncread(filename,'lat');
lat_20hz  = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25); % 选出纬度在该区域的数据
wv_all    = ncread(filename,'waveforms_20hz_ku');

cnt = 1;
for i = min(lat_index) : max(lat_index)
    new_wv(:,cnt) = wv_all(:,1,i);
    new_lat(cnt) = lat(i);
    cnt = cnt + 1;
end

bin = 1:104;                         % 采样数
[BIN, LAT] = meshgrid(new_lat, bin); % 生成网格
surf(BIN, LAT, new_wv);              % 画曲面

shading interp;         % 表面光滑
colormap(jet);          
% view(0,90) % 视角
colorbar
xlabel('lat');
ylabel('bin');
zlabel('wave poer');
print(gcf, '-djpeg', 'error2.jpg')

在这里插入图片描述

2.2、俯视视角三维图

clc,clear,clf
filename  = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat       = ncread(filename,'lat');
lat_20hz  = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25); % 选出纬度在该区域的数据
wv_all    = ncread(filename,'waveforms_20hz_ku');

cnt = 1;
for i = min(lat_index) : max(lat_index)
    new_wv(:,cnt) = wv_all(:,1,i);
    new_lat(cnt) = lat(i);
    cnt = cnt + 1;
end

bin = 1:104;                         % 采样数
[BIN, LAT] = meshgrid(new_lat, bin); % 生成网格
surf(BIN, LAT, new_wv);              % 画曲面

shading interp;         % 表面光滑
colormap(jet);          
view(0,90) 
colorbar
xlabel('lat');
ylabel('bin');
zlabel('wave poer');
print(gcf, '-djpeg', 'error2.jpg')

在这里插入图片描述

3、正确的画法

3.1、正常视角三维图

filename  = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat       = ncread(filename,'lat');
lat_20hz  = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25); % 选出纬度在该区域的数据
wv_all    = ncread(filename,'waveforms_20hz_ku'); % 所有波形数据

figure;
% hold on; % 用pcolor时打开
for i = min(lat_index) : max(lat_index)
    x = [lat(i), lat(i + 1)];
    y = 1 : 104;
    [X, Y] = meshgrid(x, y);
    Z = [wv_all(:,1,i), wv_all(:,1,i)];
%     pcolor(X, Y, Z); % 平面图可以是surf从顶往下看,也可以用pcolor
    surf(X, Y, Z);
    hold on;
end
hold off;
% view(0, 90)
shading interp; 
colormap(jet);
colorbar
xlabel('lat');
ylabel('bin');
axis([22, 25, 1, 104])
% axis([22, 25, 1, 104, 0, 250]) % 作平面图时需注释
print(gcf, '-djpeg', 'right3.jpg')

在这里插入图片描述

3.2、俯视视角三维图

filename  = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat       = ncread(filename,'lat');
lat_20hz  = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25); % 选出纬度在该区域的数据
wv_all    = ncread(filename,'waveforms_20hz_ku'); % 所有波形数据

figure;
% hold on; % 用pcolor时打开
for i = min(lat_index) : max(lat_index)
    x = [lat(i), lat(i + 1)];
    y = 1 : 104;
    [X, Y] = meshgrid(x, y);
    Z = [wv_all(:,1,i), wv_all(:,1,i)];
%     pcolor(X, Y, Z); % 平面图可以是surf从顶往下看,也可以用pcolor
    surf(X, Y, Z);
    hold on;
end
hold off;
view(0, 90)
shading interp; 
colormap(jet);
colorbar
xlabel('lat');
ylabel('bin');
axis([22, 25, 1, 104])
% axis([22, 25, 1, 104, 0, 250]) % 作平面图时需注释
print(gcf, '-djpeg', 'right3.jpg')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kangkang康米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值