大型网格数据集的存储

Posted

技术标签:

【中文标题】大型网格数据集的存储【英文标题】:Storage for large gridded datasets 【发布时间】:2011-09-23 11:30:12 【问题描述】:

我正在为大型网格数据集寻找一种良好的存储格式。该应用程序是气象学,我们更喜欢该领域中常见的格式(以帮助与他人交换数据)。我不需要处理特殊的数据结构,应该有 Fortran API。我目前正在考虑 HDF5、GRIB2 和 NetCDF4。

这些格式在数据压缩方面的比较如何?他们的主要局限是什么?学习曲线有多陡峭?还有其他值得研究的存储格式吗?

我没有找到大量概述这些格式的差异和优缺点的材料(有一个相关的 SO thread 和 a presentation 比较 GRIB 和 NetCDF)。

【问题讨论】:

有一个很好的用于 HDF5 的 Fortran 包装器,称为 FUTILS - 这大大简化了 HDF5 文件的编写,但代价是能够使用并行 HDF5 IO。 【参考方案1】:

对不起,我不是气象学,但在我看来,科学界正在向 HDF5 迈进,例如,参见 NERSC 页面:

http://www.nersc.gov/users/training/online-tutorials/introduction-to-scientific-i-o/

我不得不对天体物理学数据采取同样的选择,因为我们过去一直使用 FITS,而且我发现开始使用 HDF5 很容易,因为不仅有 fortran 和 C 的 API,还有 C++ 的 API,还有一个 python 包(h5py )。

【讨论】:

【参考方案2】:

我当然会考虑 HDF5,因为它似乎是科学界的趋势。

此外,HDF5 具有内置过滤器(包括压缩过滤器),您也可以自己编写。

最后看一下 HDF5“分块”数据集,因为如果您有网格数据集,它们可能会非常有用。

http://www.hdfgroup.org/

【讨论】:

以上是关于大型网格数据集的存储的主要内容,如果未能解决你的问题,请参考以下文章

用于存储大型数据集的数据结构 [关闭]

(预)处理存储在 json 中的大型数据集的最有效方法是啥?

在 phpMyAdmin SQL 表中存储大型数据集的有效方法

用于大型数据集的 Python defaultdict

对于大型数据集的查询,日期类型是不是比日期时间更高效?

在 Pandas 中加入两个大型数据集的最佳方法