有人在NetCDF和HDF5方面有足够的经验,可以为它们提供一些优点/缺点,作为存储科学数据的方法吗?
我使用过HDF5,并且想通过Java进行读写,但是该接口实际上是C库的包装,这使我感到困惑,因此NetCDF似乎很吸引人,但我对此一无所知。
编辑:我的应用程序仅用于数据记录,因此我得到的文件具有自描述格式。对我而言,重要的功能是能够添加任意元数据,具有快速写入访问权限以附加到字节数组以及具有单写入器/多读取器并发性(强烈建议但并非必须并发。NetCDF文档说它们具有SWMR,但没有没有说他们是否支持任何机制来确保两个编写者无法一次打开同一个文件而导致灾难性的结果)。我喜欢HDF5的层次结构(特别是我喜欢有向无环图的层次结构,比像“常规”文件系统的层次结构更灵活),现在正在阅读NetCDF文档...如果它只允许每个文件,那么它可能对我不起作用。:(
更新-看起来NetCDF-Java从netCDF-4文件读取,但仅从不支持层次组的netCDF-3文件写入。该死的
2009年7月14日更新:我开始对Java中的HDF5感到非常沮丧。可用的库不是很好,它有一些主要的绊脚石,它们与Java的抽象层(复合数据类型)有关。C的一种很好的文件格式,但看起来好像丢了。> :(