netCDF データの格納形式
netCDF ファイルのデータは、配列形式で格納されます。たとえば、次のような場合です。時間の経過に伴って変化する、ある地点の気温は、1 次元配列として格納されます。特定の時点でのある地域の気温は、2 次元配列として格納されます。
時間の経過に伴って変化する地域の気温などの 3 次元 (3D) データ、または時間と標高に応じて変化する地域の気温などの 4 次元 (4D) データは、一連の 2 次元配列として格納されます。
netCDF ファイルの基本要素
netCDF ファイルには、ディメンション、変数、属性が含まれます。これらの要素を組み合わせて使用することで、配列指向データセットのデータの意味やデータ フィールド間の関係を記録します。次の図は、CDL (network Common Data form Language) 表記を使用して、netCDF ファイルの構造を表したものです。CDL は、netCDF ファイルの内容を説明するために使用される ASCII 形式です。
ディメンション、変数、属性の名前は、アンダースコアとハイフンを含む任意の英数文字で構成され、文字またはアンダースコアで始まります。ただし、アンダースコアで始まる名前はシステムで使用するために予約されています。netCDF 名では、大文字と小文字の区別は重要です。
ディメンション
netCDF ディメンションは名前とサイズの両方を持ちます。ディメンション サイズは任意の正の整数です。netCDF ファイルには、UNLIMITED サイズを持つディメンションが 1 つだけあります。このようなディメンションを無限ディメンションまたはレコード ディメンションといいます。無限ディメンションを持つ変数は、そのディメンションに沿って任意に拡大することができます。
ディメンションは、時間、緯度、経度、高さなど、実際の物理的な大きさを表すために使用することができます。また、観測点やモデル試験番号など、他の数量にインデックスを付けるために使用することもできます。変数の形状を指定する際には、同じディメンションを繰り返し使用することができます。
変数
変数は、同じタイプの値の配列を表します。変数は、netCDF ファイルに大量のデータを格納するために使用されます。変数は、変数作成時に指定されたディメンションの一覧に記述された名前、データ タイプ、そして形状を持ちます。ディメンションの数をランク (次元) といいます。スカラー変数はランク 0、ベクターはランク 1、マトリックスはランク 2 です。変数には、変数の作成後に追加、削除、または変更できる属性を関連付けることもできます。
座標変数
ディメンションと同じ名前を持つ 1 次元変数を座標変数といいます。座標変数は、1 つ以上のデータ変数のディメンションと関連付けられ、一般に、そのディメンションに対応する物理座標を定義します。
座標変数は、netCDF ライブラリにとって特別な意味を持ちません。ただし、このライブラリを使用するソフトウェアは座標変数を特別な方法で処理する必要があります。
属性
netCDF 属性は、付属データまたはメタデータを格納するために使用されます。ほとんどの属性は、特定の変数に関する情報を提供します。これらの属性は、変数の名前と属性の名前を組み合わせることにより識別されます。
netCDF ファイル全体に関する情報を表す属性をグローバル属性といいます。これらの属性は、属性名と空の変数名 (CDL の場合) または特別な NULL 変数 ID (C または FORTRAN の場合) の組み合わせにより識別されます。
規約
規約はメタデータを定義します。メタデータは、各変数のデータに関する最も信頼のおける説明と、それらの空間プロパティと時間プロパティを提供します。規約は、さまざまなソースのデータを使用する際に、それに相当する数量を判断するのに役立ちます。規約の名前は、netCDF ファイルでグローバル属性として表されます。
現在、ArcGIS では、Climate and Forecast (CF) および Cooperative Ocean/Atmosphere Research Data Service (COARDS) の規約がサポートされています。ただし、他の規約に基づいて作成された netCDF ファイルにも対応することができます。