cost733天氣分型軟件安裝及使用流程

原來的官網(wǎng)已經(jīng)停更了,安裝包和手冊都無法下載。

現(xiàn)僅存的安裝包下載地址:philipan / cost733class-1.4 · GitLab (uni-augsburg.de)

手冊:(2) (PDF) COST733CLASS v1.2 User guide (researchgate.net)

安裝

因為我用的服務器,netcdf, hdf5等環(huán)境變量之前都是配置好的,所以解壓后直接一步安裝。

解壓

tar xzvf cost733class-1.4.tar.gz

進入解壓后的文件夾,執(zhí)行

intel處理器? ./configure FC=ifort CC=icc --disable-grib --disable-opengl && make

gnu處理器??./configure FC=gfortran CC=gcc --disable-grib --disable-opengl && make

然后進入src文件夾,檢查是否生成cost733class可執(zhí)行文件,生成即安裝成功。

使用

關于方法以及類型的選擇,更多的需要去讀用戶手冊或者參考已發(fā)表文獻,這里我只記錄一下自己基于ERA5的逐小時SLP的運行流程

1. 數(shù)據(jù)下載

勾取自己需要的時間和經(jīng)緯度范圍,下載對應的nc文件

ERA5 hourly data on single levels from 1959 to present (copernicus.eu)

2. 數(shù)據(jù)預處理

根據(jù)自己的研究需求,可以用日平均,也可以每天挑選一個時刻,放在一個nc文件里

3. 運行

進入安裝文件夾中的src文件,即cost733class可執(zhí)行文件所在的位置,運行以下命令

./cost733class -dat pth:/public/home/sunxiaoyun/datadir/ERA5/input4cost733/slp-daily.nc slo:100:125:0.25 sla:20:50:0.25 -met PCT -ncl 4 -cla ?output-PCT.txt??

./cost733class -dat pth:/student/sunxiaoyun/cal_4_cost733/input4cost733/slp-heavy.nc wgt:1.D0 -dat pth:/student/sunxiaoyun/cal_4_cost733/input4cost733/u-heavy.nc wgt:1.D0 -dat pth:/student/sunxiaoyun/cal_4_cost733/input4cost733/v-heavy.nc wgt:1.D0 slo:100:125:0.25 sla:20:50:0.25 -met PCT -ncl 4 -cla ./output/output-heavy-PCT04.txt? ? ? ? ?#用地面氣壓和風場共同進行分型

執(zhí)行時給出經(jīng)緯度范圍和分辨率,我選擇的是PCT方法,類型是4種,輸出至PCT.txt,這些都可以根據(jù)自己的需求進行修改。

到這一步就可以出運行結(jié)果了,生成的txt中幾列數(shù)據(jù)分別是年,月,日,時和type

PCT.txt

4.分類結(jié)果評估

手冊中提供了一些分類結(jié)果評估的,目的是選出最合適的類型數(shù)。這里舉例最常用的方法止一:ECV

需要給出分類的input文件,分類的執(zhí)行結(jié)果以及方法的選擇。

./cost733class -dat pth:/student/sunxiaoyun/cal_4_cost733/input4cost733/slp-heavy-twice.nc? -clain pth:./output/output-heavy-twice-PCT04.txt dtc:4 ddt:1d -met ECV -idx clain-ECV

其中 dtc:4 (日期數(shù)據(jù)有四列的意思)這個命令需要加上,否則在讀入分類結(jié)果的時候會報錯。

其中關于分類及評估方法的選取,以及用多種變量分類時權(quán)重的分配等都有待研究。感興趣的可以自己去手冊里看看。手冊中還提供了后處理的一些命令,我用不慣,選擇自己畫圖分析了。


遇到的問題(好多問題/(ㄒoㄒ)/~~)及解決方案:

1. 關于input文件的時間單位

直接下載的數(shù)據(jù)去運行cost733報錯,找不到時間單位,但數(shù)據(jù)屬性顯示明明是有單位的

報錯信息
input文件的time變量屬性

然后我去研究了一下代碼,發(fā)現(xiàn)對時間單位的幾種情況中,開始時間沒有1900-01-01 00:00:00.0這種情況,不敢隨意修改源代碼怕有連鎖反應,也不想通讀所有代碼,所以就寫了個腳本改了一下時間屬性(這一步自行發(fā)揮,我目前試了ncl和python都可以)。

截取自netcdfcheck.f90

更改后的時間單位如圖所示,是代碼中顯示的第三種case。然后我去試了一下就可以正常運行了。

2. input文件時間的連續(xù)性

這個分型模式只適用于連續(xù)的日期進行分型,例如我輸入的是2013-2020年每年的12月共8個月的數(shù)據(jù),最后運行完輸出的txt文件中顯示從2013年12月1日到2014年7月。目前找到的解決方案就是再另寫一個文件記錄正確的日期,最后分析的時候替換一下。

3.input文件日平均的處理

在我自己運行的時候,分析的時間序列比較長,所以用日均值比較合理。ERA5官方有提供一個calculator?Daily statistics calculated from ERA5 data (copernicus.eu),需要點點點,我選擇了python批量下載小時值,用cdo處理成日均值。cdo的安裝和使用我也進行過一些簡單的記錄。

安裝:?基于anaconda安裝cdo - 簡書 (jianshu.com)?使用:cdo的使用--數(shù)據(jù)的合并,剪裁,更改等,持更 - 簡書 (jianshu.com)

但是回來就發(fā)現(xiàn)這個cdo做的日均值在跨年數(shù)據(jù)作為input文件的時候會報錯。就是我用2013-2020年每年的12月共8個月沒問題,做每年冬季(12月-次年1-2月)就會報錯方差為0。方差為0不就是數(shù)據(jù)都一樣嗎,又去檢查了所有數(shù)據(jù)的方差明明沒有0,無法理解。

評論區(qū)有朋友說刪除使用cdo平均過程中新生成的time_bnds后可正常運行,我試了一下還是失敗了,有需要的朋友可以嘗試一下。

報錯信息
所有點方差的最大最小值

2023.02.10更新

原來執(zhí)行./cost733class 命令可以選擇讀入的變量! 這樣便可以解決方差為0的問題。

./cost733class pth:/public/home/sunxiaoyun/datadir/ERA5/input4cost733/slp-daily.nc var:z slo:100:125:0.25 sla:20:50:0.25 -met PCT -ncl 4 -cla ?output-PCT.txt??

2023.08.04更新

使用cdo的delete刪除time_bnds變量總是報錯找不到變量

用了python中del命令,變量依舊存在。。。

最后實現(xiàn)工具大融合,最終用nco刪除了這個變量

ncrcat -v varname?-x input.nc output.nc

2024.05.23更新

模式默認讀取日數(shù)據(jù),在做一天多個時次的時候可以嘗試更改一下nc文件的時間間隔,也可解決方差為0的問題

cdo settaxis, 2013-04-01, 00:00, 1 day test.nc test1.nc

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

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

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