2016-09-30 13 views
0

ここに記載されているサードパーティフィルタを使用してHDF5データセットを作成するためのC++コードを記述しようとしています: "https://support.hdfgroup.org/services/contributions.html"私はスナッピーライブラリ機能を使用してデータを圧縮し、圧縮解除できるスナッピーフィルタ機能を作成しました。私はすばらしいフィルターで書いて、何の問題もなくそれから読むことができました。しかし、h5dumpでデータを読み込もうとすると、正しいフィルタID(スナイピーの場合は32003)を使用していても出力が得られません。サードパーティのフィルタを使用したHDF5 C++

私は、h5dumpが私のフィルタ機能にアクセスできないということを推測しています。その周りには道がありますか?何とかライブラリを作成してh5dumpに関数を渡すように伝えることはできますか?あるいは、フィルタが既にhdfgroupに登録されているので、h5dumpが読み取ることができるフィルタ関数の既存の実装がすでに存在すると推測できます。一貫性のために私のC++コードでそれを使用できますか?

答えて

0

はい、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 filterを見ることができます。

また、スナッピーを含むさまざまな圧縮アルゴリズムのメタコンプレッサーであるBloscをご覧ください。

関連する問題