HDF命令行工具.docx

上传人:b****8 文档编号:10020068 上传时间:2023-02-08 格式:DOCX 页数:11 大小:35.71KB
下载 相关 举报
HDF命令行工具.docx_第1页
第1页 / 共11页
HDF命令行工具.docx_第2页
第2页 / 共11页
HDF命令行工具.docx_第3页
第3页 / 共11页
HDF命令行工具.docx_第4页
第4页 / 共11页
HDF命令行工具.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

HDF命令行工具.docx

《HDF命令行工具.docx》由会员分享,可在线阅读,更多相关《HDF命令行工具.docx(11页珍藏版)》请在冰豆网上搜索。

HDF命令行工具.docx

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(缺省)保留图像为非压缩状态。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1