netCDF vs HDF5

107 views
Skip to first unread message

董理

unread,
Nov 28, 2009, 10:30:13 PM11/28/09
to SwapSpace
数据要用带有自描述的格式存放才便于以后被处理和显示,目前主流的有netCDF和HDF5。模式输出基本上都是用netCDF,不过netCDF格式
只允许数据中有一个无限制维,通常就是时间维,因此有些限制,而HDF5完全没有限制。并且netCDF-4格式也开始向HDF5转。HDF5有点类似
于Linux下的目录结构,分层次,比较灵活。我目前比较倾向于用HDF5,不知道各位有什么建议?

PU Ye

unread,
Nov 29, 2009, 10:07:10 AM11/29/09
to 董理, SwapSpace
netcdf 和 HDF5是主流的两种自描述格式文件
HDF5数据支持的可视化软件比较多,主流的可视化软件基本都支持,同时它的
通用性比较强,很多复杂的数据都能进行描述,非常便于图形可视化,这是他的优点。
但是它对数据的描述复杂本身也是缺点。在气象上的数据基本还是规则的经纬度数据,描述比较简单。
因此气象领域内主流还是netcdf格式。
所以我认为如果有兴趣可以把模式输出改成hdf5便于可视化的工作。
但是,目前netcdf格式还是需要保留。在各种测试实验和国际交流上,基本都要求提交netcdf格式的数据
因此,我认为现在还不能完全放弃netcdf格式。
或者编写一些hdf5和netcdf转换的程序也是可行的方法吧。

>-----原始邮件-----
> 发件人: "董理" <dongl...@gmail.com>
> 发送时间: 2009-11-29 11:30:13
> 收件人: SwapSpace <swap...@googlegroups.com>
> 抄送:
> 主题: [SwapSpace] netCDF vs HDF5

董理

unread,
Nov 29, 2009, 10:31:38 AM11/29/09
to PU Ye, SwapSpace
PU Ye 写道:
谢谢师兄指教~这两天看了HDF5的文档,觉得层次结构很强,类似于目录结构,便
于组织数据。我之所以看HDF5是因为我要输出的数据的维数可能随时间改变,而
netCDF只允许时间维可变,因此无法满足需求。

董理

unread,
Nov 29, 2009, 8:04:33 PM11/29/09
to PU Ye, SwapSpace
董理 写道:
师兄,你好!再问一个具体编译问题,我有一个程序调用HDF5,编译的命令行是:

cd /home/dongli/work/build/init_data && /opt/intel/Compiler/11.1/056/bin/intel64/ifort  -o CMakeFiles/gen_init_data.dir/gen_init_data.f90.o  -g -I/home/dongli/work/build/util -I/home/dongli/work/build/core -I/opt/netcdf.ifort/include -I/opt/hdf5.ifort/1.8.4/include   -fPIC -c /home/dongli/work/fpsw/init_data/gen_init_data.f90

我已经包含了HDF5的头文件目录,但是却出错了:

...: error #6404: This name does not have a type, and must have an explicit type.   [H5T_NATIVE_FLOAT]
            call h5tcopy_f(H5T_NATIVE_FLOAT, datatype_id, error)
---------------------------^

这是怎么回事呢?HDF5也可以用它提供的脚本h5fc编译,我试了一个例子,打印出它的实际命令行,编译时也就是加了
-I/opt/hdf5.ifort/1.8.4/include,而它却可以编 译。

董理

unread,
Nov 29, 2009, 8:20:29 PM11/29/09
to PU Ye, SwapSpace
董理 写道:
问题清楚了,H5T_NATIVE_FLOAT是C接口里的常量,Fortran接口里对应的应该是H5T_NATIVE_REAL~ 刚想到了 :)
Reply all
Reply to author
Forward
0 new messages