Up|<<Prev|Next>>


2.3 変数

変数 は大部分のデータをNetCDFのファイルとして格納するのに使用されます。変数とは同一タイプの値の配列を指します。 スカラー値は0次元の配列として扱われます。変数は名前・データタイプ・変数が定義されたときに与えられた次元のリストによる形を持ちます。 また、変数は関連する属性を持つことも出来ます。この属性は後に加え・削除し・変更することが出来ます。

 

変数外部データタイプとはNetCDFのタイプ typesの小さな集合の一つであり、次のような名前を持ちます。 C インターフェースで NC_BYTE, NC_CHAR, NC_SHORT, NC_INT,NC_FLOAT, 及び NC_DOUBLE NC_LONG はCインターフェースにおける NC_INT のdeprecated同義語です。

CDL 表記ではではこれらはより単純な byte char short int float ・及び double 等の名前を与えられています。 real はCDL表記において float の同義語として使用できます。 long はint に対する deprecated 同義語です。 各変数の厳密な意味については「NetCDF外部データタイプ」 NetCDF 外部データ型をご参照下さい。

CDL 変数宣言はCDKL単位中のキーワード variable に続きます。それらの形式は次元付きの変数については

     type
 variable_name
 ( dim_name_1, dim_name_2, ... 
);

また、スカラー変数については

     type
 variable_name
;

という形を取ります。

t前述の CDL の例では変数が6つあります。次に述べるように、その内4つは座標変数です。残りの2つの変数 temp rh は主変数 primary variables とも呼ばれ、一般的にデータと見なされるもので構成されています。各々の変数は time という無制限の次元を第一次元として含み、よって記録変数 record variables と呼ばれます。記録変数ではない変数は固定長(データ値の個数)を持ち、次元長の積に相当します。記録変数の長さはもその次元長の積ですが、この場合には無制限次元の長さが一定ではないためにその積は変数であり、当然変化します。無制限次元の長さは記録数に該当します。

2.3.1 座標変数

NetCDFにおいては変数が次元と同一の名前を持つことが許されています。それらの変数はNetCDFライブラリにとっては特別な意味を持ちません。しかしながら、そのライブラリを使用するソフトウェアに特別な意味を持つ変数として扱われるという慣習があります。

次元と同じ名前を持つ 変数は座標変数 coordinate variable と称されます。通常はその次元に対応する物理的な座標を定義するために使われます。前出のCDLの例には次のように定義される座標変数 lat lon level 及び time が含まれています。

        int     lat(lat), lon(lon), level(level);
        short   time(time);
... 
data:
        level   = 1000, 850, 700, 500;
        lat     = 20, 30, 40, 50, 60;
        lon     = -160,-140,-118,-96,-84,-52,-45,-35,-25,-15;
        time    = 12;

これらはこの次元に沿った地点における緯度・経度・気圧・時刻を定義しています。つまり、ここでは高度1000、850、700、及び500 mbarに相当する高度と北緯20、30、40、50、60度におけるデータが存在するということです。各座標変数はベクトルであり同一の名前を持つ次元のみで構成されている形を持つことに注意してください。

次元に沿った位置は指標 index を使用することによって指定できます。指標は整数であり、最小値はCでは 0 になります。前出の例では700 mbarレベルにおける指標は 2 となります。

次元に対応する座標変数が存在する場合には、その次元に沿った位置を指定するための代替的的で通常は寄り便利な方法があります。原稿の座標変数を使用するアプリケーションパッケージでは、それらの値が数値ベクトルであり、狭義の意味で単調である(全ての値は異なり、一方的に増加もしくは減少する)という仮定をしています。


Up|<<Prev|Next>>