windows netcdf vs 配置
程序中添加的头文件是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[i][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[i][j] != i * NY + j)
return NC_ERR;
return 0;
}catch(NcException& e)
{
e.what();
cout<<"FAILURE*************************************"<<endl;
return NC_ERR;
}
}
欢迎大家来我的新家看一看 3wwang个人博客-记录走过的技术之路
posted on 2017-03-18 22:37 jie_er的种码园子 阅读(2109) 评论(0) 编辑 收藏 举报