TOC PREV NEXT INDEX

Put your logo here!


2.1.2 Network Common Data Form Language (CDL)


ここでは簡単なNetCDFの例を使い、NetCDFデータモデルの原理を説明します。このデータには次元も変数も属性も含まれています。この簡単なNetCDFオブジェクトの表記はCDL(network Common Data form Language)と呼ばれ、NetCDFファイルを表記するのに大変適しています。NetCDFシステムにはバイナリのNetCDFファイルから人間指向のCDLテキストファイルを作成する、及び逆の操作を行うためのユーティリティが含まれています。

NetCDF example_1 { // example of CDL notation for a NetCDF dataset

dimensions: // dimension names and lengths are declared first
lat = 5, lon = 10, level = 4, time = unlimited;

variables: // variable types, names, shapes, attributes
float temp(time,level,lat,lon);
temp:long_name = "temperature";
temp:units = "celsius";
float rh(time,lat,lon);
rh:long_name = "relative humidity";
rh:valid_range = 0.0, 1.0; // min and max
int lat(lat), lon(lon), level(level);
lat:units = "degrees_north";
lon:units = "degrees_east";
level:units = "millibars";
short time(time);
time:units = "hours since 1996-1-1";
// global attributes
:source = "Fictional Model Output";

data: // optional data assignments
level = 1000, 850, 700, 500;
lat = 20, 30, 40, 50, 60;
lon = -160,-140,-118,-96,-84,-52,-45,-35,-25,-15;
time = 12;
rh =.5,.2,.4,.2,.3,.2,.4,.5,.6,.7,
.1,.3,.1,.1,.1,.1,.5,.7,.8,.8,
.1,.2,.2,.2,.2,.5,.7,.8,.9,.9,
.1,.2,.3,.3,.3,.3,.7,.8,.9,.9,
0,.1,.2,.4,.4,.4,.4,.7,.9,.9;
}

NetCDFファイル用のCDL表記は後述(10.5節「ncdump」(p.109)を参照)のユーティリティプログラムncdumpを使って簡単に自動作成できます。別のNetCDFユーティリティであるncgenはNetCDFファイル(もしくはオプションとしてNetCDFファイルを作成するために必要な呼び出しを含むC及びFORTRANのソースコード)をCDL形式から作成します。(10.4節「ncgen」(p.108))

CDL表記法は単純で大部分が自明です。NetCDFファイルの構成要素を説明してゆくに従いCDL表記法のより詳細な部分を明らかにしていきます。この時点では、CDL文がセミコロンで終わることに注意してください。スペース・タブ・改行は自由に使って文を読みやすくしてください。CDLのコメントはどの行においても‘//’に続きます。NetCDFファイルはCDLでは以下のように記述されます。

NetCDF name {
dimensions: …
variables: …
data: …
}

ここで名前(name)ncgenユーティリティーを使ってファイル名を作成する際に単にデフォルトとして使用されます。CDL記述には3つのオプションがあり、dimensionsvariablesdataのキーワードによって開始されます。NetCDF次元の宣言はdimensionsの後に記述されます。NetCDF変数及び属性はvariablesの後に定義され、変数データの割り当てはdataの後に続きます。



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX