NetCDF的下載和安裝:
官方下載地址:NetCDF-C,截止到本文編輯時(shí),已經(jīng)發(fā)布到4.7.4版本。
這里要下載的內(nèi)容,其實(shí)是NetCDF-C庫的一個(gè)可執(zhí)行文件(.exe),如下圖所示:

可以根據(jù)自己電腦的位數(shù)需要下載。這里的DAP我還不太清楚是什么意思,但我發(fā)現(xiàn)官方讀取終端ncdump的命令行提示中,提到了DAP版本支持遠(yuǎn)程讀取文件,可以在命令行中直接輸入遠(yuǎn)程nc文件的URL即可讀取。

下載后的可執(zhí)行文件如下:

點(diǎn)擊后根據(jù)提示安裝即可,安裝路徑可以修改為其他盤符,不一定非要裝在C盤。
安裝完成后如下:

其中ncdump.exe、ncgen.exe以及NetCDF.dll就在bin目錄中。
環(huán)境變量的配置
1、新建系統(tǒng)變量
變量值為netcdf的安裝路徑。

2、將系統(tǒng)變量netCDF添加到Path中
在Path中新建環(huán)境變量,內(nèi)容如下:

ncdump.exe和ncgen.exe的使用
終端可以從cmd中啟用,類似mysql.exe的終端。注意:這里啟動(dòng)cmd需要“以管理員身份運(yùn)行”。
進(jìn)入cmd界面后,輸入ncdump即可看到上面說的命令行提示信息。
NetCDF 的儲(chǔ)存格式:
NetCDF 在儲(chǔ)存的時(shí)候大致上分為兩個(gè)區(qū)域,如同前面在講到 CDL 檔案的時(shí)候提到的樣子。分為:
檔頭(header):主要用來記錄變數(shù)名稱、個(gè)數(shù)與型態(tài);dimention名稱、個(gè)數(shù)與型態(tài);以及相關(guān)的說明內(nèi)容。由于這一部分內(nèi)容并沒有用到實(shí)際資料儲(chǔ)存的空間,所以使用的空間并不會(huì)多出來!
資料區(qū)(data):這一部分就是實(shí)際資料記錄的地方啦!由于這一部分的空間有涉及你當(dāng)初設(shè)定的變數(shù)型態(tài),假如你的資料為整數(shù),但是你記錄的儲(chǔ)存格式為倍精倍數(shù),則這個(gè)區(qū)域的儲(chǔ)存空間無形之中會(huì)變的很大!
基本上就僅分為這兩個(gè)部分!所以你在看檔案的時(shí)候,看前面就知道后面資料的型態(tài)!
ncgen:
這個(gè)小程式主要是用來將 CDL 檔案轉(zhuǎn)成 NetCDF 檔案的工作!假設(shè)你已經(jīng)寫了一個(gè) CDL 檔案,名稱為 netcdf.cdl ,你想將此檔案轉(zhuǎn)成 NetCDF 檔,則只要下達(dá):
# ncgen? -o? netcdf.ncf? netcdf.cdl
就可以了,語法為: ncgen? -o? [output filename]? [input filename]。
而且 ncgen 亦提供一個(gè)不錯(cuò)的選項(xiàng),亦即將你的 netcdf.cdl 檔案轉(zhuǎn)成一個(gè) fortran 程式,則你只要將此 程式 編譯并執(zhí)行后,則可以將 netcdf.cdl 轉(zhuǎn)成 NetCDF 檔案!
# ncgen? -f? netcdf.cdl > netcdf.f
上式中 netcdf.f 為 fortran 程式檔。不過用此語法需要注意,因?yàn)榇艘徽Z法僅適合比較小的 CDL 檔案!
ncdump:
另外一個(gè)最有常用到的程式稱為 ncdump ,主要的目的在于將 NetCDF 檔案資料讀成 ASCII 碼的資料!由于 NetCDF 儲(chǔ)存區(qū)分為兩段,一個(gè)為檔頭、一個(gè)為資料區(qū),若你只想讀取資料區(qū)的變數(shù)使用情況,則可以下達(dá):
# ncdump? -h? netcdf.ncf
則螢?zāi)簧蠈⒊霈F(xiàn) netcdf.ncf 這個(gè)檔案的檔頭資料。而如果你想要將所有的檔案都輸出成為 ASCII 碼資料,則直接下達(dá):
# ncdump? netcdf.ncf | more
即可,在上式中, "| more"這個(gè)指令作用是將 netcdf.ncf 這個(gè)檔案以一個(gè)畫面一個(gè)畫面的方式展示之意。而如果你想要將畫面的資料存成一個(gè) CDL 檔案,可以下達(dá):
# ncdump? netcdf.ncf > netcdf.cdl
則程式將直接把 netcdf.ncf 檔案轉(zhuǎn)存成一個(gè) netcdf.cdl 的 ASCII 碼格式的檔案!如此則你將看的到裡頭的資料囉!
不過使用的時(shí)候要小心,因?yàn)橐粋€(gè) Models-3 輸出檔常常是幾百 MB 的大小,如果你將 NetCDF 的資料直接存成 ASCII 碼的檔案,將耗費(fèi)很多時(shí)間與空間!因此上,除非是你在除錯(cuò)或者是檔案很小,否則不是很必要將檔案轉(zhuǎn)存成 ASCII 格式的檔案!
而若你只想察看 netcdf.ncf 檔案裡面一個(gè)名為 'TEMP' 的變數(shù)的話,你可以下達(dá):
# ncdump? -v? TEMP netcdf.ncf
語法為:ncdump? -v? [變數(shù)名稱] [檔案名稱]。這也是一個(gè)常用的參數(shù)喔!
內(nèi)容源自:原內(nèi)容
ncdump的官方命令行說明:
C:\WINDOWS\system32>ncdump
C: \WINDOWS\system32>ncdump
ncdump [-c|-h] [-v ...] [[-b|-f] [c|f]] [-l len] [-n name] [-p n[,n]] [-k] [-x] [-s] [-t|-i] [-g ...] [-w] [-Ln] file
ncdump[-c |-h][-v…][[-b |-f][c | f]][-l len][-n name][-p n[,n]][-k][-x][-s][-t |-i][-g…][-w][-Ln]文件
[-c]? ? ? ? ? ? Coordinate variable data and header information
[-c]坐標(biāo)變量數(shù)據(jù)和標(biāo)題信息
[-h]? ? ? ? ? ? Header information only, no data
[-h]只有標(biāo)題信息,沒有數(shù)據(jù)
[-v var1[,...]]? Data for variable(s) <var1>,... only
[-v var1[,…]]變量的數(shù)據(jù)<var1>,。。。只有
[-b [c|f]]? ? ? Brief annotations for C or Fortran indices in data
[-b[c | f]]數(shù)據(jù)中c或Fortran索引的簡(jiǎn)要注釋
[-f [c|f]]? ? ? Full annotations for C or Fortran indices in data
[-f[c | f]]數(shù)據(jù)中c或Fortran索引的完整注釋
[-l len]? ? ? ? Line length maximum in data section (default 80)
[-l len]數(shù)據(jù)段中的最大行長(zhǎng)度(默認(rèn)值80)
[-n name]? ? ? ? Name for netCDF (default derived from file name)
[-n name]netCDF的名稱(默認(rèn)從文件名派生)
[-p n[,n]]? ? ? Display floating-point values with less precision
[-p n[,n]]顯示精度較低的浮點(diǎn)值
[-k]? ? ? ? ? ? Output kind of netCDF file
[-k]netCDF文件的輸出類型
[-s]? ? ? ? ? ? Output special (virtual) attributes
[-s]輸出特殊(虛擬)屬性
[-t]? ? ? ? ? ? Output time data as date-time strings
[-t]將時(shí)間數(shù)據(jù)輸出為日期時(shí)間字符串
[-i]? ? ? ? ? ? Output time data as date-time strings with ISO-8601 'T' separator
[-i]使用ISO-8601“T”分隔符將時(shí)間數(shù)據(jù)輸出為日期-時(shí)間字符串
[-g grp1[,...]]? Data and metadata for group(s) <grp1>,... only
[-g grp1[,…]]組的數(shù)據(jù)和元數(shù)據(jù)<grp1>,。。。只有
[-w]? ? ? ? ? ? With client-side caching of variables for DAP URLs
[-w]帶有DAP url變量的客戶端緩存
[-x]? ? ? ? ? ? Output XML (NcML) instead of CDL
[-x]輸出XML(NcML)而不是CDL
[-Xp]? ? ? ? ? ? Unconditionally suppress output of the properties attribute
[-Xp]無條件抑制properties屬性的輸出
[-Ln]? ? ? ? ? ? Set log level to n (>= 0); ignore if logging not enabled.
[-Ln]將日志級(jí)別設(shè)置為n(>=0);如果未啟用日志,則忽略。
file? ? ? ? ? ? Name of netCDF file (or URL if DAP access enabled)
netCDF文件的文件名(如果啟用了DAP訪問,則為URL)
netcdf library version 4.7.2 of Oct 22 2019 11:54:23 $
netcdf庫版本4.7.2,2019年10月22日11:54:23$