[NCO,NCL]基礎(chǔ)NCO、NCL命令

最近接觸單柱模式,需要處理輸出NC文件,即NetCDF文件(Network Common Data Format),簡(jiǎn)單了解了NCL和NCO工具。一個(gè)NetCDF數(shù)據(jù)集包含維(dimensions)、變量(variables)和屬性(attributes)三種描述類型,每種類型都會(huì)被分配一個(gè)名字和ID,這些類型共同描述了一個(gè)數(shù)據(jù)集,NetCDF庫(kù)可以同時(shí)訪問(wèn)多個(gè)數(shù)據(jù)集,用ID來(lái)識(shí)別不同數(shù)據(jù)集。變量存儲(chǔ)實(shí)際數(shù)據(jù),維給出了變量維度信息,屬性則給出了變量或數(shù)據(jù)集本身的輔助信息屬性,又可以分為適用于整個(gè)文件的全局屬性和適用于特定變量的局部屬性,全局屬性則描述了數(shù)據(jù)集的基本屬性以及數(shù)據(jù)集的來(lái)源。
流行的處理軟件有很多,對(duì)比如下:

Paste_Image.png
Paste_Image.png

NCL

NCL全稱為NCAR Command Language,是由美國(guó)大氣研究中心(NCAR)開發(fā)的 專門用于科學(xué)資料分析與可視化的一門解釋型語(yǔ)言。
NCL支持的數(shù)據(jù)類型包括NetCDF 3/4,GRIB 1/2, HDF 4/5,HDF-EOS 2/5, shapefile,ASCII,binary。內(nèi)建了大量的分析函數(shù)。可以很方便的產(chǎn)生 高質(zhì)量的圖形并且有大量的圖形源(resource)可被用于自定義圖形。大量 示例腳本和相應(yīng)的圖形可在官網(wǎng)(ncl.ucar.edu)學(xué)習(xí)。

基本命令
參考資料

官網(wǎng)

Paste_Image.png

http://ncl.readthedocs.io/zh_CN/latest/index.html
https://blog.tianqitu.net/2011/10/22/ncl-e5-9f-ba-e6-9c-ac-e8-af-ad-e6-b3-95/
https://linux.die.net/man/1/ncrename

NCO工具

netCDF Operators (NCO) 工具用來(lái)操作和分析netCDF自描述數(shù)據(jù)存儲(chǔ)格式。
nco 使用頻率較高的兩中處理方式就是average與concatenation
添加(Appending)是針對(duì)變量的。
file1 = T,U,V
file2 = P,C
file3 = T,U,V,P,C
連接(Concatenation)是針對(duì)(如:時(shí)間)維度的。
file1 = T(0-12,:,:)
file2 = T(13-24,:,:)
file3 = T(0-24,:,:)

基礎(chǔ)命令

ncks filename | more #查看文件
ncks -v variable filename
ncrcat #將已有record集合為一個(gè)文件
ncecat#將ensemble集合為一個(gè)文件
ncra #將record取平均
ncwa#將record的某些部分取平均, -a 是去掉某些變量
ncdiff #取不同
ncea #變量取平均
ncrename #變量重命名
cdo #變量插值
ncpdq -U #變量類型轉(zhuǎn)換

參考資料

官網(wǎng)網(wǎng)站http://nco.sourceforge.net/nco.html
http://bosomfriend.blog.edu.cn/home.php?mod=space&uid=1555165&do=blog&id=75336
http://hxfcalf.blog.163.com/blog/static/21575548201051191420134

實(shí)踐

  1. 在我的實(shí)驗(yàn)中只用到了幾個(gè)命令
    ncrename ##rename dimensions, variables, and attributes in netCDF file.
    ncdump -h XXX.nc #查看文件結(jié)構(gòu)
    ncks XXX.nc | more##查看數(shù)據(jù)內(nèi)容
    ncks -H -v u -d lev,15 -d time,56,1136 ARM95_4scam.nc U850.nc ##查看搜索lev數(shù)組第15元素,time數(shù)組在56,1136標(biāo)號(hào)內(nèi),變量為u的數(shù)據(jù)并輸出到U850.nc文件中
    ncwa -a time,lev U850.nc -O U850.nc ##平均掉time和氣壓水平

  2. cnl文件
    <pre>
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
    load "$NCARG_ROOT/lib/ncarg/nclscripts/contrib/ut_string.ncl"
    begin
    ;var_names = (/"LWCF", "SWCF", "PRECT", "Q850", "T850"/)
    var_names = (/"U200","U850","V200","V850","PRECT","Q850","FLUT","FSNTOA","T850","T200","CLDHGH","CLDLOW","CLDMED","CLDTOT","PS"/)
    obs_path = "/home/huangxin/CSM-tunner/SCAM/cesm1_2_2/SCMtest_11111/run/metrics/climo/obs"
    model_base = "/home/huangxin/CSM-tunner/SCAM/cesm1_2_2/SCMtest_11111/run/metrics/climo/model/tune/"
    climo_path = "/home/huangxin/CSM-tunner/SCAM/cesm1_2_2/SCMtest_11111/run/metrics/climo/"

    num_vars = dimsizes(var_names)
    var_obs = new((/num_vars/), float)
    var_obs@_FillValue = 1.0e33
    var_obs = var_obs@_FillValue
    var_model = new((/num_vars/), float)
    var_model@_FillValue = 1.0e33
    var_model = var_model@_FillValue
    var_rms = new((/num_vars/), float)
    var_rms@_FillValue = 1.0e33
    var_rms = var_rms@_FillValue
    do k = 0, num_vars - 1
    obs_file = obs_path + "/" + var_names(k) +".nc"
    model_file = model_base + "tmp.nc"
    fp_obs = addfile(obs_file, "r")
    ;print(fp_obs->$var_names(k)$)
    var_obs(k) = fp_obs->$var_names(k)$(0,0)
    fp_model = addfile(model_file, "r")
    var_model(k) = fp_model ->$var_names(k)$(0,0,0)
    end do
    var_rms = (var_obs - var_model)^2
    </pre>

  3. 未解決:利用bash的while循環(huán)按行讀文件(如下),每讀一行處理一次ncl,但會(huì)遇到語(yǔ)法問(wèn)題:syntax: line -1
    <pre>
    while read variable
    do
    ...
    ncl XXX.ncl
    ...
    done
    </pre>
    目前用csh來(lái)處理,或bash的其他效率低的讀文件方式。

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,740評(píng)論 18 399
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,269評(píng)論 2 33
  • 第1章 小試牛刀 $ 是普通用戶,# 表示管理員用戶 root。 shebang:#!。sharp / hash ...
    巴喬書摘閱讀 6,675評(píng)論 1 4
  • 不支持上傳文件,所以就復(fù)制過(guò)來(lái)了。作者信息什么的都沒(méi)刪。對(duì)前端基本屬于一竅不通,所以沒(méi)有任何修改,反正用著沒(méi)問(wèn)題就...
    全棧在路上閱讀 2,071評(píng)論 0 2
  • 朋友佳佳從遠(yuǎn)方傳來(lái)婚訊,一臉幸福地宣告她要走進(jìn)婚姻啦。 還記得那些日子,看起來(lái)憔悴不堪的她總是深夜里和我聊天,隔著...
    伊達(dá)生活筆記閱讀 269評(píng)論 0 0

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