有没有足够的经验w/NetCDF和HDF5给出一些关于它们的优缺点作为存储科学数据的方式?
我已经使用过HDF5并希望通过Java进行读/写,但是接口本质上是C库的包装器,我发现这让人感到困惑,所以NetCDF看起来很吸引人,但我几乎一无所知.
编辑:我的应用程序"仅"用于数据记录,因此我得到一个具有自描述格式的文件.对我来说,重要的功能是能够添加任意元数据,具有快速写入访问权限以附加到字节数组,以及具有单写入器/多读取器并发(强烈首选但不是必须的.NetCDF文档说他们有SWMR但是没有不能说它们是否支持任何机制来确保两个作者不能同时打开同一个文件并带来灾难性后果.我喜欢HDF5的层次结构(特别是我喜欢有向无环图层次结构,比"常规"文件系统类层次结构更灵活),现在正在阅读NetCDF文档...如果它只允许一个数据集文件然后它可能不适合我.:(
更新 - 看起来像NetCDF-Java从netCDF-4文件读取,但只从不支持分层组的netCDF-3文件写入.织补.
更新2009年7月14日:我开始对Java中的HDF5感到非常不满.可用的库不是很好,它有一些主要的绊脚石,与Java的抽象层(复合数据类型)有关.C的一个很好的文件格式,但看起来我只是输了.> :(
Ste*_*ini 30
我强烈建议您使用HDF5而不是NetCDF.NetCDF是平的,如果你不能对东西进行分类,它会在一段时间后变得非常脏.当然分类也是一个争论的问题,但至少你有这种灵活性.
当我写Q5Cost时,我们对HDF5与NetCDF进行了准确的评估,最终的结果是HDF5.
Mik*_*ike 22
从长远来看,我不得不承认使用HDF5非常容易.将简单的数据结构转换为NetCDF格式并不难,但是在未来操纵它们是一种痛苦.
该"H"在HDF5代表"heirarchical",这翻译(我反正)到非常简单的方法来操作数据,仅通过中移动节点和从其他地方引用节点.
我可以问这是一个什么样的项目?我将它们用于许多HPC科学建模任务.我可以假设你也这样做吗?如果是这样,我看到的趋势是人们转向HDF5,但在您的特定领域可能会有所不同.
然而,你最终会去,祝你好运!
Edw*_*ett 16
从版本4.0(2008)开始,NetCDF可以读取和写入大多数HDF5文件,并通过增强型数据模型提供对HDF5的分层功能的访问.
HDF5功能非常丰富,并具有一些出色的性能.
NetCDF具有更简单的API和更广泛的工具库.有许多工具可以处理netCDF数据.
尝试在每个中编写一些小样本应用程序,并比较经验.如果你的代码未来可扩展到并行执行(通过MPI等)对你很重要,我知道HDF有一个并行实现,人们不断努力改进.我不确定NetCDF.
延迟编辑:对于NetCDF,现在有来自Argonne的Parallel NetCDF.它运作良好,开发团队非常积极地进一步改进它.
1)Netcdf-4 C库是HDF-5 C库之上的一层.该API被认为比HDF5库更简单,但最终您具有几乎相同的功能.Netcdf不支持图形,但HDF5支持图形.事实上,我认为HDF并不能阻止图表中的周期.
2)HDF组在HDF-5 C库之上有一个Java API.
3)Unidata有Netcdf-Java库,它是纯Java,但只能读取HDF-5.
| 归档时间: |
|
| 查看次数: |
19091 次 |
| 最近记录: |