IDL 读取ICESAT2 HDF5文件

pro read_icesat2_hdf5
  infilepath='E:\icesat2\5000001293407\'
  outfilepath=''
  cd,infilepath
  thesefiles = file_search('*',count = numFiles)
  print,'number of files found:',numFiles
  FOR fidx=0,numFiles-1   DO BEGIN
    cd,infilepath+thesefiles[fidx]
    filename=file_search('*.h5',count = numFiles,/TEST_REGULAR)
    basename=file_basename(filename,'.HDF') 
    ;H5F_OPEN打开hdf5
    file_id = H5F_OPEN(filename)
    ;H5G_OPEN打开group
    groupname=['gt1l','gt1l','gt2l','gt2r','gt3l','gt3r']
    temp=[0,0,0];
    for groupn=0,6-1 do begin
      group_id=H5G_OPEN(file_id,groupname[groupn])

      ;H5D_OPEN打开数据集
      dataset_id=H5G_OPEN(group_id,"freeboard_beam_segment")
      ;H5D_READ读取数据集数据,存入SdsData中
;      SdsData=H5D_READ(dataset_id)
      weishu=size(data,/N_ELEMENTS)
      ;读取属性数据
      ;H5A_OPEN_Name按照属性名字打开属性
      Attribute_id=  H5D_OPEN(dataset_id,'beam_fb_height')
      ;读取属性
      data=H5D_READ(Attribute_id)
      ;H5A_OPEN_Name按照属性名字打开属性
      Attribute_id= H5D_OPEN(dataset_id,'latitude')
      ;读取属性
      lat=H5D_READ(Attribute_id)
      ;H5A_OPEN_Name按照属性名字打开属性
      Attribute_id= H5D_OPEN(dataset_id,'longitude')
      ;读取属性
      lon=H5D_READ(Attribute_id)
      index=where(data le 3.4,count)
      if count gt 0 then begin
;        data[index]=0.0/0.0
          data=data[index]
          lat=lat[index]
          lon=lon[index]
      endif
      print,max(data,/NAN)
      zz=Transpose([[data],[lat],[lon]])
      temp=[[zz],[temp]]
;      print,temp[*,0:-1]
      
    endfor
      WRITE_CSV,'E:\icesat2\process\'+basename+'.csv',temp[*,0:-2]
  ENDFOR

end

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

就是一只白

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

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

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

打赏作者

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

抵扣说明:

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

余额充值