julia - 在 Julia 中打开 HDF5 文件

标签 julia hdf5

我在 Windows 10 机器上安装了 Julia 1.7.2 和 HDF v“0.16.2”。 我在打开 HDF5 文件时遇到问题:

using HDF5
raw_hdf_data = h5open("Data_2021-03-17_11-21-19.h5", "r")  
obj = raw_hdf_data["Group"]["Data_1"]
HDF5.read(obj)

但出现错误:

HDF5.API.H5Error: Error reading dataset /Flatfield/Data_1
libhdf5 Stacktrace:
[1] H5PL__find_plugin_in_path: Plugin for dynamically loaded library/Can't open directory or file
can't open directory

[11] H5Dread: Dataset/Read failed
can't read data

Stacktrace:
[1] macro expansion @ C:\Users\jhsu.julia\packages\HDF5\auFb7\src\api\error.jl:18 [inlined]
[2] h5d_read(dataset_id::HDF5.Dataset, mem_type_id::HDF5.Datatype, mem_space_id::HDF5.Dataspace, file_space_id::HDF5.Dataspace, xfer_plist_id::HDF5.DatasetTransferProperties, buf::Matrix{Int64}) @ HDF5.API C:\Users\jhsu.julia\packages\HDF5\auFb7\src\api\functions.jl:508

[3] generic_read(::HDF5.Dataset, ::HDF5.Datatype, ::Type{Int64}) @ HDF5 C:\Users\jhsu.julia\packages\HDF5\auFb7\src\HDF5.jl:978
[4] read(obj::HDF5.Dataset) @ HDF5 C:\Users\jhsu.julia\packages\HDF5\auFb7\src\HDF5.jl:878
[5] (::var"#66#67")(fid::HDF5.File) @ Main .\In[68]:3
[6] h5open(::var"#66#67", ::String, ::Vararg{String, N} where N; swmr::Bool, pv::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ HDF5 C:\Users\jhsu.julia\packages\HDF5\auFb7\src\HDF5.jl:287
[7] h5open(::Function, ::String, ::String) @ HDF5 C:\Users\jhsu.julia\packages\HDF5\auFb7\src\HDF5.jl:285
[8] top-level scope @ In[68]:1
[9] eval @ .\boot.jl:360 [inlined]
[10] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String) @ Base .\loading.jl:1116

非常感谢!

最佳答案

我在更新 HDF5 库时遇到了同样的问题。
可能文件已压缩,并且需要以下插件之一。尝试:

] add H5Zblosc, H5Zbzip2, H5Zlz4, H5Zzstd
using HDF5, H5Zblosc, H5Zbzip2, H5Zlz4, H5Zzstd
raw_hdf_data = h5open("Data_2021-03-17_11-21-19.h5", "r")  
...

现在它应该打开文件。

关于julia - 在 Julia 中打开 HDF5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71344267/

相关文章:

c++ - 在 C++ 中读取字符串数组 HDF5 属性

c - 用C将3D数据写入HDF5文件

garbage-collection - 在 Julia 中高效优雅地迭代集合和数字的并集

julia - 如何确定文件系统路径是否已在 Julia 中使用

julia - Julia 中的逐元素复合赋值运算符

python - HDF5格式的时间序列存储

Julia 添加包时出现 "package names could not be resolved"错误

parallel-processing - 多进程模块加载

c++ - 在 C++ 中将 hdf5 文件读取到动态数组

python-2.7 - 使用 h5py 沿新轴将数据添加到现有 h5py 文件