[原][c][netcdf]读取函数

EXTERNL int
nc_open(const char *path, int mode, int *ncidp);

打开nc文件的函数接口

这里注意:返回值  ncidp     这个是后面所有读取函数的传入参数。相当于文件句柄

就是后面经常填写的参数“ncid”

 

打开对应有一个关闭函数:

EXTERNL int
nc_close(int ncid);

调用的句柄就是   ncidp   

 

获取要读取的变量句柄:

EXTERNL int
nc_inq_varid(int ncid, const char *name, int *varidp);

这里name填入的就是要读取字段的名称,例如“ccl”或者“lat”等

返回值  varidp   就是这个变量的ID,或者叫遍历句柄。

这个值就是后面读取时经常填入的参数“varid”

 

下面是读取多维数据的函数:

1.读取一个值:

/* Read one value. */
EXTERNL int
nc_get_var1(int ncid, int varid,  const size_t *indexp, void *ip);

前两个参数通过之前的函数获取,

indexp这个是维度的定位坐标,比如

indexp[4]={0,0,0,0} 这个就是一个思维的起始点time\level\lat\lon

又或者

indexp[2] = {20,30}  这个是2维中索引在20,30位置上的点

ip就是取出的这一个值的地址。

 

 

2.读取多个值

EXTERNL int
nc_get_vara_double(int ncid, int varid, const size_t *startp,
                   const size_t *startp, double *ip);

读取的起始位置:startp

读取的数量:startp

 

上一篇:练习1-13 编写一个程序,打印输入中单词长度的直方图。


下一篇:java中什么叫原子操作?再给出个例子?