背景
- CAMx及CMAQ模式基本上是可以接受多個點源檔案的,但因CMAQv531還不能接受全月整併成一個檔案,如果再區分許多的點源來源,那檔案個數就會倍數成長,因此需要進行煙囪維度方向的整併。
- 雖然是不論是輸入或輸出檔案格式,都還是CAMx7的nc格式,然而因是CMAQ點源處理的必要過程,因此歸類在CMAQ的程序之一。
- 高空點源(ptsE)與港區船舶排放(HRBR)檔案的產生,可以詳見CAMx高空點源排放檔案之產生與港區船舶之點源排放
- 結果檔案將提供給CMAQ點源程式pt_const及pt_timvar使用。
程式之執行
檔案準備
確認ptsE結果檔
ptsE檔案是用來做為成果的模版,因此需要確認的項目較多
- 使用ncdump確認CAMx版本:煙囪參數的維度是COL(CAMx7)、或者是NSTK(CAMx6),見比較表。
- COL維度必須是UNLIMITED
- 如果不是,使用ncpdq及ncks來加長一個LIMITED維度
確認HRBR檔案
- 時間的長度,必須與ptsE一致
- 污染物變數項目,必須全部含括在ptsE檔案之內。
確認檔案路徑
- 因檔案路徑是寫在程式內(
path='/nas1/TEDS/teds11/'
),需要確認確實找得到檔案,包括$path/ptse
路徑下有P=path+'ptse/fortBE.413_teds10.ptsE'+mm+'.nc'
$path/ship
路徑下有P=path+'ptse/fortBE.413_teds10.HRBR'+mm+'.nc'
引數
- 因為檔案不小,分月、同步執行較為省時,引數為月份(1~12)
執行程式
for m in {1..12};do sub python ptsEnHRBE.py $m
程式說明
- 先延長較單純的變數,如
CP_NO
,將結果檔的維度向COL方向拉長, - 再依變數的形狀(rank)將HRBR檔案,轉貼在ptsE檔案之後。
- 為避免未給定值造成遮蔽,即使船舶排放檔沒有排放量內容的變數,也必須給0。
v='CP_NO'
for c in range(noptsp,nopts):
nco.variables[v][c,:]=ncs.variables[v][c-noptsp,:]
for v in v1:
for c in range(noptsp,nopts):
nco.variables[v][c]=ncs.variables[v][c-noptsp]
for v in v2p1:
for c in range(noptsp,nopts):
nco.variables[v][:,c]=0.
if v in v2s:
nco.variables[v][:,c]=ncs.variables[v][:,c-noptsp]
nco.NCOLS=nopts
nco.close()
程式下載
Download: 點源整併程式:ptsEnHRBE.py
結果確認
- 可以使用pt2em_d04.py以地面排放檔將點源nc檔網格化,再以VERDI檢視是否在港區範圍有增加排放量。