繁体   English   中英

HDF5 C ++,带有第三方过滤器

[英]HDF5 C++ with third party filters

我正在尝试编写C ++代码以使用此处列出的第三方过滤器创建HDF5数据集:“ https://support.hdfgroup.org/services/contributions.html ”。 我创建了一个快照过滤器函数,该函数可以使用快照库函数压缩和解压缩数据。 我能够用活泼的过滤器编写和读取它,没有任何问题。 但是,当我尝试通过h5dump读取数据时,即使我使用了正确的过滤器ID(对于快照也为32003),也没有得到任何输出。

我猜问题是h5dump无法访问我的过滤器功能。 有什么办法解决吗? 我可以以某种方式创建一个库并告诉h5dump从中获取功能吗? 或者,由于过滤器已经在hdfgroup中注册,我想我可以假设h5dump可以读取的过滤器功能已经存在。 我可以在我的C ++代码中使用它来保持一致性吗?

是的,从HDF5版本1.8.11开始,您可以使用[动态加载的过滤器]( https://support.hdfgroup.org/HDF5/doc/Advanced/DynamicallyLoadedFilters/HDF5DynamicallyLoadedFilters.pdf )。
基本上,您需要创建一个过滤器功能的共享库,并将其放置在特定的文件夹( /usr/local/hdf5/lib/plugin )中,或通过HDF5_PLUGIN_PATH指定该文件夹,以使它可用于HDF5库。

例如,您可以看一下h5py存储库中的lzf过滤器

还可以看一下Blosc ,它是用于各种压缩算法(包括snappy )的元压缩器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM