Julian Day to Calendar Day
背景
Julian Day(儒略日)因其具有連續性,不會因跨月、潤年等因素而發生錯誤,是時間計算過程中很重要的一種方式。
過去在Fortran程式的領域,是以一簡單的副程式計算。移轉到python平台上時,從datetime模組即能直接進行加減及轉換處理。而在bash平台上,則還需要整合一些技巧。
作為平台上計算的小工具,前述作法都有一些困難:
python程式需要啟動複雜的模組、
Fortran程式在每次跨平、跨fc版本就需要重新編譯
相較而言還是以bash指令能解決最好,bash腳本具有高度的相容性,即使跨越到macOS,date指令可以直接讀取Julian Day,更容易使用。
bash腳本需處理的問題:
...
>
逐日循序執行bcon.exe
背景
大型、多層網格、連日的CMAQ執行結果,要接續執行bcon.exe會遭遇到龐大濃度檔(ACONC)的問題。雖然如大型網格系統切割邊界濃度(see also [[2022-03-03-hd_bc]]1)文中所述,可以python程式來執行內插與切割,但仍然不夠快速、簡潔。
由於CMAQ結果是逐日輸出,因此發展逐日執行bcon.exe還是比較合理的作法,唯一的困難,是bcon程式內設會從METBDY3D讀取相對應的起始時間,會需要:
將執行批次的METBDY3D檔案切割成逐日
逐日METBDY3D檔案的SDATE需配合ACONC濃度檔案的內容。
前述2項作業在brk_day2.cs中已經妥善處理好了,只需執行即可(還好...
>
搜尋半徑距離平方反比加權之內插機制
背景
這個內插機制主要針對2維griddata速度太慢所因應的修改方案。同時也需要規避griddata結果會有NaN內插錯誤的結果。
主要因為空氣品質或排放量的內插會與距離的遠近有關,太遠的數據對內插影響也較低,還是適用距離相關的內插機制較為合理。同時摒除遙遠的數據對提升計算速度有非常重要的貢獻。
程式主要應用在每日的下載與軌跡分析過程,參見[[2022-11-04-daily_traj]]1。
程式設計重點
2組網格座標位置之線性化
以適用即將進行的篩選(2維空間的線性化)過程、同時也簡化程式設計
字尾0/1表示舊、新的座標系統
for i in 'xy':
for j in '01':
exec(i+j+'='+i+j+'.flat...
>
將CWB數據填入WRF客觀分析場
背景
在預備WRF的初始與邊界場時,REAL會讀取OBSGRID的客觀分析結果(metoa_em、auxinput1),一般是以點狀觀測值,內插到3度空間的格點位置。
由於中央氣象局已經完成WRF模擬,不需要重新進行積分,反而有需要取得WRF執行結果中雲、邊界層數據,因此,需要將CWBWRF結果轉換成metoa_em檔案,以將其結果納入WRF模式中進行FDDA。
客觀分析結果檔(metoa_em)的內容
基本上的格式、變數定義等,與metgrid結果檔(met_em)完全一樣,只差後者可能沒有海溫(SST)。
垂直軸名稱為num_metgrid_levels,涉及6項變數:['PRES', 'GHT', 'RH', 'VV', 'UU',...
>
運用GFS/CWB/CAMS數值預報數進行台灣地區CMAQ模擬
(DEPRECATED !! 本文已不再更新,最新版本請至https://sinotec2.github.io/Focus-on-Air-Quality/GridModels/ForecastSystem/查詢, 2022-10-13 20:17:00)
(todo list加在此頁之末)
背景
以光化學網格模式進行高解析度空氣品質數值預報、對空品不良狀況的預告以及應變措施有重要的參考價值。確定性(deterministic)模式主要的特點與好處包括:
基本的背景空氣品質預報
區分境外與本土排放的貢獻
區分背景與特定污染源的貢獻
區分人為污染或天候因素
緊急排放、或是假設性排放之投入與增量分析
...
>
CAMS預報數據寫成CMAQ初始檔
背景
歐洲中期天氣預報中心再分析空品數據寫成USEPA的m3nc格式,已經在EAC4檔案轉成5階m3.nc完成。然而該項作業仍然有待改進:
因為下載全月數據,再進行轉檔(增加網格與時間的解析度),結果檔案會非常大。而此處僅需要初始小時的數據,且在自動化與作業流程中,似乎不允許如此耗時、耗費硬碟空間的作法。
數值預報數據檔與再分析數據檔的差異如下表,必須更新
有關空間之內插(Proj模組):調整成按照目標檔的座標定義。而不在python程式內重新定義,以避免發生錯誤。
有關時間的校準
空氣密度來自於mcip的結果,但時間似乎並不重要,取時間平均
只有初始時刻,無需進行...
>
CAMS預報數據寫成CMAQ邊界檔
背景
過去執行[中期天氣預報中心][ecmwf]再分析空品數據寫成CMAQ邊界檔有2個作法
先將全月數據寫成m3nc檔案,在用CMAQ系統的bcon程式進行切割。由於全月m3nc檔案非常龐大,此一作法不單浪費空間,同時也耗費計算時間。
直接將grib檔案寫bcon檔案。此法也需處理龐大的grib檔案,效率不彰。
此處除了針對[ecmwf][ecmwf]數值預報數據檔與再分析數據檔的[差異][CAMS_diff_tab],改進[EAC4檔案轉成5階m3.nc][grb2D1m3]作業方式,也需要改進前述作業的作法,提升計算效率,以運用在日常作業中。
改進構想
是否直接讀取grib檔案,不再經轉換成nc檔...
>
wrf-python getvar
變數定義
wrf-python最強項的功能除了繪圖之外,就屬getvar函數及其內插程式。
引數:(wrfin, varname, timeidx=0, method='cat', squeeze=True, cache=None, meta=True, **kwargs)
wrfin: wrf檔案名稱。以netCDF4.Dataset()開啟。
varnam: wrf-python使用的變數名稱(詳下表),不是wrfout檔案的變數名稱。為區別二者,前者用小寫,後者在ncf檔案中是大寫。
timeidx: 時間序,0~nt-1
method: 時間軸是否壓縮。'cat':保持時間軸(內設);'join':聯合(壓縮)...
>
156 post articles, 20 pages.