Development Environment    

メタデータをHDFファイルに埋め込む

HDF Annotation API (AN)を使って、HDFファイルに、ユーザが作成したデータを解説する情報をオプションで埋め込むことができます。HDF SD APIには、コメントを埋め込む機能が用意されており、このAPIを用いて、HDFファイル、または、HDFファイルを構成する個々のデータセットと属性を関連付けることができます。この節では、SD属性について説明します。Annotation APIに関する情報については、NCSA公式マニュアルを参照してください。

属性のタイプ

HDF SD API は、つぎの3タイプの属性を定義します。

ユーザは、単一のHDFオブジェクトに複数の属性を関連付けることができます。HDFは、各オブジェクトについて属性インデックスを保持しています。属性インデックスは、ゼロベースです。最初の値は、インデックス値0、2番目の値はインデックス値1 等々というようにインデックスが付されています。インデックス値を指定すれば、属性にアクセスすることができます。

各々の属性は、name = valueという書式になっています。ここで、name(HDF用語では、label と呼ばれています) は、256文字以内の長さで書かれたテキスト文字列です。valueは、同一データタイプの1つ、または、それ以上のエントリーで構成されています。単一の属性が複数のvalueをもつことも可能です。

属性とHDF SDオブジェクトの関連付け

属性とファイル、データセット、次元を関連付けるには、SDsetattr 関数を使用します。

SDsetattr には、つぎの引数を設定できます。

つぎのサンプルコードは、my_global_attrと名付けられたグローバル属性を作成し、作成したグローバル属性とsd_idという識別子のHDFファイルとの関連付けを行います。

前もって設定する属性の作成

前もって設定する属性は、SD APIによって既に名前とデータタイプを定義済みである、という点を除けば、ユーザ定義属性と同一です。たとえば、SD APIは、ユーザがデータセットを使って座標系を指定できるcordsys という名称の属性を定義しています。この属性が取り得る値には、'cartesian''polar''spherical'というテキスト文字列が含まれています。

プリセット属性は、アプリケーションが依存する規則を作り上げるという点で有用です。SD APIは、データセットや次元についてのみ、プリセット属性を用意しています。ファイルについては、前もって設定した属性を用意していません。前もって設定した属性の完全なリストについては、NCSAのマニュアルを参照してください。

前もって設定した属性は、ユーザ定義属性同様、関数SDsetattr を使用する方法で作成することができます。

SD APIは、前もって設定した属性の読み書きに特化した関数も用意しています。SDsetdatastrsのような特殊な関数は、複数の相関関係にある前もって設定した属性を読み書きするいくつかの場合に、汎用の関数よりも簡単に使用することができます。なお、プリセット次元属性の読み書きには、必ず専用関数を使用してください。


 HDFフォーマットでデータのエクスポート MATLAB HDF ユーティリティAPIの使用