TOC PREV NEXT INDEX

Put your logo here!


3.4 データ構造


NetCDFによる抽象化で直接的にサポートされる唯一のデータ構造はベクトル属性つきの名前のついている配列の集合のみです。NetCDFはリンクされたリストや、ツリー、粗い配列、不均一な配列等、ポインタを必要とする種類のデータ構造を表現するのには適していません。

ある配列のデータを他の配列のデータへのポインタとして使用することに関する様々な規約を採用することにより、配列の集合により他のデータ構造を構築することは可能です。そのようなデータ構造を構築する際に、NetCDFライブラリは役にも立ちませんが阻害もしません。その代わり、そのような規約を設計する手段を提供します。

次の例は属性row_indexを使用して不均質な配列ragged_matを格納し、それによって各列の始点となるインデックスを指定することにより関連するインデックス変数の名前を与えています。この例では、最初の列は12個(12-0)の要素からなり、2列目は7個(19-12)、という具合に続きます。

float ragged_mat(max_elements);
ragged_mat:row_index = "row_start";
int row_start(max_rows);
data:
row_start = 0, 12, 19, …

もう一つの例として、NetCDF変数を任意のNetCDFファイルの中でグループ化することが挙げられます。各グループの変数の名前を、伝統的な区切り文字であるスペースやコンマを挟んで並べた属性を定義することによってこれは可能になります。このようなグループ化のために属性名の規約付けをすることによっていくつもの名前のある変数グループを作ることが可能になります。ある特定の規約に従った属性をそれぞれの変数に与えることによって変数がどのグループに属しているかのリストが作れます。他の属性や変数を指定する属性や変数の導入により、NetCDFファイルにおける幾種の複雑な構造を表すための柔軟な手段が与えられます。



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