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);
エラー
これらの関数はエラーが発生していない場合には 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 |