增量濃度分析程序與檢討

 

前言/背景

  • 計算不同排放情境模擬結果的濃度差異,是執行空品模式常見的作業。如CMAQ這樣有nc檔案輸出的模式,以dNC就可以簡單解決。但因為CMAQ的粒狀物定義同時有i,j,k濃度(CCTM_ACONC)與其重量比例(CCTM_APMDIAG)等2個場同時介入,因此造成非常高度之非線性結果。
  • 按照PM的計算方式(see also [[2021-12-16-combine]][^1]),非線性來源有3:
    1. 化學反應:開發單位(以下以高雄興達電廠為例)因排放大量NO,造成局部地區O3快速反應消失,因氧化物減少,原生性污染物SO2、NO2的轉化能力下降,於是造成局部地區衍生性粒狀物成分減量、造成PM比例的失衡,會出現在營運前後CCTM_ACONC檔案的差異。
    2. 營運前後PM粒徑重量比例係數(CCTM_APMDIAG)的差異。營運後不必然(也不可能)所有時間、所有地區、所有mode的比例都是增加。
    3. PM集成的過程:不論是PM2.5或PM10的計算過程中,都會先分別針對i,j,k mode將所有粒狀物進行加總。如果有的物質增加、有的減少,總合後將會使營運前後的差值不如預期(不必然增加)。
  • 由於目前還沒有找到討論CMAQ電廠個案PM2.5/PM10增量比例的期刊文章,整體計算方式值得詳細討論。

傳統作法

  • 由於CCTM_ACONC檔案的化學物質多達200餘種,再加上CCTM_APMDIAG逐日結果,檔案非常龐大,需先進行整併以減省空間。
  • 因此大多數處理流程會先進行個案模擬的combine,再進行相減(dNC)與增量的後續統計。

結果

  1. 相減結果會在看似非關連之區域出現微幅的濃度擾動。如圖1在某一時間之山區、電廠下游的西南海域遠方出現NO3-增量、而在海面則出現負值之增量(空白處為無法取log值之負值增量區域),為化學反應造成的非線性現象,即使取月均值,電廠附近局部網格仍有負值。其他SO4=也出現負值增量的結果。
  2. 營運前後粗細粒比例(CCTM_APMDIAG檔)具有差異性,如圖2a以營運前為1.0,營運後PM25AC月均值的增加幅度,圖2b則為PM10AC的增加幅度。因電廠運轉造成煙流範圍細粒比例增加約1%,洽與上圖3-負值增量及PM2.5與PM10增量之差值負值分布相同
  3. PM2.5增量高於PM10的增量(圖3),圖中只顯示負值部分。顯示電廠為起點之煙流範圍有負值之最大值,約與上圖NO3-負值增量濃度分布相同,為combine的最終結果,包括污染項目間的集成與PM分率的效果。
圖1a-N3G_NO3.png 圖1b-N3G_NO3.png
圖1a 2019/01/01/00Z 興達新3氣機組PM2.5中NO3-濃度值之增量。 圖1b 同左但為月平均值
圖2a-PM25ACdiffT.png 圖2b-PM10ACdiffT.png
圖2a 計畫營運前後Aitken mode濃度在PM2.5部分之比例(PM25AC)之月均值增加率。 圖2b 同左但為PM10部分比例(PM10AC)。電廠造成附近PM10AC月均值增加0.01%
圖3a-N3GPMdiff.png 圖3b-N3GPMdiffT.png
圖3a 同圖1a時間PM2.5與PM10增量之差值 圖3b 同左但為月平均值

檢討

  • 總結上述計算過程,就影響PM結果的因素,檢討起來有下列3項:
    • 個別成分增量中含有之負值、且/或
    • PM25AC、PM10AC局部之增、減現象、且/或
    • combine對濃度以及粒徑範圍的集成效果
  • 3因素的相依性檢討
    • 即使使用同一組CCTM_APDIAG(不論營運前或營運後),因一般NO3-在粗顆粒佔比較大,負值則將造成粗顆粒減少更多,因此造成PM10增量小於PM2.5
    • 由於ATOT的定義是所有Aerosol成分的總合,計算公式是各成分相加,唯有每個ATOT成分都滿足營運後大或等於營運前,才能保證一定能得到ATOT也是營運後大或等於營運前的ATOT結果。
    • 即便ATOTi為正值,營運後乘上較大的PM25AC比例得到較高的PM2.5,是有可能大於乘上增加比例不太多的PM10AC的結果。
  • 此3者同時作用
    • PM2.5增量大於PM10雖不合理,但其乃為必然之數學結果。

出現負值增量與PM10小於PM2.5可能的原因列表

項目 公版模式指定內容及計算公式 出現負值增量與PM10小於PM2.5可能的原因 此次修正作法
合併程序 combine.sh 公版只提供combine後之背景濃度,未提供base之ACONC及APMDIAG檔,因此只能先進行combine,結果再進行差異分析 先進行營運前後、個別成分逐時濃度之篩選、再進行combine與差異分析
物種定義檔,執行combine讀取 SpecDef_cb6r3_ae7_aq.txt   (未修正)
PM10物種組成定義於物種定義檔 ATOTI[0]×PM10AT[3] + ATOTJ[0]×PM10AC[3] + ATOTK[0]×PM10CO[3] 負值可能來自相乘的元素及加總過程 (未修正)
PM25_TOT物種組成定義於物種定義檔 ATOTI[0]×PM25AT[3] + ATOTJ[0]×PM25AC[3] + ATOTK[0]×PM25CO[3] 負值可能來自相乘的元素及加總過程 (未修正)
重做base之小時平均濃度輸出檔CCTM_ACONC 提供前述公式中各I,I,K各mode成份之總合ATOTI, ATOTJ, ATOTK 因化學反應case營運後部分逐時濃度結果反而低於base個案,PM10成分累積更多負值造成低於PM2.5之結果 過濾營運後逐時濃度低於背景之結果(設為背景值)。
網格點上各粒徑比例之小時平均值CCTM_APMDIAG 提供前述公式中之PM10AT, PM10AC, PM10CO,以及PM25AT, PM25AC, PM25CO 營運前後部分地區時間的粒徑比例發生差異,增量煙流之細粒比例有所增加。如該處出現負值增量,則會對該處平均值放大扣減效果。 只選擇營運後之粒徑比例進行combine計算,避免不一致。

因應策略方案

先相減再過濾

  • 雖然就化學反應而論,負值增量是合理與必然的結果,但是在法規應用上為trivial solution,無法討論。
  • 且在時間平均過程中負值會造成干擾、降低平均結果而不保守。
  • 建議在combine之前就將負值排除,以避免粒徑分率與集成過程的干擾。
#kuang@DEVP /nas2/cmaqruns/2019force/output/2019-01/grid03/cctm.XindaN3G-BASE_withFilter0
d1=../../cctm.BASE/daily
d2=../../cctm.XindaN3G/daily
for i in {01..31};do dNC $d1/CCTM_ACONC$i.nc $d2/CCTM_ACONC$i.nc CCTM_ACONC$i.nc ;done
  • 使用簡單的np.where即可完成過濾的動作。
V=[list(filter(lambda x:nc.variables[x].ndim==j, [i for i in nc.variables])) for j in [1,2,3,4]]
for v in V[3]:
  var=np.where(nc[v][:]>0,nc[v][:],0)
  nc[v][:]=var[:]

先過濾再相減

  • 如果為符合公版模式現行作業程序(需同時提供營運前後combine結果),要在相減前要進行過濾
  • 設若nc為營運後、nc0為營運前之背景濃度,前述np.where條件需改成「營運後濃度是否大於背景」,如否,則設成背景濃度。
V=[list(filter(lambda x:nc.variables[x].ndim==j, [i for i in nc.variables])) for j in [1,2,3,4]]
for v in V[3]:
  var=np.where(nc[v][:]>nc0[v][:],nc[v][:],nc0[v][:])
  nc[v][:]=var[:]

必須使用同一組粒徑分率(CCTM_APMDIAG)進行combine

  • 如果在combine前先進行濃度差值的計算,增加的濃度應該適用營運後的CCTM_APMDIAG比較合理。
#kuang@DEVP /nas2/cmaqruns/2019force/output/2019-01/grid03/cctm.XindaN3G-BASE_withFilter0
ln -s ../../cctm.XindaN3G/daily/APDIAG_b_n3g/* .

計算程序比較

順序 傳統作法 新計算程序建議 比較說明
1 營運前後模擬結果分別進行combine 營運前後CCTM_ACONC相減、過濾* 後者檔案較大、需要較大磁碟空間進行作業、妥善檔案管理、平行運作
2 營運前後CCTM_COMBINE檔案再進一步篩減項目(shk.cs) 連結營運後之CCTM_APMDIAG檔案到同一目錄 前者可以再進一步縮小檔案容量
3 營運前後shk.cs結果相減、分析、繪圖 營運前後以同一組CCTM_APMDIAG進行combine 前者完工
4 (無) 進行shk.cs、分析、繪圖 後者完工
  • *:先相減後過濾(此處作法)、或為套用公版後處理作業架構先過濾再進行combine、相減,效果應為一致。

    結果及討論

  • PM2.5:最大值變動不大,但臺灣本島中北部、東部的增量變多了。海面上、電廠附近的負值增量消失了。
  • PM10:山區低濃度範圍更擴大一些
  • PM2.5/PM10:月均值的比例,未過濾前的振盪很大、包括在外海、北部地區及山區,電廠附近也有負值之振盪。經過濾後模擬範圍的比例在0.35~0.95之間,山區約在0.7上下,平地範圍較高約在0.8~0.9,越遠越高。電廠附近與煙流也較高。

| 圖4a-N3G_PM25.png.png |圖4b-cctm.XindaN3G-BASE.nc_Filtered_PM25.png |:–:|:–:| | 圖4a 2019年1月份平均PM2.5增量濃度 |圖4b 同左但為新計算程序| | 圖5a-N3G_PM10.png |圖5b-cctm.XindaN3G-BASE.nc_Filtered_PM10.png| | 圖5a 2019年1月份平均PM10增量濃度 |圖5b 同左但為新計算程序| | 圖6a-N3G_rat.png |圖6b-cctm.XindaN3G-BASE.nc_Filtered_rat.png| | 圖6a 2019年1月份平均PM2.5增量濃度與PM10之比值 |圖6b 同左但為新計算程序| [^1]: https://sinotec2.github.io/FAQ/2021/12/16/combine.html “ 綜合空品項目之計算”