IDL环境下,HDF文件转TIFF格式


在IDL环境下,将HDF文件转TIFF格式

在遥感图像处理过程中,我们经常遇到HDF文件,如modis影像数据。那么HDF数据到底是怎样的呢?
百科的解释:HDF是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF是由美国国家超级计算应用中心NCSA创建的,为了满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式。HDF可以表示出科学数据存储和分布的许多必要条件。
个人理解:HDF文件组成形式有点像一个文件夹,文件夹下有多种数据,如word、PDF 等,而在HDF这个文件夹下则有栅格图像、注释、调色板、科学数据集、Vdata、Vgroup等格式,当然不说一个HDF文件就必须具备以上六种文件格式。

代码块

@requires_authorization
fuction HDF_TO_TIFF,hdf_path
    ENVI_OPEN_FILE, hdf_path, R_FID = hdf_fid
    map_info = envi_get_map_info( fid = hdf_fid )

    ;hdfsd_dataset选择波段,0表示第一波段,以此类推
    envi_open_data_file, hdf_path, /hdf_sd, $
        hdfsd_interleave = 0,hdfsd_dataset = 0,r_fid = fid
        
    envi_file_query, fid, ns = ns, nl = nl, $
        data_type = data_type, dims = dims
    ;获取相应波段信息
    data = make_array(ns, nl, /integer)
    data = envi_get_data(fid = fid, pos = 0, dims = dims)
    out_name=file_dirname(hdf_path) + '\' +$
        file_basename(hdf_path, '.hdf') + '.tif'
    envi_write_envi_file, data, out_name = out_name,$
        interleave = 0, out_dt = 2,map_info=map_info
end

转载自:https://blog.csdn.net/tianfuliu/article/details/52081078

You may also like...