zoukankan      html  css  js  c++  java
  • 【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')) + $
        'dataMOD04_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
    ;
    ;
  • 相关阅读:
    二叉树
    tomcat和jvm调优
    服务器正向代理
    LRU算法
    《转载》TCP三次握手中SYN,ACK,Seq三者的关系
    python的字符串、集合、for循环、异常等基础语法
    configparser_配置解析器
    hashlib模块
    悟_面向对象_小游戏和进阶
    面向对象_new,__eq__,__hash__
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/4772152.html
Copyright © 2011-2022 走看看