NetCDF官方讀寫終端ncdump和ncgen的用法

NetCDF的下載和安裝:

官方下載地址:NetCDF-C,截止到本文編輯時(shí),已經(jīng)發(fā)布到4.7.4版本。

這里要下載的內(nèi)容,其實(shí)是NetCDF-C庫的一個(gè)可執(zhí)行文件(.exe),如下圖所示:

可執(zhí)行文件的下載位置

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

ncdump官方命令行提示

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

下載完成的exe文件

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

安裝完成后如下:

其中ncdump.exe、ncgen.exe以及NetCDF.dll就在bin目錄中。


環(huán)境變量的配置

1、新建系統(tǒng)變量

變量值為netcdf的安裝路徑。

新建系統(tǒng)變量netCDF

2、將系統(tǒng)變量netCDF添加到Path中

在Path中新建環(huán)境變量,內(nèi)容如下:

添加Path環(huán)境變量

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$

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容