TOC PREV NEXT INDEX

Put your logo here!


6.3 次元について問い合わせる: nc_inq_dim ファミリー


この関数のファミリーはNetCDF次元についての情報を返します。次元に関するの情報には次元名と次元長があります。無制限長の次元の長さは、存在していれば、その段階までに書かれた記録の数です。

このファミリーに属する関数は nc_inq_dim, nc_inq_dimnameそして nc_inq_dimlen があります。関数nc_inq_dim はその次元についてのすべての情報を返します。他の機能はその次元についてある一つの情報を返します。

用法
int nc_inq_dim (int ncid, int dimid, char* name, size_t* lengthp);
int nc_inq_dimname (int ncid, int dimid, char *name);
int nc_inq_dimlen (int ncid, int dimid, size_t *lengthp);
ncid 以前のnc_open または nc_create呼び出しで返されたNetCDF ID
dimid 以前のnc_inq_dimid もしくは nc_def_dim等への呼び出しからの次元ID
name 返された 次元名。呼び出すにはあらかじめスペースを割り当てておく必要があります。次元名の文字数の最大長は、事前に定義した定数 NC_MAX_NAMEによって決まります
lengthp 返された次元長の位置を示すポインタ。無制限次元においては、これはその時点までに書き込まれた記録の数です。

エラー

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

・ 指定されたNetCDFファイルに対して次元IDが無効である。
・ 指定されたNetCDF ID がオープンされているNetCDFファイルを参照していない。

この例では nc_inq_dim を使用して既存のNetCDFファイルfoo.nclatと名づけられた次元の長さと無限長次元の現在の長さを求めます:

#include <netcdf.h>

int status, ncid, latid, recid;
size_t latlength, recs;
char recname[NC_MAX_NAME];

status = nc_open("foo.nc", NC_NOWRITE, &ncid); /* 読み取り用にオープンする */
if (status != NC_NOERR) handle_error(status);
status = nc_inq_unlimdim(ncid, &recid); /* 無制限次元の ID 取得 */
if (status != NC_NOERR) handle_error(status);

status = nc_inq_dimid(ncid, "lat", &latid); /* lat次元のID 取得 */
if (status != NC_NOERR) handle_error(status);
status = nc_inq_dimlen(ncid, latid, &latlength); /* lat の長さ取得 */
if (status != NC_NOERR) handle_error(status);
/* 無制限次元の名前と現在の長さ取得 */
status = nc_inq_dim(ncid, recid, recname, &recs);
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