资源描述:
《HDF数据结构研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、HDF数据结构研究1.HDF概念1IDF,HierarchicalDataFormat,分层数据格式,美国国家高级计算应用中心NCSA(NationalCenterforSupercomputingApplications)为了满足各领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式,是一种分层式数据管理结构,被地球观测系统数据和信息系统核心系统所选用作为标准数据格式。它的表现形式是一种多目标的文件格式,目的是为了在分布式环境中共享科学数据。HDF文件格式的优势在于:对移植性强(独立于操作平台);属于超文本文件;
2、可以存储并处理人数据量;一个文件集可以管理多种类型的数据结构;具有可扩展性。由于HDF的诸多优点,这种格式已经被广泛用于忖前国外各种卫星传感器的标准数据格式。在影像数据库多源数据管理中,HDF格式发挥了很好的作用,利用HDF数据结构建立远程图象工程,并为数据库进行交互;可以进行远程图像处理;远程影像解译,统计分析;影像运算、信息挖掘、影像分类;综合处理影像、矢量、高程数据,三维可视显示等。2.HDF数据结构HDF文件有六种主要数据类型,如图:1•栅格图像RasterImage:数据模式提供一种灵活方式存储、描述栅格图像数据,
3、包括8bit栅格图像。2.调色板Palette:也叫作彩色查对表,它提供图像的色谱。3.科学数据集ScientificDataSet:用来存储和描述多维科学数据陈列。4.HDF注释Annotation:是文字串,用來描述IIDF文件或HDF数据冃标。5.Vdata:是一个框架,用于存储和描述数据表。6.Vgroup:是用来把相关数据目标联系起来。一个Vgroup可以含有其它Vgroup,以及数据目标。任一个HDF目标均可以包括进某个Vgroup中。而在HDF5中,建立一个新的HDF文件后,会有5种数据格式显示:HDF4中只有
4、前三种,但nasa卜-来的数据再HDFviewCJGroup里面显示的是版木4.DatasetImageTable命Data1y
5、)e蘆Link1.对于NASA的MERRA300.prod.assim.inst6_3d_ana_Nv.2010053l.hdf进行的格式研究。其屮有基于SD(sciencedata)和GD(VgroupID)两种方式对HDF文件进行处理,例如下图,EOSGRID就是一个Vgroup,而PS就是一个SD的datafieldo利用SD方式进行读写1)SD方式读取的变量,是整个HDF文件的变量,没有层
6、次结构的显示,下面是输出的和HDFview比对的结果。FUNCTIONHDF_SDVARDIR,HDFIDvarnames='1hdf_sd_f订einfo,hdfid,nvars,ngallsif(nvarsgt0)thenbeginvarnames=strarr(nvars)forindex=OL,nvars-ILdobeginvarid=hdf_sd_select(hdfid,index)hdf_sd_getinfo,varid,name=namchdf_sd_endaccess,varidvarnames[index
7、]=nameendforendifreturn,varnamesEND1DL>pp=hdf_sdvardir(hdfid)IDL>print,ppPSDELPTUVQV03XDim:EOSGRIDYDim:EOSGRIDHeight:EOSGRIDTIME:EOSGRIDXDimYDim
8、茁MERRA300.prod.assim.inst6_3cqEOSGRIDfQDataFieldsMasiTU®XDim®YDim®Height踏TimeaQGridAttributesjXDim:EOSGRID(dimension)YDi
9、m:EOSGRID(dimension)Height:EOSGRID(dimensiorHeightTime1)SD方式读取的属性,当变量输入为空时,显示的是整个HDF文件的属性。下面是输出的和HDFview比对的结果。FUNCTIONHDF_SD_ATTDIR,IIDEID,VARNAME辻(n_elements(hdfid)eq0)then$message,'IIDFIDisundefined,attnames-if(varnameeq'')thenbeginhdf_sd_fileinfo,hdfid,nvars,nat
10、tsendifelsebeginindex=hdf_sd_nametoindex(hdfid,varname)varid=hdf_sd_select(hdfid,index)hdf_sd_getinfo,varid,natts二nattsendelseif(nattsgt0)thenbeg