Link Search Menu Expand Document

地面點源之時變係數

Table of contents

背景

  • 與高空點源的時變係數類似,地面點源也是依據CEMS數據,然而同一工廠無數據、鄰近工業區其他廠無數據者,亦會參考CEMS設定其時變係數。重要差異:
    • 因第一層的點源不可能正好有CEMS數據,其時變係數全為0/1之整數,有別於高空點源。
    • 因此分開處理將會大幅降低檔案的大小。
  • 排放量整體處理原則參見處理程序總綱、針對點源之處理龐大.dbf檔案之讀取,為此處之前處理。程式也會呼叫到ptse_sub中的副程式

程式說明

程式執行

因排放物質類別與污染源製造程序的特徵有關,必須分開個別處理,此處則以個別污染項目執行ptseG_ONS.py,執行方式如下:

for spe in NMHC SNCP;do python ptseG_ONS.py $spe;done
  • 由於程式消耗記憶體非常大量,如要同時進行,需注意記憶體的使用情形。
  • 污染源個數與排放高度限值的設定、地面PM排放條件之給定、以及數據年代等等都有關係,需配套紀錄。

程式差異

diff ptseG_ONS.py ptseE_ONS.py

  • 對切分高度的作法,還包括所有煙道編號不是以P起頭的所有污染源
< boo=(df.HEI<Hs) | (df.NO_S.map(lambda x:x[0]!='P'))
< df=df.loc[boo].reset_index(drop=True)
---
> df=df.loc[(df.HEI>=Hs) & (df.NO_S.map(lambda x:x[0]=='P'))].reset_index(drop=True)
  • 高空源是每污染物逐項執行,地面是NMHCSNCP2項。
109,112c106,107
< boo1=df.NMHC_EMI>0
< boo2=(df.SOX_EMI+df.NOX_EMI+df.CO_EMI+df.PM_EMI)>0
< BLS={'NMHC':boo1,'SNCP':boo2}
< lsp={'NMHC':['NMHC_EMI'],'SNCP':'SOX_EMI,NOX_EMI,CO_EMI,PM_EMI'.split(',')}
---
> c2v={'NMHC':'PM','SOX':'SOX','NOX':'NOX','PM':'PM','CO':'NOX'} #point.csv vs cems.csv
> BLS={c:df[c+'_EMI']>0 for c in c2v}
  • 地面源沒有CEMS,因此時變係數為整數(01)
127c122
<   ons=np.zeros(shape=(len(cp),len(mdh)),dtype=int)
---
>   ons=np.zeros(shape=(len(cp),nMDH))#,dtype=int)
  • 結果檔名也有點不一樣
161c159
<   fnameO=spe+'_CP'+str(len(cp))+'_MDH'+str(len(mdh))+'_ONS.bin'
---
>   fnameO=spe+'_ECP'+str(len(cp))+'_MDH'+str(len(mdh))+'_ONS.bin'

檔案下載

Reference