【问题标题】:Read HDF5 in streaming in java在 Java 流中读取 HDF5
【发布时间】:2020-03-21 01:11:07
【问题描述】:

我想读取几 GB 的 HDF5 流。为了可移植性,我还想留在本机 java 中。

我尝试过 Java HDF 对象包和 Java HDF5 接口 (JHI5),但这些是一些 JNI 解决方案(如果我找不到更好的选择,我可能会重新考虑)。

https://github.com/jamesmudd/jhdf 是原生 java 库,但不支持切片或流式传输,因此不适用于大文件。

在原生 Java 中有更多选择吗?

编辑:我发现了这个:https://www.unidata.ucar.edu/software/netcdf-java/current/ 它支持切片但不支持流式传输。

【问题讨论】:

标签: java hdf5 hdf


【解决方案1】:

作为jhdf 的作者,我想我会添加我的答案。我不知道有任何其他纯 Java 库试图读取 HDF5。这是我开始写一个的主要原因。尽管jhdf 目前不支持切片或流式传输,但我当然希望将来添加它,但这可能还有一段时间。话虽如此,如果有足够的堆空间,几个千兆字节的文件应该没问题,所以可能仍然值得一试。您可能需要一个大约两倍于您要打开的数据集大小的 xml。我已经使用jhdf成功打开了几个千兆字节的数据集。

【讨论】:

  • 从我的测试中,我需要至少 3 倍于 Xmx 的数据集大小(我根本没有)。我的场景中 jhdf 的另一个限制是读取文件或字节数组的唯一可能性。由于我有一个流而不是文件,因此我受到最大数组大小的限制,并且必须在打开文件之前将其写入磁盘。由于我无法提供任何流媒体支持,因此我编写了一个客户端,将 HDF5 转换为自定义格式(使用 netcdf-java,因为它具有切片功能),我可以轻松地在流媒体中读取(并通过网络使用压缩以及原始 hdf5 gzip)。
猜你喜欢
  • 2015-03-19
  • 2015-07-25
  • 1970-01-01
  • 2014-06-01
  • 2018-05-02
  • 2015-12-28
  • 2014-05-23
  • 2021-08-03
  • 2013-12-12
相关资源
最近更新 更多