在Windows环境下配置QT Creator 读取NC文件(NetCDP,C++接口)
文章目錄
- 前言
- 一、資源下載
- 1.1 首先下載NetCDF-c與NetCDF-cxx
- 二、使用步驟
- 1.下載文件
- 2.將需要的.h與.cpp拷貝出來
- 3.找到netcdf
- 4 找到netcdf.h
- 二.項目使用
- 1 .資源放到自己項目下
- 使用
前言
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所需要的全部頭文件,不需要一個個引入了。
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;總結
以上是生活随笔為你收集整理的在Windows环境下配置QT Creator 读取NC文件(NetCDP,C++接口)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树的前序遍历、中序遍历、后序遍历详解
- 下一篇: c++常见的排序表与复杂度