問題タブ [hdf5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4073 参照

r - R と HDF5 のトラブル

hdf5 を R にロードしようとしていて、いくつかの問題が発生しています。環境を構成するために行った手順は次のとおりです。

  • Mac OS X 10.6 上の R 2.10.0 (x64)
  • hdf5 1.8.3 macports 経由でインストール
  • CRAN の hdf5_1.6.9.tar.gz

私が抱えている問題は、私のバージョンの HDF5 と R モジュールが期待するバージョンの非互換性に関連していると思われます。完全を期すために、Rモジュールをインストールした方法を次に示します。

R CMD INSTALL --configure-vars='CPPFLAGS=-I/opt/local/include' --configure-args='--with-hdf5=/opt/local' hdf5_1.6.9.tar.gz

これで問題なくビルドできます。ライブラリは問題なくロードされているようですが、ファイルをロードしようとしてもデータが返されません:

ライブラリ(hdf5)

hdf5load("test.h5")

ヌル

まだ、

osx:data scott$ h5dump test.h5 HDF5 "test.h5" { GROUP "/" { DATASET "dset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 31 ) / ( 31 ) } DATA { (0): 1, 2, 4 、8、16、32、64、128、256、512、1024、2048、4096、8192、(14): 16384、32768、65536、131072、262144、524288、1048576、2097152:4、8, 6 1924 、16777216、33554432、67108864、134217728、(28): 268435456、536870912、1073741824 } } }

何かご意見は?

前もって感謝します。

0 投票する
4 に答える
3263 参照

java - Python、PyTables、Java - すべてを結びつける

一言で言えば質問

Python と Java をうまく連携させる最善の方法は何ですか?

より詳しい説明

私はやや複雑な状況にあります。写真と言葉の両方で説明できるように最善を尽くします。現在のシステム アーキテクチャは次のとおりです。

現在のシステム アーキテクチャ

Java で記述されたエージェントベースのモデリング シミュレーションがあります。ローカルで CSV ファイルに書き込むか、Java サーバーへの接続を介してリモートでHDF5に書き込むオプションがあります。ファイル。シミュレーションを実行するたびに、ギガバイトのデータが吐き出され、シミュレーションを何十回も実行します。いくつかの傾向 (例: 最小、最大、中央値、平均) を確認するために、同じシナリオ (異なるランダム シードを使用) の複数の実行にわたって集計できる必要があります。ご想像のとおり、これらすべての CSV ファイルを移動しようとするのは悪夢です。実行ごとに複数のファイルが生成されます。前述のように、そのうちのいくつかは巨大です。これが、私たちが HDF5 ソリューションに移行しようとしてきた理由です。HDF5 ソリューションでは、スタディのすべてのデータが、数十のプレーン テキスト ファイルに分散するのではなく、1 か所に保存されます。さらに、これはバイナリ ファイル形式であるため、圧縮されていない CSVS と比較して大幅にスペースを節約できるはずです。

図が示すように、シミュレーションからの生の出力データに対して行う現在の後処理も Java で行われ、ローカル出力によって生成された CSV ファイルを読み込みます。この後処理モジュールは、JFreeChart を使用して、シミュレーションに関連するいくつかのチャートとグラフを作成します。

問題

前に触れたように、CSV は本当に受け入れがたいものであり、シミュレーションからますます多くのデータを生成するにつれてうまくスケーリングできません。さらに、後処理コードは必要以上のことを行っており、基本的に非常に貧弱な人間のリレーショナル データベースの作業を実行しています (外部キー (一意のエージェント IDこのシステムでは、他の方法でデータを視覚化することも困難です (たとえば、Prefuse、Processing、JMonkeyEngine が生データのサブセットを取得して、MatLab または SPSS で操作します)。

解決?

私のグループは、クロス テーブル結合を実行するだけでなく、データをフィルター処理してクエリを実行する方法が本当に必要であると判断しました。これが一度だけ書き込み、何度も読み取る状況であることを考えると、実際のリレーショナル データベースのオーバーヘッドはまったく必要ありません。代わりに、HDF5 ファイルのフロント エンドを改善する何らかの方法が必要です。HDF5 ファイルで XQuery をクエリ言語として使用する方法を説明している論文など、これに関するいくつかの論文を見つけましたが、その論文では、XQuery/XPath からネイティブの HDF5 呼び出しに変換するコンパイラを作成する必要があり、私たちのニーズをはるかに超えていると説明されています。PyTablesと入力します。それはまさに私たちが必要とすることをしているようです (Python リスト内包表記またはカーネル内 (C レベル) 検索のいずれかを使用して、データを照会する 2 つの異なる方法を提供します。

私が想定している提案されたアーキテクチャは次のとおりです。 想定されるアーキテクチャ

どうすればよいかよくわかりませんが、クエリ用に作成される Python コードと、HDF5 ファイルを提供する Java コード、およびデータの後処理を行う Java コードをリンクすることです。明らかに、暗黙的にクエリを実行している後処理コードの多くを書き直し、代わりに優れた PyTable にこれをよりエレガントに実行させたいと考えています。

Java/Python オプション

簡単な Google 検索で Java と Python の間の通信に関するいくつかのオプションが見つかりますが、私はこのトピックに慣れていないので、提案されたアーキテクチャーに関する実際の専門知識と批判を探しています。大規模な .h5 ファイルをネットワーク経由で転送する必要がないように、Python プロセスは Datahose と同じマシンで実行する必要があるように思われます。 Pyroは興味深い選択のようです。経験のある人はいますか?

0 投票する
2 に答える
11687 参照

gcc - matlab mexファイルの共有ライブラリの場所:

libhdf5を使用するmatlabmex関数を作成しようとしています。私のLinuxインストールでは、libhdf5-1.8共有ライブラリとヘッダーが提供されます。ただし、私のバージョンのMatlabであるr2007bは、1.6リリースのlibhdf5.soを提供します。(Matlab.matファイルは明らかにhdf5をブートストラップします)。mexをコンパイルすると、Matlabでsegfaultが発生します。libhdf5のバージョンを1.6にダウングレードすると(長期的なオプションではありません)、コードはコンパイルされて正常に実行されます。

質問:この問題を解決するにはどうすればよいですか?mexコンパイルプロセスに/opt/matlab/bin/glnxa64/libhdf5.so.0ではなく/usr/lib64/libhdf5.so.6に対してリンクするように指示するにはどうすればよいですか?コンパイルでこれを使用しようとすると-Wl,-rpath-link,/usr/lib64、次のようなエラーが発生します。

ack。最後の手段は、hdf5-1.6.5ヘッダーのローカルコピーをダウンロードしてそれで実行することですが、これは将来を保証するものではありません(Matlabバージョンのアップグレードは将来的に行われます)。何か案は?

編集:Ramashalankaの優れた提案によると、私は

A) 3つのコマンドmex -vを取得するために呼び出されます。gcc最後はリンカーコマンドです。

-vB)コマンドを取得するためにそのリンカーコマンドをaで呼び出しましたcollect

C)collect2 -v -tそれと残りのフラグを呼び出しました。

私の出力の関連部分:

したがって、実際にはlibhdf5.sofrom/usr/lib64が参照されています。ただし、これは環境変数によってオーバーライドされていると思います。環境変数は、私のバージョンのMatlabが実行時に自動的に設定するため、たとえば、などLD_LIBRARY_PATHの独自のバージョンを見つけることができます。libmex.so

このcrt_file.c例は、私が使用している関数を使用していないb / c(H5DOpen1.6から1.8への移行で署名が変更された(はい、私は使用しています-DH5_USE_16_API))、または可能性は低いですがb/のいずれかで機能すると思います。 chdf5を必要とするMatlab内部の部分にはヒットしません。ack。

0 投票する
2 に答える
2264 参照

python - Mac OSX10.6.3にh5pyをインストールします

Mac OSX10.6.3にh5pyをインストールしようとしています。

最初に、次のコマンドを使用してHDF51.8をインストールしました。

次に、h5pyをインストールします。

次に、エラーが発生しました。

Xcodeを更新したばかりですが、これがgccのデフォルト設定によるものかどうかはわかりません。もしそうなら、どうすればこのエラーを取り除くことができますか?

ありがとう。

0 投票する
2 に答える
1939 参照

c# - HDF5.Netラッパー

取得しています(http://www.hdfgroup.org/projects/hdf.net/

指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)

依存関係ウォーカーから、SZLIBDLL.DLLが見つからないことがわかりました。ランダムな場所からダウンロードしようとしましたが、別のエラーが発生しました。

誰かがその問題を抱えていましたか?vs2005とvs2008も試してみました

ありがとう、ピニ。

0 投票する
4 に答える
6715 参照

python - h5py データセットをテキストに出力する高速な方法は何ですか?

HDF5 形式のファイルを読み取るために、h5py python パッケージを使用しています。(例 somefile.h5) データセットの内容をテキスト ファイルに書き込みたいと思います。

たとえば、次の内容のテキスト ファイルを作成したいと思います: 1,20,31,75,142,324,78,12,3,90,8,21,1

このコードを使用して、Python でデータセットにアクセスできます。

私のデータセットには 20000 を超えるエントリがあるため、私の素朴なアプローチは遅すぎます。

これをファイルに書き込むより速い方法はありますか? おそらく、データセットを NumPy 配列または Python リストに変換してから、ファイル書き込みツールを使用できますか?

(ファイルに書き込む前に、値をより大きな文字列に連結して実験することもできますが、完全にエレガントなものがあることを願っています)

0 投票する
1 に答える
1940 参照

multithreading - HDF5 書き込みスレッドの同時実行

HDF5 は単独で複数のスレッドを処理できますか、それとも外部で同期する必要がありますか? OpenMP の例は後者を示唆しています。

前者の場合、書き込むデータスペースを定義する適切な方法は何ですか?

0 投票する
1 に答える
525 参照

makefile - configure で基礎となるコンパイラを見つける

h5fc/h5cc(HDF5 コンパイラ ラッパー) やmpif90/mpicc(MPI コンパイラ ラッパー)などのコンパイラ ラッパーを使用してコンパイルされたアプリケーションがあります。これらは単なるラッパーであり、-show引数を使用して実際の基礎となるコンパイラーを確認することができます。

どちらの場合も、基礎となるコンパイラは ifort です。現在、 を使用configure.acして構成スクリプトを生成し、 をセットアップしていますMakefile。コンパイラに依存する引数をコンパイラに追加できるようにしたいと考えていますが、これには、またはの基になるコンパイラが何であるかを調べるためのコードが必要configure.acです。これは可能だと思いますが、これを行う方法がわかりません。誰か提案はありますか?h5fc/ccmpif90/cc

h5pfc/ccおまけの質問: 実際、MPI 対応の HDF5 ラッパーを使用してコンパイルする必要がある場合があります。

繰り返し検索が必要になりますmpif90 -show

0 投票する
3 に答える
2233 参照

c# - BadImageFormatException: hdf5dll.dll で ImportDll を PInvoke

わかりました。公式サイトから HDF5 ライブラリをダウンロードしました。hdf5dll.dll や hdf5_hldll.dll などの DLL もいくつかあります。

H5クラス、H5LTH5F、およびで、ネイティブ呼び出しのラッパーと思われるものを持っていますH5T。H5.cs の例:

Program.cs では、 を使用H5.H5open();していますが、BadImageFormatException. 別の DLL が必要ですか? メソッドのシグネチャが間違っているように見えますか?

次のステップとして、これを C# で取得したいと思います: http://www.hdfgroup.org/HDF5/Tutor/h5lite.html

OS: Windows 7 64bit
環境: Visual Studio 2008 Professional

更新:これが関連するかどうかはわかりません。また、私の環境が VS2008 SP1であるかどうかも覚えていませんが、この質問が謎を解く鍵を握っている可能性があります。私は現在、自宅で32ビットVS 2010でシナリオを繰り返そうとしています。

0 投票する
1 に答える
495 参照

c# - 既存の HDF5 ファイルにグループを作成するには? (HDF5)

単一のデータ グループを含む HDF5 ファイルを作成する C++ で記述されたサード パーティ製ユーティリティがあります。

それぞれ固有のデータ グループを持つ 2 つの H5 ファイルをインポートし、2 つのデータ グループを持つ 1 つの H5 ファイルを出力したいと考えています。

C# で HDF5 を使用した経験のある人はいますか?