c++ - 如何读取 LZF 压缩的 HDF5 数据集?
问题描述
我正在尝试读取具有以下属性的数据集:
我正在为 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 过滤器被正确检测并加载,它应该转储压缩数据集的内容。如果不是,它将显示错误。
推荐阅读
- javascript - 为什么 React Fibre 会多次调用 componentWillMount?
- ruby-on-rails - Rails 文件仍然缓存在生产环境中 - 有时
- xaml - 为什么无法识别此标签页子项?
- node.js - NodeJS lambda dynamoDB putItem 仅当主排序键不同时
- python - pytz 时区 DST 问题
- c++ - 何时调用移动构造函数?
- c - 链表上合并排序的时间效率与指针数组
- python - 如何在 MapReduce 中查找前 10 个元素
- kubernetes-ingress - 使用 GCE + ExternalName 创建入口路径时出错
- javascript - gatsbyjs中的bulma菜单切换不起作用