Home

Julian Day to Calendar Day

背景 Julian Day(儒略日)因其具有連續性,不會因跨月、潤年等因素而發生錯誤,是時間計算過程中很重要的一種方式。 過去在Fortran程式的領域,是以一簡單的副程式計算。移轉到python平台上時,從datetime模組即能直接進行加減及轉換處理。而在bash平台上,則還需要整合一些技巧。 作為平台上計算的小工具,前述作法都有一些困難: python程式需要啟動複雜的模組、 Fortran程式在每次跨平、跨fc版本就需要重新編譯 相較而言還是以bash指令能解決最好,bash腳本具有高度的相容性,即使跨越到macOS,date指令可以直接讀取Julian Day,更容易使用。 bash腳本需處理的問題: ...

Read more

逐日循序執行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中已經妥善處理好了,只需執行即可(還好...

Read more

搜尋半徑距離平方反比加權之內插機制

背景 這個內插機制主要針對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...

Read more

將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',...

Read more

運用GFS/CWB/CAMS數值預報數進行台灣地區CMAQ模擬

(DEPRECATED !! 本文已不再更新,最新版本請至https://sinotec2.github.io/Focus-on-Air-Quality/GridModels/ForecastSystem/查詢, 2022-10-13 20:17:00) (todo list加在此頁之末) 背景 以光化學網格模式進行高解析度空氣品質數值預報、對空品不良狀況的預告以及應變措施有重要的參考價值。確定性(deterministic)模式主要的特點與好處包括: 基本的背景空氣品質預報 區分境外與本土排放的貢獻 區分背景與特定污染源的貢獻 區分人為污染或天候因素 緊急排放、或是假設性排放之投入與增量分析 ...

Read more

CAMS預報數據寫成CMAQ初始檔

背景 歐洲中期天氣預報中心再分析空品數據寫成USEPA的m3nc格式,已經在EAC4檔案轉成5階m3.nc完成。然而該項作業仍然有待改進: 因為下載全月數據,再進行轉檔(增加網格與時間的解析度),結果檔案會非常大。而此處僅需要初始小時的數據,且在自動化與作業流程中,似乎不允許如此耗時、耗費硬碟空間的作法。 數值預報數據檔與再分析數據檔的差異如下表,必須更新 有關空間之內插(Proj模組):調整成按照目標檔的座標定義。而不在python程式內重新定義,以避免發生錯誤。 有關時間的校準 空氣密度來自於mcip的結果,但時間似乎並不重要,取時間平均 只有初始時刻,無需進行...

Read more

CAMS預報數據寫成CMAQ邊界檔

背景 過去執行[中期天氣預報中心][ecmwf]再分析空品數據寫成CMAQ邊界檔有2個作法 先將全月數據寫成m3nc檔案,在用CMAQ系統的bcon程式進行切割。由於全月m3nc檔案非常龐大,此一作法不單浪費空間,同時也耗費計算時間。 直接將grib檔案寫bcon檔案。此法也需處理龐大的grib檔案,效率不彰。 此處除了針對[ecmwf][ecmwf]數值預報數據檔與再分析數據檔的[差異][CAMS_diff_tab],改進[EAC4檔案轉成5階m3.nc][grb2D1m3]作業方式,也需要改進前述作業的作法,提升計算效率,以運用在日常作業中。 改進構想 是否直接讀取grib檔案,不再經轉換成nc檔...

Read more

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':聯合(壓縮)...

Read more