一、环境
环境:win7+vs2013+NetCDF4.4.2
二、测试数据样例
测试的是读取一维经度是的数据,该数据个数总共有241个。
数据图:
三、测试效果
仔细观察的数据对吗,数据貌似和表格中的有点出入,但出入不大,这是因为表格中存储的都是小数点后保留一位,而我们读取的是保留小数点后两位,仔细看数据图表格头上的数据。仔细看!红圈圈住的部分!(数据中显示的小数点后几位是可以调节的,和你打开使用的工具有关系)
四、核心代码
1、主要函数接口
// 函数说明:获得一维数据
int ReadNCFile::getVarDataArray1D(const char *varName, float *dataArray)
{
int ret = 0;
int varid = 0;
if ((ret = nc_inq_varid(m_ncid, varName, &varid)))
ERR(ret);
if ((ret = nc_get_var_float(m_ncid, varid, dataArray)))
ERR(ret);
}
2、测试代码:
float latitude[241];
pTempFile->getVarDataArray1D("latitude", latitude);
for (size_t i = 0; i < 30; i++)
{
cout << "latI==" << i << endl;
cout << "latitude:" << latitude[i] << endl;
}
说明:由于自己目前正在学习NC文件的读取与写入并不是擅长难免有错,这里只是自己的一点思路,希望能帮助刚开始学习的人。后续自己会把自己的一些心得分享出来。