2012-03-13 4 views
0

なぜ私のコードが私にHDF5ライブラリ例外を与えているのか理解できません。エラーの原因としてcreateScalarDSメソッドを指しています。しかし、私はこの方法が存在すると信じています。誰がこのコードが不透明なデータセットを作成できないのか教えていただけますか?修正は何をすべきですか?ありがとう。グループ内で不透明なデータセットを作成する

public static void createFile(Message message) throws Exception { 
    // retrieve an instance of H5File 
    FileFormat fileFormat = FileFormat 
      .getFileFormat(FileFormat.FILE_TYPE_HDF5); 
    if (fileFormat == null) { 
     System.err.println("Cannot find HDF5 FileFormat."); 
     return; 
    } 

    // create a new file with a given file name. 
    H5File testFile = (H5File) fileFormat.create(fname); 
    if (testFile == null) { 
     System.err.println("Failed to create file:" + fname); 
     return; 
    } 

    // open the file and retrieve the root group 
    testFile.open(); 
    Group root = (Group) ((javax.swing.tree.DefaultMutableTreeNode) testFile 
      .getRootNode()).getUserObject(); 
    Group g1 = testFile.createGroup("byte arrays", root); 

    // obtaining the serialized object 
    byte[] b = serializer.serialize(message); 
    int len = b.length; 
    byte[] dset_data = new byte[len + 1]; 

    // Initialize data. 
    int indx = 0; 
    for (int jndx = 0; jndx < len; jndx++) 
     dset_data[jndx] = b[jndx]; 
    dset_data[len] = (byte) (indx); 

    // create opaque dataset ---- error here… 
    Datatype dtype = testFile.createDatatype(Datatype.CLASS_OPAQUE, 
      (len * 4), Datatype.NATIVE, Datatype.NATIVE); 
    Dataset dataset = testFile.createScalarDS("byte array", g1, dtype, 
      dims1D, null, null, 0, dset_data);// error shown in this line 

    // close file resource 
    testFile.close(); 
} 
+0

? – Perception

+0

それは私にHDF5LibraryExceptionを与える – kuki

答えて

0

私はHDF5を把握していません。

しかし、あなたは直接不透明なデータ型は、組み込みのデータ型と同じように使用することができ、ユーザ定義のデータ型であるCLASS_OPAQUE

を使用することはできません。配列データ型のオブジェクトを作成するには

http://idlastro.gsfc.nasa.gov/idl_html_help/Opaque_Datatypes.html

:不透明な型チェックのリンクを作成するには

Result = H5T_ARRAY_CREATE(Datatype_id, Dimensions) 

例:行のショーを何エラー

http://idlastro.gsfc.nasa.gov/idl_html_help/H5F_CREATE.html

+0

@ Riddhish ..私は通常ファイル内に不透明なデータセットを作成することができました。しかし、私は**単一のファイル**で多くのデータセットを作成したいです。データセットとファイルの比率は1:1なので、私はあなたのために**グループ**を使用すると考えました**グループの下に複数のデータセット**を持つことができます。そして、グループの下に不透明なデータセットを作成するためにCLASS_OPAQUEを実装しようとしていましたが、明らかに**ライブラリ例外**があります。 – kuki