我是一名物理学家,通常处理使用C程序生成的大量数值数据.通常,我将所有内容存储为ASCII文件中的列,但这导致了大量文件.鉴于我的空间有限,这是一个问题,我想对整个事情有点聪明.所以......
是否有比ASCII更好的格式?我应该使用二进制文件,还是自定义格式的某些库?
我应该单独压缩每个文件,还是整个目录?在任何一种情况下,我应该使用什么格式?
非常感谢!
在你的鞋,我会考虑的标准的科学数据格式,这是更节省空间和耗时比ASCII,但(虽然也许不是很为比特有效纯,依赖于机器的二进制格式)仍然提供标准的文件,并便携,快速的库,以方便读取和写入数据.
如果以纯二进制形式存储数据,元数据对于从数据中再次理解是至关重要的(这些数字是单精度还是双精度,或整数和长度,数组的维数等等),归档和检索配对数据/元数据对的问题可以,并且在实践中,偶尔会使完美的数据集无法使用 - 真正的遗憾和浪费.
特别是CDF是"一种自我描述的数据格式,用于以独立于平台和学科的方式存储和处理标量和多维数据",许多库和实用程序都可以使用它.作为替代方案,您可能还会考虑NetCDF和HDF - 我对这些不太熟悉(以及灵活性与尺寸与速度问题等相关的权衡)但是,看到它们在许多领域中被科学家使用的范围有多广,我怀疑任何这三种格式可以给你非常可接受的结果.
如果您需要较长时间的文件,它们是重要的实验数据,可以为您证明一些东西,请不要使用二进制格式。当您的架构发生变化时,您将无法阅读它们。危险的。坚持使用文本(是的 ascii)文件。
选择适合您需要的压缩格式。压缩时间是一个问题吗?通常不会,但请自行检查。减压时间有问题吗?通常是的,如果你想对其进行数据分析。在这种情况下我会选择 bzip2。这在当今很常见,经过充分测试,万无一失。我会单独处理文件,因为文件越大,丢失的可能性就越大。(位翻转等)。
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |