alex_bn_lee

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【171】IDL读取HDF文件

 

 

 

复制代码
;+
;:Description:
;    Describe the procedure.
;
; Author: DYQ 2009-7-19;
;
;-
PRO TEST_READHDF
  COMPILE_OPT idl2
  
  file = FILE_DIRNAME(ROUTINE_FILEPATH('TEST_READHDF')) + $
    '\data\MOD04_L2.A2004196.0140.005.2007023163311.hdf'
  ;
  IsHdf = HDF_ISHDF(file)
  IF IsHDF EQ 0 THEN RETURN;
  ;调用IDL自带的函数进行当前HDF数据的信息获得
;  HDF_INFO,file
  ;如我们需要做一个地理纠正操作
  ;的预处理,那么需要获得原始数据
  ;及经纬度数据网格
  ;数据获取两种方式
  ;通过SD的信息中名字索引来判断,如纬度数据表示Latitude
  ;打开HDFSD文件
  ;
  sd_id = HDF_SD_START(file , /READ)
  
  HDF_SD_FILEINFO,sd_id,nmfsds,attr
  
  FOR i=0,nmfsds-1 DO BEGIN
    sds_id=HDF_SD_SELECT(sd_id,i)
    ;数据集中数据的名字
    HDF_SD_GETINFO,sds_id,name=n,ndims=r,type=t,natts=nats,$
      hdf_type=h,unit=u
    IF n EQ 'Latitude' THEN BEGIN
      HDF_SD_GETDATA,sds_id,latdata
      BREAK
    ENDIF
  ENDFOR
  
  ;自定义读取  ;
  ;计算SD中latitude的索引
  latindex = HDF_SD_NAMETOINDEX(sd_id,'Latitude')
  ;获得所在索引的ID
  Result = HDF_SD_SELECT(sd_id, latindex)
  ;读取数据
  HDF_SD_GETDATA, Result, tempLatData
  
  ;查看是否读取结果一致
  HELP,ARRAY_EQUAL(latdata,tempLatdata)
  
END
;
;
复制代码

 

posted on   McDelfino  阅读(1264)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示