本文是在阅读2005年9月15日《国土资源遥感》杂志上《HDF格式特点及其对遥感数据格式标准化的几点启示》文章后的一些记录。HDF全称为Hierarchical Data Format,即层次式文件格式,是美国国家计算机中心推出的一种新型数据格式,主要目的是用于记录科学数据。美国国家宇航局(NASA)在HDF数据格式基础上提出了HDF—EOS子集,用于记录MODIS传感器数据。如果需要对HDF格式数据进行读写,必须先要对其格式有深刻了解。
HDF文件结构并没有采用常用的文件头—数据体(bmp,jpg等文件格式都采用这个方式)这种物理结构的文件格式,其采用分块建立文件内容的索引,这些索引主要是利用二叉树方式建立,这样的优点在于可以方便快捷的访问数据内容。HDF逻辑结构的核心思想在于其层次性,有些类似于数据库中的树型结构,可以有效地建立了文件内对象之间的逻辑内容关系和组织方式。
HDF有两种基本对象—组(Group)和数据集(Dataset),同时也有一些其他的辅助对象,如数据类型(Datatype)、数据空间(Dataspace)、属性(Attribute),具体的分布可以参考HDF 5文件逻辑结构图。HDF组织结构有些类似于Windows 中的文件结构,组相当于一个文件夹,数据集相当于一个数据文件,文件夹里面可以包含数据文件,也可以包含其他的组对象,这样嵌套下去,就形成了一个复杂的数据对象,这点正好的对应于HDF逻辑结构的层次性。但对于文章中说的HDF利用自我描述的方式实现跨平台这一观点不太了解。
HDF文件格式主要有以下特点:(1)层次式表达,可以灵活地表达文件中不同数据元素之间的逻辑关系,如包含,并列等(2)B树存储,主要是为了体现存储的层次性,但对于B树结点文章并没有给出过多的解释,不太理解(3)面向对象,现在好像是一个计算机的东西都会提到面向对象,而在HDF中主要体现在对象的