【发布时间】:2020-10-06 16:48:34
【问题描述】:
我正在尝试读取具有以下属性的数据集:
我正在为 Visual Studio 2017 使用 HDF5 编译的静态库。我主要使用 C++ API,读取非压缩数据集没有问题。在这种情况下我应该如何读取 LZF 压缩数据集?
【问题讨论】:
我正在尝试读取具有以下属性的数据集:
我正在为 Visual Studio 2017 使用 HDF5 编译的静态库。我主要使用 C++ API,读取非压缩数据集没有问题。在这种情况下我应该如何读取 LZF 压缩数据集?
【问题讨论】:
您需要构建 lzf 过滤器并使其可用于 HDF5。
h5py repo 提供了一些有关如何执行此操作的信息。
基本上,您需要克隆 h5py 存储库,将 lzf 过滤器构建为共享库,然后将其放入 /usr/local/hdf5/lib/plugin 并可选择将环境变量指向该位置:
git clone https://github.com/h5py/h5py.git
cd h5py/lzf && gcc -O2 -fPIC -shared lzf/*.c lzf_filter.c -o liblzf_filter.so
mkdir -p /usr/local/hdf5/lib/plugin
cp liblzf_filter.so /usr/local/hdf5/lib/plugin
然后您可以使用 h5dump dataset.hdf5 对其进行测试。如果 lzf 过滤器被正确检测并加载,它应该转储压缩数据集的内容。否则会报错。
【讨论】:
gcc -O2 lzf/*.c lzf_filter.c myprog.c -lhdf5 -o myprog,但我不确定如何将它与 HDF5 源代码静态链接。