Matlab读取ICESat的.H5数据

从官网下载ICESat数据,比如名称为GLAH14_634_2115_001_1303_0_01_0001.H5的文件。

首先利用h5disp()函数显示文件的内部的变量。


接着从中读取变量,利用函数h5read(file,'变量名')

A_lon = h5read(lon_data(i,:),'/Data_40HZ/Geolocation/d_lon');

我们需要注意,变量是加了引号的部分,如下图,Group中‘/BROWSE’下面有多个变量,如果读取下一层的变量,格式为:‘/BROWSE/Image_00’,其他变量以此类推。

贴上读取部分数据的代码:

% read data

file  = 'GLAH14_634_2115_001_1303_0_01_0001.H5';

file1 = 'GLAH14_634_2107_001_1345_0_01_0001.H5';

file2 = 'GLAH14_634_2109_002_0365_0_01_0001.H5';

file3 = 'GLAH14_634_2109_002_0435_0_01_0001.H5';

file4 = 'GLAH14_634_2111_001_1303_0_01_0001.H5';

file5 = 'GLAH14_634_2111_003_0365_0_01_0001.H5';

file6 = 'GLAH14_634_2113_001_1303_0_01_0001.H5';

file7 = 'GLAH14_634_2115_003_0365_0_01_0001.H5';

file8 = 'GLAH14_634_2117_001_1303_0_01_0001.H5';

lon_data = [file;file1;file2;file3;file4;file5;file6;file7;file8];

h5disp(file)

for i = 1:9

    A_lon = h5read(lon_data(i,:),'/Data_40HZ/Geolocation/d_lon');

    A_lon(A_lon>1000)=NaN;

    icesat(i).lon = A_lon;

    A_lat = h5read(lon_data(i,:),'/Data_40HZ/Geolocation/d_lat');

    A_lat(A_lat>1000)=NaN;

    icesat(i).lat = A_lat;

    A_val = h5read(lon_data(i,:),'/Data_40HZ/Elevation_Surfaces/d_elev');

    A_val(A_val>1000)=NaN;

    icesat(i).val = A_val;

    disp(i)

end

coast=load('coastline-from-GMT-WNI.dat');

coast=load('coastline-from-GMT-WNI-0-360.dat');

plot(coast(:,1),coast(:,2),'k')

xlim([0,360])

hold on

for i = 1:9

    scatter3(icesat(i).lon,icesat(i).lat,icesat(i).val,2);

end

box on

grid on

set(gca,'gridlinestyle',':','LineWidth',0.5,'GridAlpha',0.5)


 

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是水怪的哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值