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);
エラー
これらの関数はエラーが発生していない場合には NC_NOERR 値を返します。それ以外の表示が出た場合は、返されたステータスがエラーを示します。エラーの原因としては:
・ 指定されたNetCDFファイルに対して次元IDが無効である。
・ 指定されたNetCDF ID がオープンされているNetCDFファイルを参照していない。
例
この例では nc_inq_dim を使用して既存のNetCDFファイルfoo.ncのlatと名づけられた次元の長さと無限長次元の現在の長さを求めます:
#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 |