Up|<<Prev|Next>>


8.1 属性の規約

アンダースコア( `_' ) で始まる名前はNetCDFライブラリ専用です。 NetCDFファイルを処理する一般的なアプリケーションは標準的な 属性の規約を仮定しており、 よほどの理由が無い限り、これらの規約に従いましょう。以下に、有用であることが証明済みの、推奨される標準的な属性の名前や意味が表記されています。 これらの中には数値データを仮定しているものもあり(例えば、 units , valid_range , scale_factor )、文字データ用には使うべきではない属性が幾つかあることに注意されたい。

 

units

変数データの単位を指定する文字列。Unidata は自由に取得できるルーチンライブラリを開発・提供しています。これを使えば文字列と単位指定のバイナリ形式との間の変換やバイナリ形式で様々な有用な操作を行なうことができる。 このライブラリは幾つかのNetCDFアプリケーションで使われている。推奨される単位構文を使用すれば、整合単位で表現されたデータを、算術演算用に一般的な単位に自動的に変換することが可能です。 詳しくは、12 - 単位

long_name

長い記述的な名前。プロットのラベルなどに使える。変数に long_name 属性が割り当てられていなければ、変数名をデフォルトとして使用しましょう。

valid_min

この変数の有効値の最小値を示すスカラー。

valid_max

この変数の有効値の最大値を示すスカラー。

valid_range

この変数の有効値の最小値と最大値を示す2つの数値のベクトル。 valid_min valid_max 属性の値を指定することと 等価である。これらの変数はどれも 有効範囲 を定義している。 valid_min 又は valid_max のどちらか一方でも定義されていたら、 valid_range 属性を定義してはいけません。

一般的なアプリケーションは 有効範囲 外の値は 欠損として扱うのが望ましい。 各 valid_range valid_min そして valid_max 属性の型はその変数の型と一致してしてなければなりません。(ただし、 byte データ型は除く:これらは意図する範囲を符号付整数型によって指定できる。)

valid_min valid_max valid_range のいずれも定義されていない場合には、一般的なアプリケーションは有効範囲を次の方法で定義するのが良い。 データがバイト型で _FillValue が明示されていない場合、有効範囲は全ての可能な値を含む。 それ以外の場合には、有効範囲から(明示された、もしくはデフォルト指定の) _FillValue を下記の要領で除外する。 _FillValue が正の値の場合には、それが有効な最大値とし、正で無い場合には有効な最小値として定義する。整数型については、 _FillValue とこの有効な最大値又は最小値の差を1とする。浮動小数点型については、丸め誤差を念頭に置き、この差を表現可能な最小値(最も下位のビットで1)の2倍に設定する。

scale_factor

ある変数についてこの属性が与えられていれば、データにアクセスするアプリケーションによってデータが読み込まれた後に、データはこの係数と掛け合わせる。

add_offset

ある変数についてこの属性が与えられている場合、データはそれにアクセスするアプリケーションによって読み込まれた後にこの数が加えられる。もし、 scale_factor add_offset の両方の属性が与えられている場合には、データはまずスケールされ、その後でオフセットが加えられる。 scale_factor add_offset を同時に使うことによって、簡単なデータ圧縮を行なうことができ、これによって、 NetCDFファイル内に低解像度の浮動小数点データを小さい整数として格納することが出来ます。スケールされたデータが書き込まれた場合、アプリケーションはます、オフセットを差し引き、その後にスケールファクターで割ればよい。

scale_factor add_offset圧縮に使われる際には、関連する変数(圧縮データを格納している) の型は通常、byte型かshort型である。一方で、解凍されたデータは float 型や double型となるようにされている。 scale_factor add_offset 属性は両方とも解凍されたデータの持つ型(float 型や double型)でなければなりません。

_FillValue

_FillValue 属性は、変数に割り当てられているディスクスペースを予め埋めるために使用される フィル値 を指定します。このように予めスペースを埋める動作は、 NF_SET_FILL .を使って ノーフィル モード が設定されていない限り行なわれます。詳細については、 5.12 - 書き込みのフィルモードを設定する: NF_SET_FILL 書き込まれた事のない値を読み取った時に フィル値 が返されます。 _FillValue が定義されていれば、それはスカラーで、変数と同じ型を取ります。デフォルトの フィル値 が変数の型に合致していれば、変数について _FillValue 属性をいちいち定義する必要はありません。しかし、byte型データにデフォルトのフィル値を使用することはお勧めできません。この変数の属性の値を変更する際には、その値がそれ以降の書き込みに対してのみ有効である点に注意してください。それ以前にフィル値が書き込まれたデータは変更されません。

一般のアプリケーションはしばしば、未定義の値又は 欠損値を表現するために値を書き込む必要があります。 フィル値 はこれに対して適切な値を提供します。それは、フィル値が通常、有効範囲外の値を取るために、一般のアプリケーションでは欠損値として扱われるからです。 フィル値 を有効範囲内に設定することは出来ますが、薦められません。

より詳しい説明については、フィル値を参照してください。

missing_value

この属性はライブラリや規約に従った一般のアプリケーションによって特別扱いされるわけではありませんが、しばしば有用な文書であるので特定のアプリケーションで使われることがあります。 missing_value 属性はスカラーでもベクトルでも良く、欠損データを示す値を含んでいます。 一般のアプリケーションが、これらの値を欠損値として取り扱えるように、これらの値は 有効範囲 外にあるべきです。

signedness

使用価値の無くなった属性です。元はbyte値が 符号付か符号無しのどちらで扱われるべきか指定するために作られました。現在ではこの目的のために、 valid_min valid_max の属性を使用できます。例えば、byte変数に非負の値のみ格納したい場合には、 valid_min = 0 valid_max = 255 とを使えます。NetCDFライブラリはこの属性を無視します。

FORTRAN_format

この変数の値をプリントするFORTRANアプリケーションが使用するべきフォーマットを与える文字配列です。例えば、ある変数が有効数字3桁の精度しかないことが明らかであれば、 FORTRAN_format 属性を "(G10.3)" と定義するのが適当でしょう。

title

グローバル属性で、データセットの中身を簡潔に説明する文字配列。

history

検査履歴のためにグローバル属性。これは文字配列で、ファイルを修正したプログラムの各呼び出しに対して一行割り振られています。 性質の良い 一般の NetCDF アプリケーションは、アクセスする際に日付・時刻・ユーザー名・プログラム名・コマンドの引数を含む一行を追加します。

Conventions

存在する場合には、 `Conventions' はグローバル属性であり、データセットが従う規約の名前を示す文字配列です。ある分野に固有な規約の集合体を記述した文書の貯蔵場所のディレクトリの相対的なディレクトリ名として解釈される文字列の形式を取ります。これによって、規約の階層構造が可能になり、規約の記述や例を、それを定義した機関やグループが保持する場所を与えている。規約のディレクトリ名は現在ではホストマシン ftp.unidata.ucar.edu .上の pub/NetCDF/Conventions/ ディレクトリから相対的に解釈される。代わりに、規約を記述した文書が維持されている WWW サイトを指定するために、完全なURL指定子を使用しても良い。

 

例えば、NUWGというグループが、ある 分野に固有のデータ構造の次元名・変数名・必要な属性・NetCDF表現に対する規約について合意したとする。NUWGは合意された規約を記述した文書をConventionsディレクトリのサブディレクトリ NUWG/ に 保管しておくことができる。これらの規約に従ったデータセットは "NUWG" という値を持ったグローバル Conventions ëÆê´Ç?ä<Ç?DZÇ?Ç?Ç»ÇÈÅB

 

後にこのグループが、NUWGデータの特定の部分集合(例えば時系列等)について新たに規約を追加することに決めた場合、その追加される規約の記述は NUWG/Time_series/ サブディレクトリに保管されます。これらの追加された規約に従ったデータセットは "NUWG/Time_series" の値を持つグローバル Conventions 属性を使い、NUWG規約と追加されたNUWG時系列規約にも従ったことを示します。


Up|<<Prev|Next>>