6

HDF5複合配列を読み取るためのMathematicaでの回避策はありますか? テーブルに単純な 2D 複合型 (int/float) がありますが、現在は無視されています。

HDF5 タイプの例は次のとおりです。

DATATYPE H5T_COMPOUND {
    H5T_IEEE_F32LE "X";
    H5T_IEEE_F32LE "Y";
}
4

4 に答える 4

4

ここにスコット・マーティンによって作成されたと思われるパッケージがあります。

私が見る限り、複合タイプを含む多くのHDF5機能を実装しています。

11 HDF5HighLevel Examples.nbパッケージ内の 簡単なスニペットは次のとおりです。

With[
 {
  file = FileNameJoin[{Directory[], subfolderWithExamples, "h5ex_t_cmpd.h5"}],
  dataSet = "DS1"
  },
 CompoundDataType`Information[file, dataSet]
 ]
(*
{"DataSpaceDimensions" -> {4}, 
 "MemberDataTypeClass" -> {0, -3, 1, 1},  
 "MemberMemorySize" -> {8, 8, 8, 8}, 
 "MemberName" -> {"Serial number"  , "Location", 
                  "Temperature (F)", "Pressure (inHg)"},  
 "MemberOffset" -> {0, 8, 20, 28}, 
 "MemberSize" -> {8, 8, 8, 8}, 
 "MemoryDataTypeSize" -> 32, 
 "NumberOfMembers" -> 4}
*)

HTH!

于 2011-10-11T01:27:01.157 に答える
1

バージョン8 はまだ複合データ型を無視しているようです。ただし、v. 8 の時点では、別の方法として、複合データ型でロードできるインポート コンバーターを作成することもできます。これは、HDF5 インポーターをもう一度実装する必要があることを意味するかもしれませんが、私は試していません。私はまだ 7 を使用していますが、この種の機能がずっと欲しかったのです。

于 2011-01-11T20:01:46.407 に答える
1

HDF5 ( .h5 ) ファイルh5dumpImportのデータセットを複合データ型でインポートするプラットフォームに依存しない方法を提供し、HDF5 実装の多くをユーザーから隠します。ドキュメント、サンプル、および単体テストを含むパッケージは、ここにあります

現在、h5dumpImportパッケージは HDF5 (.h5) ファイル形式を直接インポートしません。このパッケージは、コマンド ライン ツールh5dumpImportによって生成されたデータセットの ASCII ダンプをインポートします。h5dump

コマンド ライン ツールを含む HDF5 ソフトウェアのソース コードとビルド済みのバイナリ ディストリビューションは、h5dumpHDF グループのWeb サイトにあります。

基本的な例

Needs["h5dumpImport`"]
datasets = Import["testData.h5", {"Datasets"}];
dumpFile = h5dump["/usr/bin/h5dump", "testData.h5", datasets[[1]]];
dumpImport = h5dumpImportNew[h5dumpImport[], dumpFile];
dumpImport.h5dumpImportData[All]
dumpImport.h5dumpImportClose[];

結果:

{{1, 11, 111, 1111, 11111, 111111, 1111111, 1.1, 11.11, "one"},
 {2, 22, 222, 2222, 22222, 222222, 2222222, 2.2, 22.22, "two"},
 {3, 33, 333, 3333, 33333, 333333, 3333333, 3.3, 33.33, "three"}}

詳細なインストール手順、使用方法に関する情報、ドキュメント、例、単体テストについては、こちらを参照してください。

于 2012-04-18T16:10:43.230 に答える