14

HDF5 1.8.7 で HDF5 C++ API を使用しており、H5::Attribute インスタンスを使用して H5::DataSet インスタンスにいくつかのスカラー属性を設定したいと考えていますが、例が見つかりません。C API を使用すると、非常に簡単です。

/* Value of the scalar attribute */ 
int point = 1;                         

/*
 * Create scalar attribute for the dataset, my_dataset.
 */
aid2  = H5Screate(H5S_SCALAR);
attr2 = H5Acreate(my_dataset, "Integer attribute", H5T_NATIVE_INT, aid2,H5P_DEFAULT);

/*
 * Write scalar attribute to my_dataset.
 */
ret = H5Awrite(attr2, H5T_NATIVE_INT, &point); 

/*
 * Close attribute dataspace.
 */
ret = H5Sclose(aid2); 

/*
 * Close attribute.
 */
ret = H5Aclose(attr2); 

奇妙な理由により、C++ API の H5::Attribute クラスと H5::DataSet クラスに必要なメソッドがないようです。誰かが C++ API を使用して具体的な例を思い付くことができれば、私は非常に感謝しています.

4

1 に答える 1

18

データセットオブジェクトがある場合ds....

文字列属性を追加しています...

StrType str_type(0, H5T_VARIABLE);
DataSpace att_space(H5S_SCALAR);
Attribute att = ds.createAttribute( "myAttribute", str_type, att_space );
att.write( str_type, "myString" );

int属性を追加しています...

IntType int_type(PredType::STD_I32LE);
DataSpace att_space(H5S_SCALAR);
Attribute att = ds.createAttribute(" myAttribute", int_type, att_space );
int data = 77;
att.write( int_type, &data );
于 2011-06-30T15:24:50.663 に答える