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

You may also like...