在Windows环境下配置QT Creator 读取NC文件(NetCDP,C++接口)


前言

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;
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值