問題タブ [hdf]
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.
fortran - gfortran と HDF-EOS2 ライブラリを使用したプログラムのコンパイル
HDF-EOS ライブラリを Fortran90 プログラムにリンクする際に問題があります。ライブラリをソースから $prefix で指定されたディレクトリにコンパイルしました。私の簡単なコンパイルコマンドは次のとおりです。
コンパイルすると、次のエラーが発生します。
私が変更する予定のないプログラムでは、HDF-EOS ライブラリは外部キーワードを介して使用されます。
ライブラリでは、nm $prefix/lib/libhdfeos.a | grep gdopenは私に与えます:
-fno-underscoringでコンパイルすると、別のエラーが発生します。
エラーは次のとおりです。
また、gfortran はライブラリを見つけます。エラーはアンダースコアに関連していますか? 他に何を試すことができますか?私は Fedora と gfortran バージョン 4.7.2 で作業しています。
python - HDF5 ファイルからデータセット属性を削除する
データセットの 1 つの属性を削除して変更したい hdf5 ファイルがあり、それ以上変更せずにファイルを保存します。hdfview でこれを行うことができますが、多数のファイルに適用する必要があるため、スクリプト可能なものが必要です。
h5pyを使用して、pythonでスクリプトを書いてみました:
しかし、次のエラーが表示されます。
トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、ファイル "/usr/lib/python2.7/dist-packages/h5py/_hl/attrs.py"、75 行目、delitem h5a.delete(self ._id, self._e(name)) ファイル "h5a.pyx"、135 行目、h5py.h5a.delete (h5py/h5a.c:2682) の KeyError: "属性を削除できません (属性: メッセージを削除できません) )"
print dSet.attrs['myAttrName']
正しい値を生成し、属性にアクセスできることを証明します。
これを行う他の方法はありますか?たぶんh5repackを使用していますか?
package - /usr/lib64/libhdf5* 対 /usr/lib64/openmpi/lib/libhdf5*
RHEL 6.6 マシンには、次の 2 つのパッケージがインストールされています。
これらは、重複ライブラリ (つまり、libhdf5.so.6.0.4) と思われるものを提供しているように見えますが、md5sum を実行すると、それらが同一ではないことが明らかになります。
1)これは悪い習慣/実際の問題ですか?私たちのユーザーの 1 人は、そのような重複したライブラリがあると、依存関係の悪夢が生じると主張しています。
2) それが問題であると仮定すると、どのように「修正」しますか? どちらか一方を削除すると、削除するパッケージに依存している他の人々にとって問題が発生する可能性があります。
c - CまたはFortranから.Rdataファイル形式を読み取ることは可能ですか?
私は C でいくつかの R 拡張機能を作成しています (R から呼び出される C 関数)。
私のコードでは、2 つの異なるデータセットを同時に使用して統計を計算する必要があり、考えられるすべてのペアの組み合わせでこれを実行する必要があります。次に、C 側で計算を続行するには、これらすべての統計 (非常に大きな配列) が必要です。これらのファイルは非常に大きく、通常は 40 GB までです。これが私の問題です。
R によって呼び出された C でこれを行うには、最初にすべてのデータセットを R にロードして、それらを C 関数呼び出しに渡す必要があります。しかし、理想的には、C または Fortran からデータセットに直接アクセスできた場合、次の順序に従って、これらのファイルのうち 2 つだけを同時にメモリ上に維持することができます。
ファイルをロード/アンロードできるため、R では問題ありませんが、C または Fortran を呼び出す場合、ファイルをロード/アンロードするメカニズムがありません。それで、私の質問は、.Rdata ファイルを Fortran または C から直接読み込んで、それらを開いたり閉じたりできるかということです。問題への他のアプローチはありますか?
私が読んだ限りでは、答えはノーです。そこで、Rdata から HDF5 への移行を検討しています。
pandas - HDF ストアのクエリ
hd5ファイルを作成しました
有効期限と呼ばれる numpy.datetime64 値を含むリストがあり、列「有効期限」に有効期限[1]と有効期限[0]の間の値を持つhd5テーブルの部分をデータフレームに読み取ろうとします。列の有効期限エントリの形式は Timestamp('2002-05-18 00:00:00') です。
次のコマンドを使用します。
ただし、ValueError: Unable to parse x が表示されます。これを正しく行うにはどうすればよいですか?
列は他にもありますが、クエリには関係ありません。