Visual Studio(C#)とHDF5 P/Invokeを使用しています。ネイティブタイプのHDF5属性を取得するにはどうすればよいですか?
異なるデータ型の属性を持つグループとデータセットを持つHDF5ファイルを作成しました(この場合、H5T.NATIVE_INT32として保存された整数ですが、他のデータ型でも同じ問題があります)。今、私はHDF5ファイルからデータを読み込むコードを作成しています。属性値を読み取るには、まず属性値のデータ型を決定する必要があります。私は、次のことを試してみました:
attributeId = H5A.open(groupId, attributeName, H5P.DEFAULT);
hid_t attributeSpace = H5A.get_space(attributeId);
H5S.class_t extentType = H5S.get_simple_extent_type(attributeSpace);
hid_t typeId = H5A.get_type(attributeId);
attributeClass = H5T.get_class(typeId);
type = H5T.get_native_type(typeId, H5T.direction_t.DEFAULT);
H5T.close(typeId);
しかし、結果の変数type
はH5T.NATIVE_INTEGER
タイプ、または私は考えることができる任意の他のH5Tタイプと一致していません。実際には、でも
H5T.get_native_type(H5T.NATIVE_INT,H5T.direction_t.DEFAULT) == H5T.NATIVE_INT
戻りfalse
ので、種類を返さないH5T.get_native_type()
かのように見えるが、おそらくコピーまたはタイプ自体と同一ではありません、それへのポインタ、。これは予想される動作かバグですか?属性値の型を正しく理解する方法に関するアイデアはありますか?