2.4 属性
NetCDFの属性(attributes)はデータに関するデータ、例えば補助的データ(ancillary data)やメタデータ(metadata)を格納するために使用されます。その手法は従来のデータベースシステムのデータ辞書や図表を格納するのに使用されている手法と多くの類似点があります。大半の属性は特定の変数に関する情報を含んでいます。その変数の名前(もしくはID)と属性の名前とがあわせて識別されます。
いくつかの属性はファイル全体の情報を与えており、グローバル(global)属性と呼ばれます。これらは属性の名前とCDLの場合には空白の変数名、C及びFORTRANの場合には特別なnullグローバル変数IDによって識別されます。
属性には関連する変数(グローバル属性の場合にはnullグローバル変数)、名前、データ型、データ長、そして値があります。現行版においてはすべての属性をベクトルとして扱っています。スカラー値は単一要素ベクトルとして扱われます。
可能な場合には従来の属性名を使用する方が好ましいでしょう。新しく名前をつける場合にはできる限り意味のあるものを付けましょう。
属性の外部型は定義される際に指定されます。属性に使用できる型は変数の場合のNetCDFの外部データ型と同じです。異なる変数に同一の名前の属性がある場合には異なる型の場合があります。例えば、変数型intの有効データ値の最大値を特定する属性valid_maxはint型であるべきです。それに対して変数型doubleに対する属性valid_maxはdouble型であるべきです。
属性は変数や次元よりもダイナミックです。属性は削除可能で、作成後にも型・長さ・値を変更することが可能です。それに対して、NetCDFインターフェースでは変数を削除したり、変数の型や形を変更することはできません。
variable_name:attribute_name = list_of_values;
:attribute_name = list_of_values;
となります。CDLにおいて各属性の型や長さは明確に宣言されません。それらは属性に割り振られた値によって決定されます。単一の属性に属する値はすべて同一型でなければなりません。色々なNetCDF型の定数に使用される表記法については後述します。(10.3節「データ定数のCDL表記」(p.106))
NetCDFの例(2.1.2節「Network Common Data Form Language (CDL)」(p.12))ではunitsは変数latに対する属性で13文字列‘degrees_north’の配列値を持ちます。そしてvalid_rangeとは長さ2、値‘0.0’と‘1.0’を持つ変数rhの属性です。
NetCDFファイルの例では一つのグローバル属性---source---が定義されています。実際のNetCDFファイルではファイル全体の起源・歴史・規約・特徴などを記述するためにより多くのグローバル属性を持つかもしれません。
NetCDFファイルを処理する一般的なアプリケーションの多くは標準的な属性の規約に従っており、特に理由がない場合には規約に従うことをお薦めします。Units, long_name, valid_min, valid_max, valid_range, scale_factor, add_offset, _FillValue及び他の規約的な属性については8.1節「属性の規約」(p.84)を参照してください。
任意のNetCDFファイルが最初に作成されてから時がたっていても属性を定義することは可能です。ですから、ファイルの作成当初に使用される可能性のある属性をすべて網羅しようと悩む必要はありません。しかし、既存のファイルに新しい属性を加えることはファイルをコピーするのと同じ作業量が必要となる場合があります。より詳しい議論は9章「NetCDFファイルの構造と性能」(p.99)にあります。
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |