3.2.1 データアクセスの形式
NetCDFインターフェースにはオープンされたNetCDFファイル中のデータ値に直接アクセスする方法がいくつか用意されています。これらのアクセス形式を一般性の低いほうから順に説明します:
・ すべての要素へのアクセス形式
・ インデックスベクトル(index vector)によって識別された個々の要素へのアクセス形式
・ インデックスベクトルとカウントベクトル(count vector)によって識別された配列断面へのアクセス形式
・ インデックスベクトル、カウントベクトルまたはストライドベクトル(stride vector)によって識別された部分サンプルされた配列断面へのアクセス形式
・ インデックスベクトル、カウントベクトル、ストライドベクトル、及びインデックスマッピングベクトル(index mapping vector)によって識別されたマップされた配列断面へのアクセス形式
4種類のベクトル(インデックスベクトル、カウントベクトル、ストライドベクトル、及びインデックスマッピングベクトル)は変数の各次元に対応する要素を一つずつ持っています。ですから、n次元の変数(rank = n)についてはn個のベクトルが必要となります。変数がスカラー量(無次元)の場合には、これらのベクトルは無視されます。
配列断面(array section)とは2つのベクトルによって指定される連続的な直方体、もしくは「板切れ」のようなものです。インデックスベクトルが原点に最も近い角の要素の座標を表します。カウントベクトルは各変数の次元に沿った板切れの縁の長さを順番に表します。アクセスされた値の個数はこれらの縁の長さの積です。
部分サンプルされた配列断面(subsampled array section)は配列断面に似ていますが、さらにストライドベクトルというベクトルを使用してサンプリングを識別するために使用されます。このベクトルは各次元ごとに要素があり、その次元に沿って取るべきストライドの長さを表しています。例えば、ストライドが4であるなら、その次元に沿って4つおきの値をとるという意味になります。この場合にも、アクセスされた値の総数はカウントベクトルの各要素の積になります。
マップされた配列断面(mapped array section)は部分サンプルされた配列断面に似ていますが、さらにインデックスマッピングベクトルが加わり、NetCDF変数に関連するデータのメモリー中の配置を指定することができます。各値の参照値からのオフセットは各インデックスと対応するインデックスマッピングベクトルの要素を掛け合わせたものの和になります。(マッピングがされていない場合には仮想的な内部配列のインデックスが使用されます。)アクセスされた値の個数は部分サンプルされた配列断面の場合と同じになります。
マップされた配列断面の応用については後により詳細に述べます。その前に、より一般的な配列断面へのアクセスの例を見ましょう。
Quadralay Corporation http://www.webworks.com Voice: (512) 719-3399 Fax: (512) 719-3606 sales@webworks.com |