HDF命令行工具.docx
- 文档编号:10020068
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:11
- 大小:35.71KB
HDF命令行工具.docx
《HDF命令行工具.docx》由会员分享,可在线阅读,更多相关《HDF命令行工具.docx(11页珍藏版)》请在冰豆网上搜索。
HDF命令行工具
第八章HDF命令行工具
本章简介
本章将介绍HDF命令行实用工具。
在本章中,用户将有机会练习一些最有用的HDF实用命令行工具,如hdp和vshow。
8.2HDF命令行实用工具介绍
HDF软件包提供了一组命令行实用工具。
HDF命令行实用工具是在命令行提示符下执行一些小的应用程序。
这些程序可使用户不用编写自己的程序即可执行普通操作。
HDF命令行工具分为三类:
查询工具,转换工具和压缩工具。
表8a列出了这些工具的名称和描述。
假如已经安装了HDF4.1r3软件包,就可以在HDF4.1r3/bin子目录里找到这些程序。
设置正确的路径后,能从任何子目录执行这些命令行工具。
完整的HDF命令行工具列表可以在http:
//hdf.ncsa.uiuc.edu/UG41r3_html/UG_BookTOC15.html中找到。
表8aHDF命令行工具
8.3HDF查询工具
8.3.1hdp
hdp(HDFdumper)工具是从指定的HDF文件中获取所有对象通用信息最为有用的工具。
它可列出HDF文件在各层的细节内容。
它还能把倾印出文件中一个或多个特定对象的数据。
hdf提供一组命令,允许用户确定显示何种信息。
下面例子展示怎样使用hdf获得example.hdf的信息,example.hdf是由前面章节的程序创建的。
如果没有创建你自己的example.hdf,可以下载example.hdf。
进入example.hdf文件所在的子目录,确保命令路径包含HDF工具目录,然后键入下列命令:
示例输出:
hdplist显示HDF文件的内容。
C:
\HDF4.1r3\bin>hdplistexample.hdf
File:
example.hdf
Filelibraryversion:
Major=4,Minor=1,Release=3
String=NCSAHDFVersion4.1Release3,May1999
VersionDescriptor:
(tag30)
Refnos:
1
FileIdentifier:
(tag100)
Refnos:
1
FileDescription:
(tag101)
Refnos:
1
Numbertype:
(tag106)
Refnos:
112
ImageDimensions:
(tag300)
Refnos:
1
RasterImageData:
(tag302)
Refnos:
1
RasterImageGroup:
(tag306)
Refnos:
1
SciDatadimensionrecord:
(tag701)
Refnos:
12
ScientificData:
(tag702)
Refnos:
5
NumericDataGroup:
(tag720)
Refnos:
4
Vdata:
(tag1962)
Refnos:
681015
VdataStorage:
(tag1963)
Refnos:
681015
Vgroup:
(tag1965)
Refnos:
237911131416
示例输出:
hdpdumpsds显示HDF文件中科学数据集的内容
C:
\HDF4.1r3\bin>hdpdumpsdsexample.hdf
Filename:
example.hdf
VariableName=mySDS
Index=0
Type=64-bitfloatingpoint
Ref.=4
Rank=3
Numberofattributes=0
Dim0:
Name=fakeDim0
Size=2
ScaleType=number-typenotset
Numberofattributes=0
Dim1:
Name=fakeDim1
Size=5
ScaleType=number-typenotset
Numberofattributes=0
Dim2:
Name=fakeDim2
Size=3
ScaleType=number-typenotset
Numberofattributes=0
Data:
1.0000002.0000003.000000
4.0000005.0000006.000000
7.0000008.0000009.000000
10.00000011.00000012.000000
13.00000014.00000015.000000
16.00000017.00000018.000000
19.00000020.00000021.000000
22.00000023.00000024.000000
25.00000026.00000027.000000
28.00000029.00000030.000000
示例输出:
hdpdumpsds显示HDF文件中科学数据集的内容。
C:
\HDF4.1r3\bin>hdpdumpgrexample.hdf
Filename:
example.hdf
ImageName=MyImage
Index=0
Type=8朾itunsignedinteger
width=10;height=8
Ref.=2
ncomps=1
Numberofattributes=0
Interlace=0
Data:
012345678910111213141516171819
2021222324252627282930313233343536
3738394041424344454647484950515253
5455565758596061626364656667686970
717273747576777879
示例输出:
hdpdumpgr显示example.hdf文件中GR对象的内容。
C:
\HDF4.1r3\bin>hdpdumpvd杗"SimulationData1"example.hdf
Filename:
example.hdf
FileLabel#0:
Thisisafilelabel
Filedescription#0:
Thisisafiledescription
Vdata:
3
tag=1962;reference=15;
numberofrecords=4;interlace=FULL_INTERLACE(0);
fields=[X,Y,Temp];
recordsize(inbytes)=12;
name=SimulationData1;class=2D_Temperature_Grid;
numberofattributes=0
?
fieldindex0:
[X],type=5,order=1
numberofattributes=0
?
fieldindex1:
[Y],type=5,order=1
numberofattributes=0
?
fieldindex2:
[Temp],type=5,order=1
numberofattributes=0
Loc.Data
02.3000001.50000023.5000003.4000005.7000008.030000
0.5000003.5000001.2200001.8000002.6000000.000000
注意:
命令“vshowexample.hdf+”可用来找出存于“example.hdf”文件中数据对象的名称。
示例输出:
hdpdumpvg显示HDF文件中Vgroups的内容。
C:
\HDF4.1r3\bin>hdpdumpvg杗"MyVgroup"example.hdf
Filename:
example.hdf
FileLabel#0:
Thisisafilelabel
Filedescription#0:
Thisisafiledescription
Vgroup:
7
tag=1965;reference=16;
name=MyVgroup;class=Example;
numberofentries=2;
numberofattributes=0
Entries:
?
/P>
#0(RasterImageGroup)
tag=306;reference=2;
#1(NumericDataGroup)
tag=720;reference=4;
注意:
命令“vshowexample.hdf+”可用来找出存于“example.hdf”文件中数据对象的名称。
注意:
每个hdp命令都提供一个可选标志。
完整信息请参见HDF用户指南。
8.3.2hdfls
hdfls工具列出HDF文件中每个数据对象的标记和引用号。
这个命令行与hdplist命令的功能类似。
示例输出:
hdfls工具
C:
\HDF4.1r3\bin>hdflsexample.hdf
example.hdf:
Filelibraryversion:
Major=4,Minor=1,Release=3
String=NCSAHDFVersion4.1Release3,May1999
VersionDescriptor:
(tag30)
Refnos:
1
FileIdentifier:
(tag100)
Refnos:
1
FileDescription:
(tag101)
Refnos:
1
Numbertype:
(tag106)
Refnos:
112
ImageDimensions:
(tag300)
Refnos:
1
RasterImageData:
(tag302)
Refnos:
1
RasterImageGroup:
(tag306)
Refnos:
1
SciDatadimensionrecord:
(tag701)
Refnos:
12
ScientificData:
(tag702)
Refnos:
5
NumericDataGroup:
(tag720)
Refnos:
4
Vdata:
(tag1962)
Refnos:
681015
VdataStorage:
(tag1963)
Refnos:
681015
Vgroup:
(tag1965)
Refnos:
237911131416
8.3.3vshow
vshow工具显示HDF文件中Vdata对象的信息。
例如,下列命令显示example.hdf文件中存于Vdata对象里的所有数据记录。
示例输出:
vshow工具
C:
\HDF4.1r3\bin>vshowexample.hdf?
/P>
FULLDUMP
FILE:
example.hdf
LoneVdatas:
Lvs:
15<1962/15>nv=4i=0fld[X,Y,Temp]vsize=12(SimulationData1{2D_Temperature_Grid})
0:
fld[X],type=5,order=1
1:
fld[Y],type=5,order=1
2:
fld[Temp],type=5,order=1
2.3000001.50000023.500000
3.4000005.7000008.030000
0.5000003.5000001.220000
1.8000002.6000000.000000
0attributes.
8.3.4hdfed
HDF编辑工具hdfed是一个针对HDF文件的行编辑器。
允许有经验的HDF用户灵活处理HDF文件的元素。
这些处理功能包括:
选择组并显示它们的信息
倾印组信息至输出文件
把组数据写入输出文件
从HDF文件里删除组
把组插入HDF文件
替换HDF文件中的要素
编辑HDF文件中任何要素的标记和描述符
hdfed工具是为在数据要素层处理HDF文件的用户而设计的,它并非为HDF文件提供一个高级显示工具。
为了有效使用hdfed,需要对HDF格式有深入的了解,因此,建议那些不熟悉HDF低级别组件的用户不要使用它。
完整介绍请参见HDF用户手册。
8.4HDF数据格式转换工具
8.4.1原始数据到HDF的转换
工具有:
r8tohdf,r24hdf8,paltohdf和fp2hdf。
r8tohdf工具把一组原始光栅图像转换为HDF8比特光栅图像格式,并把它们写入文件。
命令行类似下面:
r8tohdfrowscols8-bit_raster.hdfraster_file.raw[-ppalette_file.raw]
原始调色板文件是可选项。
假如raster.raw文件为256x512的原始光栅图像。
假定名为palette.raw的调色板以原始形式存于文件。
如要创建一个光栅图像HDF文件,则需使用命令行:
r8tohdf26512raster_set.hdf-ppalette_file.hdfraster.raw
r24hdf8工具量化原始的RGB24比特光栅图像,创建一个带有256色调色板的8比特图像,并把调色板和8比特的光栅图像存于HDF文件中。
命令行句法为:
r24hdf8colsrowsraster24_file.rawraster8_file.hdf
paltohdf工具把一个原始调色板文件转化为HDF格式。
原始调色板文件有768字节,以下列顺序组织:
256红色值,256绿色值和256兰色值。
一旦调色板被转换成HDF格式,调色板数据就以RGBRGB…RGB的形式交替。
把原始调色板转换为HDF调色板,执行类似于下面的命令:
paltohdfpalette_file.rawpalette_file.hdf
fp2hdf工具把原32比特或64比特数据转换为一个HDF文件,此文件包含一个8比特的光栅图像数据集,一个32双浮点科学数据集,或两者都有。
输入数据可以来自于文本文件、二进制文件或HDF文件。
若转换包含2维数据的文本文件,数据必须为下列格式:
作为一个怎样使用fp2hdf的示例,考虑一个包含原始32比特浮点数据的文件。
把该原始文件转换为一个包含8比特光栅图像和科学数据集的HDF文件,命令行操作如下:
fp2hdffloat32.raw杘float32.hdf杛杅
-r指示创建光栅数据集,-f表示创建科学数据集。
8.4.2把HDF转换为原始数据
工具:
hdftor8和hdftopal。
Hdftor8工具从HDF文件中提取光栅图像和调色板,并把它们存于单独的原始数据文件中。
例如,一个名为input.hdf的文件含有3个512x256光栅图像和3个调色板。
命令行类似下面:
hdftor8input.hdf
hdftor8input.hdf创建6个文件,名为img001?
12.256、img002?
12.256、img003?
12.256、pal001、pal002、pal003。
hdftopal工具把HDF文件中的调色板转换为原始数据文件。
原始数据文件有768字节,第一个256字节代表红色强度值,第二个256字节代表绿色强度值,第三个256字节代表兰色强度值。
这个工具执行paltohdf工具的转换操作。
命令行类似如下:
hdftopalHDF杅ormat杙alette杅ilenameraw杅ormat杙alette杅ilename
8.4.3HDF到HDF的转换工具
irstosds和hdf24hdf8。
ristosds工具把一组连续的HDF光栅图像文件转换为单个的HDF科学数据集。
生成的科学数据集是一个3维数组,宽和高与光栅图像的维数相等。
因此,序列光栅图像必须有相同的维数。
数组的第三维,或称长度,由转换中所包含的图像总数确定。
假如图像中包含调色板,这个调色板必须在第一个HDF输入文件中。
这些图像只能与一个调色板关联,处理完第一个调色板后,该实用工具将忽略它所遇到的任何其它别的调色板数据。
命令行语法为:
ristosdsimage_file_1.hdfimage_file_2.hdf…image_file_n.hdf杘sds_file.hdf
hdf24hdf8工具把24比特的光栅图像数值量化为一个8比特的具有256色调色板的光栅图像,并把这个调色板和8比特光栅图像存于一个HDF文件里。
命令行语法为:
hdf24hdf824朾it_image_file.hdf8朾it_image_file.hdf
8.5HDF数据压缩工具
hdfpack和hdfcomp。
Hdfpack工具通过移去删除数据元素后所留下的空格来压缩HDF文件,这些空格是数据要素删除后留下的。
通过从解包文件中读取现存的数据,然后把它们写入一个新的打包文件中。
命令行如下:
hdfpackunpacked_file.hdfpacked_file.hdf
hdfpack工具还提供一些附加选项,以定制HDF文件的压缩方式。
有关这些选项的详细介绍见HDF用户手册。
Hdfcomp工具把8比特的光栅图像读入一个或多个HDF文件里,对它们进行压缩并把压缩图像存于一个新的HDF文件里。
假如输出的HDF文件已经存在,这些压缩的图像将附在它后面。
命令行语法如下:
hdfcompoutput.hdf[朿|杛|杋]input_1.hdf[朿|杛|杋]input_2.hdf…[朿|杛|杋]input_n.hdf
这里-c表示通过run-lengthencoding压缩,-I表示使用IMCOMP算法压缩,-r(缺省)保留图像为非压缩状态。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HDF 命令行 工具