vs2013+NetCDF4.4.2一维数据读取

一、环境

环境: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文件的读取与写入并不是擅长难免有错,这里只是自己的一点思路,希望能帮助刚开始学习的人。后续自己会把自己的一些心得分享出来。

posted @ 2017-12-05 17:48  ISmileLi  阅读(21)  评论(0编辑  收藏  举报