julia - 在 Julia 中调整 HDF5 数据集的大小

标签 julia hdf5

有没有办法使用 Julia 的 HDF5.jl 在 HDF5 中调整分块数据集的大小?我在文档中没有看到任何内容。查看源代码,我发现的只有set_dims!() ,但这不能扩展数据集(只能缩小它)。 HDF5.jl 是否能够放大现有(分块)数据集?这对我来说是一个非常重要的功能,我宁愿不必调用另一种语言。

最佳答案

我相信我已经弄清楚了。问题是我忘记给数据空间一个足够大的 max_dims。这样做需要深入研究较低级别的 API。我找到的解决方案是:

dspace = HDF5.dataspace((6,20)::Dims, max_dims=(6,typemax(Int64)))
dtype = HDF5.datatype(Float64)
dset = HDF5.d_create(prt, "trajectory", dtype, dspace, "chunk", (6,10))

一旦我创建了一个可以适当调整大小的数据集,set_dims!函数正确调整数据集的大小。

我想我找到了 API 的一些小问题,我必须在本地版本中解决或更改这些问题。我会就这些问题与 HDF5.jl 所有者联系。对于那些有兴趣的人:
  • 常数H5S_UNLIMITED类型为 Uint64 ,但 dataspace函数只接受 Int64 的元组,这就是为什么我使用 typemax(Int64)我的 max_dims如何模仿H5S_UNLIMITED是派生的。
  • d_create表格我使用的电话 h5d_create错误地;它通过 parent而不是 checkvalid(parent).id (与其他形式的 d_create 对比可以看出)。
  • 关于julia - 在 Julia 中调整 HDF5 数据集的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30875815/

    相关文章:

    julia - 在 Julia 中编写用于传递 GroupedDataFrame 的函数方法

    string - 在 Julia 中反转字符串

    types - f(x::Real) 和 f{T <: Real}(x::T) 的区别?

    c - 为什么我不能从 Golang 中正确读取 C 常量?

    python - 从保留形状的现有数据集创建新的 HDF5 数据集

    c++ - hdf5/c++ 中的测试组存在

    julia - 导出函数名称会在Julia中导出所有不同的函数版本吗?

    julia - 读取子文件夹中的csv文件

    python - 为什么如果我将多个空的 Pandas 系列放入 hdf5 hdf5 的大小如此巨大?

    python - 从 HDF5 文件读取和写入 numpy 数组