TOC PREV NEXT INDEX

Put your logo here!


7.4 IDから変数の情報を取得する: nc_inq_var ファミリー


この関数のファミリーは変数のIDを与えるとそのNetCDF変数に関する情報を返します。 変数に関する情報にはその名前・型・次元の数・変数の形を表す変数IDのリスト・変数に割り当てられている変数属性の数等です。

関数nc_inq_var はある変数のIDを与えるとNetCDF関数に関する情報をすべて返します。その他の関数はある変数に関する一つの情報を返します。

この他の関数とは nc_inq_varname, nc_inq_vartype, nc_inq_varndims, nc_inq_vardimid, nc_inq_varnatts等です。

用法
int nc_inq_var (int ncid, int varid, char *name, nc_type *xtypep,
int *ndimsp, int dimids[], int *nattsp);
int nc_inq_varname (int ncid, int varid, char *name);
int nc_inq_vartype (int ncid, int varid, nc_type *xtypep);
int nc_inq_varndims (int ncid, int varid, int *ndimsp);
int nc_inq_vardimid (int ncid, int varid, int dimids[]);
int nc_inq_varnatts (int ncid, int varid, int *nattsp);
ncid 以前のnc_open または nc_create呼び出しで返されたNetCDF ID。
varid 変数ID
name 返された 変数名。呼び出すためには返された名前用のスペースを確保しておく必要があります。変数名の文字数の最大値はあらかじめ定義された定数 NC_MAX_NAME です。
xtypep 返された変数型(あらかじめ定義されたNetCDFの外部データ型)の位置を示すポインタ。このパラメーター nc_typeの型はNetCDFヘッダーファイルにより定義されています。有効なNetCDFデータ型は NC_BYTE, NC_CHAR, NC_SHORT, NC_INT, NC_FLOATNC_DOUBLEです。
ndimsp 変数が使用していると定義された次元の数の位置を示すポインタ。例えば、2は行列、1はベクトル、ゼロはその変数が無次元のスカラーであることを示します。
dimids 返された 変数の次元に対応する次元ID *ndimsp のベクトル。最低でも返されてくる*ndimspの整数のベクトルのためのスペースをあらかじめ確保しておく必要があります。変数が持ち得る次元の最大数はあらかじめ定義された定数 NC_MAX_VAR_DIMS です。
nattsp 返されたこの変数に割り当てられている変数属性の数の位置を示すポインタ

エラー

これらの関数はエラーが発生していない場合には NC_NOERR 値を返します。それ以外の場合は、返されたステータスがエラーの発生を示します。エラーの原因としては:

・ 変数IDが指定されたNetCDFファイルに対して有効ではない。
・ 指定されたNetCDF IDがオープンされたNetCDFファイルを参照していない。

これは nc_inq_var を使用してNetCDFファイルfoo.ncの中の rh という変数に関しての情報を探す例です。

#include <netcdf.h>

int status /* エラーステータス */
int ncid; /* NetCDF ID */
int rh_id; /* 変数 ID */
nc_type rh_type; /* 変数型 */
int rh_ndims; /* 次元の数 */
int rh_dims[NC_MAX_VAR_DIMS]; /* 変数の形 */
int rh_natts /* 属性の数 */

status = nc_open ("foo.nc", NC_NOWRITE, &ncid);
if (status != NC_NOERR) handle_error(status);

status = nc_inq_varid (ncid, "rh", &rh_id);
if (status != NC_NOERR) handle_error(status);
/* we don’t need name, since we already know it */
status = nc_inq_var (ncid, rh_id, 0, &rh_type, &rh_ndims, rh_dims,
&rh_natts);
if (status != NC_NOERR) handle_error(status);



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