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;
}
说明:编者也是初学者,请根据自己的实际情况请参考使用,更多问题请参考博客中的其他文章。
转载自:https://blog.csdn.net/toby54king/article/details/78805203