NetCDF二维数据的写入方法

一、环境

环境:win7+vs2013+NetCDF4.4.2

二、写入方法

调用方法和写入说明请参考上一篇文档中的说明,这次编写示例说明一维、二维的代码实现写入NC文件,由于公司的代码不便展示,这次测试代码是仿照官方代码实现的。

三、效果图

1、文件整体结构图

这里写图片描述

2、一维数据展示图

这里写图片描述

3、二维数据展示图

这里写图片描述

四、主要代码:

// main.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

#define  NDIMS 2
#define  NX 6
#define  NY 12

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	int ncid, x_dimid, y_dimid, varid,varidX,varidY;
	int dimids[NDIMS];
	int data_out[NX][NY];
	int tempX[NX];
	int tempY[NY];
	int x, y, retval;
	/// 数组存入数值
	for (x = 0; x < NX;x++)
		tempX[x] = x;

	for (y = 0; y < NY; y++)
		tempY[y] = y;

	for (x = 0; x < NX; x++)
	for (y = 0; y < NY; y++)
		data_out[x][y] = x * NY + y;

	// 创建文件名字
	nc_create("E:/work/testNCFile/bin/test2D.nc", NC_CLOBBER, &ncid);
	
	/// 定义变量体x
	nc_def_dim(ncid, "x", NX, &x_dimid);
	nc_def_var(ncid, "x", NC_INT, 1, &x_dimid, &varidX);

	/// 定义变量体y
	nc_def_dim(ncid, "y", NY, &y_dimid);
	nc_def_var(ncid, "y", NC_INT, 1, &y_dimid, &varidY);

	/// 定义二维变量体data
	nc_def_dim(ncid, "x", NX, &x_dimid);
	nc_def_dim(ncid, "y", NY, &y_dimid);
	dimids[0] = x_dimid;
	dimids[1] = y_dimid;
	nc_def_var(ncid, "data", NC_INT, NDIMS, dimids, &varid);
	/// 结束定义
	nc_enddef(ncid);

	/// x、y、data中写入数据内容,x、y一维,data二维
	nc_put_var_int(ncid, varidX, &tempX[0]);
	nc_put_var_int(ncid, varidY, &tempY[0]);
	nc_put_var_int(ncid, varid, &data_out[0][0]);
	nc_close(ncid);

	cout << "^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ ^_^" << endl;
	system("pause");
	return 0;
}

说明:编者也是初学者,请根据自己的实际情况请参考使用,更多问题请参考博客中的其他文章。

posted @ 2017-12-14 17:31  ISmileLi  阅读(87)  评论(0)    收藏  举报