文章目录
前言
NetCDF简介NetCDF (Network Common Data Form)是由美国大学大气研究协会(UCAR)下的Unidata项目科学家针对科学数据的特点,提出的一种面向数组型数据、适于网络共享的数据描述和编码标准。已被国内外许多行业和组织采用,目前广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。NetCDF数据具有自描述性(普通二进制数据需要有相关文档介绍数据格式,否则无法正确读出数据),数据与硬件平台无关(不用考虑数据的端序)。目前采用NetCDF格式的资料主要为再分析资料、卫星资料、数值模式资料等。
每个NetCDF文件具备如下所示的结构,其中包含维数、变量、属性和数据4个子域,属性又分为适用于整个文件的全局属性和适用于特定变量的局部属性。
• dimensions(维):一个维可以用来代表一个真实的物理空间、例如时间、纬度、经 度或者高度。一个NetCDF的维有一个名字和长度,维的长度必须是一个正整数。
• variables(变量):在NetCDF数据集中,变量是用来存放数据块的。NetCDF数据集里的变量一般都是数组变量。一个变量代表着具有相同的数据类型的数组的值。每个变量都有一个名字、一个数据类型和数组形状。
• attributes(属性):NetCDF的属性是用来对数据进行辅助说明,存放关于数据的数据,例如变量的单位。
• data(数据):NetCDF支持的数据类型是char、byte、short、int、float或者real、double。
提示:以下是本篇文章正文内容,下面案例可供参考
一、资源下载
1.1 首先下载NetCDF-c与NetCDF-cxx
下载地址: https://www.unidata.ucar.edu/downloads/netcdf/index.jsp ,NetCDF-c与NetCDF-cxx的下载地址都在这个网页。
a.NetCDF-c的选择,根据系统自行选择32还是64位的使用HTTP下载
b.NetCDF-cxx的选择
二、使用步骤
1.下载文件
这里我多下载了一个4.7版本,这个版本大家下载最新即可
安装NetCDF-c与解压NetCDF-cxx,我的是安装在D盘如下,不过你们可在自定义安装与解压路径:我安装的是netCDF4.7.4-NC4-64.exe
2.将需要的.h与.cpp拷贝出来
新建一个NC_include 文件夹,将NetCDF-cxx中的cxx文件夹下的*.h与*.cpp文件与NetCDF-c文件夹下的bin,include,lib文件夹都复制到时刚才新建的工程目录下。
注:如果NetCDF-cxx中的cxx文件夹下有test.cpp与test.h带有test前缀的测试文件不要复制。**
3.找到netcdf
打开NetCDF-cxx文件夹中的cxx文件夹,找到该文件夹中的netcdf文件,把这个文件的名称改为netcdfcpp.h,并放入NC_include 文件夹
这个文件里面的代码入下,其实就是为了程序使用时候,只需要引入一个
#include “netcdfcpp.h” 就引入了nc所需要的全部头文件,不需要一个个引入了。
//
// generic include file for the netCDF C++ API
//
extern "C" {
#include "netcdf.h"
}
#include "ncAtt.h"
#include "ncByte.h"
#include "ncChar.h"
#include "ncCheck.h"
#include "ncCompoundType.h"
#include "ncDim.h"
#include "ncDouble.h"
#include "ncEnumType.h"
#include "ncException.h"
#include "ncFile.h"
#include "ncFloat.h"
#include "ncGroup.h"
#include "ncGroupAtt.h"
#include "ncInt.h"
#include "ncInt64.h"
#include "ncOpaqueType.h"
#include "ncShort.h"
#include "ncString.h"
#include "ncType.h"
#include "ncUbyte.h"
#include "ncUint.h"
#include "ncUint64.h"
#include "ncUshort.h"
#include "ncVar.h"
#include "ncVarAtt.h"
#include "ncVlenType.h"
4 找到netcdf.h
这个在刚刚安装exe程序的安装目录下找到include
之后找到netcdf.h,放入刚刚新建的NC_include 文件夹
在刚刚的lib目录下找到这个,拷贝到自己项目目录下
最终NC_include包含如下的文件
二.项目使用
1 .资源放到自己项目下
我是把自己需要的文件拷贝到自己项目新建的资源目录下:
之后添加现有文件
将NC_include全部文件导入
接下来导入库
选择外部库
找到项目中lib路径,如下包含,设置如下
最终可以看到如下界面,点击完成即可。
使用
最后在要使用的项目中添加如下头文件即可,之后项目就可以编译成功运行
#include "resource/NC_include/netcdfcpp.h" //这个是头文件路径,每个人不一样,需要修改
using namespace netCDF;
using namespace netCDF::exceptions;