设为首页 收藏本站
查看: 1721|回复: 0

[经验分享] windows netcdf vs 配置

[复制链接]

尚未签到

发表于 2017-12-8 13:48:33 | 显示全部楼层 |阅读模式
程序中添加的头文件是netcdfcpp.h文件

**************************************************************************************************
使用的netcdf的c++接口版本是netcdf-cxx4-4.2.tar.gz,下载地址:http://www.unidata.ucar.edu/downloads/netcdf/netcdf-cxx/index.jsp
**************************************************************************************************


**************************************************************************************************
netcdf的C++接口是基于netcdf的C语言接口,所以在使用c++接口之前,我们需要安装netcdf的c语言版本。
使用的netcdf的C语言版本是NetCDF-4.2.1,下载地址:http://www.unidata.ucar.edu/software/netcdf/docs/winbin.html
这个版本是二进制版本,直接点击安装即可,然后会得到include,lib和bin等几个文件。
**************************************************************************************************



使用方法:
1.首先解压这个压缩文件;
2.将解压后的文件中的cxx4文件夹中的netcdf文件改为netcdfcpp.h;
3.我们需要用的是cxx4文件夹中的所有的.h和.cpp文件;
**************************************************************************************************
注意:不使用hdf5的话,ncFile.cpp文件需要做改动:去掉红色前面的NC_NETCDF4
case NcFile::newFile:
      ncCheck(nc_create(filePath.c_str(),  NC_NOCLOBBER, &myId),__FILE__,__LINE__);
      break;
case NcFile::replace:
      ncCheck(nc_create(filePath.c_str(),  NC_CLOBBER, &myId),__FILE__,__LINE__);
      break;
**************************************************************************************************
4.将所有的.h和.cpp文件添加到你的工程目录下即可,分别添加到工程头文件和源文件中,在VS项目属性——VC++目录——包含目录,添加.h头文件所在的位置即可。
5.将netcdf的c语言的头文件netcdf.h,动态链接库netcdf.dll和库文件netcdf.lib添加到VS2010中。
如何添加动态链接库:
a.将netcdf的c语言版本的include,lib和bin文件添加到工程目录下;
b.VS中项目属性——链接器——常规——附加库目录,这里添加你的bin文件中的netcdf.dll路径;
c.VS中项目属性——链接器——输入——附加依赖项,这里添加netcdf.lib库文件;
d.VS中项目属性——VC++目录——包含目录,添加netcdf.h头文件的位置;
e.VS中项目属性——VC++目录——库目录,添加netcdf.lib库文件的位置。

测试成功与否:注意添加的头文件netcdfcpp.h
1.首先创建***.nc文件:

#include <iostream>
#include "netcdfcpp.h"
#include <vector>
using namespace std;
using namespace netCDF;
using namespace netCDF::exceptions;

static const int NX = 6;
static const int NY = 12;

static const int NC_ERR = 2;

int main()
{
  int dataOut[NX][NY];

  for(int i = 0; i < NX; i++)
    for(int j = 0; j < NY; j++)
      dataOut[j] = i * NY + j;

  try
    {  
      NcFile dataFile("simple_xy.nc", NcFile::replace);

      NcDim xDim = dataFile.addDim("x", NX);
      NcDim yDim = dataFile.addDim("y", NY);

      vector dims;
      dims.push_back(xDim);
      dims.push_back(yDim);
      NcVar data = dataFile.addVar("data", ncInt, dims);

      data.putVar(dataOut);

      return 0;
    }
  catch(NcException& e)
    {e.what();
      return NC_ERR;
    }
}

2.读取刚创建的***.nc文件:



#include
#include "netcdfcpp.h"
using namespace std;
using namespace netCDF;
using namespace netCDF::exceptions;

static const int NX = 6;
static const int NY = 12;

static const int NC_ERR = 2;

int main()
{
   try
   {
   int dataIn[NX][NY];

   NcFile dataFile("simple_xy.nc", NcFile::read);

   NcVar data=dataFile.getVar("data");
   if(data.isNull()) return NC_ERR;
   data.getVar(dataIn);

   for (int i = 0; i < NX; i++)
      for (int j = 0; j < NY; j++)
if (dataIn[j] != i * NY + j)
  return NC_ERR;

   return 0;
   }catch(NcException& e)
     {
       e.what();
       cout<<"FAILURE*************************************"<<endl;
       return NC_ERR;
     }
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-422135-1-1.html 上篇帖子: Docker 搭建 etcd 集群及管理 下篇帖子: ansible示例,离线安装etcd
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表