Link Search Menu Expand Document

網格化檔案之行政區域平均

Table of contents

背景

  • 由於網格模式在空間上的精準度確實力有未逮,因此在模擬結果的空間代表性上,有其設計的限制。
  • 理論上模式輸出是代表水平範圍3X3公里見方、高度40M範圍內的小時平均值,與測站值的空間意義是很大不同的。
  • 過去有空間內插的作法,對於具有顯著空間變化的污染物項目,或可降低此二者意義的差異。
  • 此處乃以較大範圍之平均做為手段,以行政區平均濃度來表示,不單可以降低空間意義的突兀,也可以和健康風險評估掛勾,具有空間上的意義。
  • 此處以CAMx/CMAQ輸出之空氣品質檔案為對象,與其他行政區平均之處理對象有所不同(如行政區範圍等值圖是處理csv檔案、並不要求是固定網格)。

執行方式

檔案系統

  • 程式需要三個檔案:
    • 模式模擬結果:5度空間之nc 檔案
    • 在時間上沒有限制,可以是一段期間、平均值、最大值等。
    • 在空間上:與行政區劃分的模版有關,目前是d4範圍
  • 行政區劃分的模版nc檔案:與CMAQ-ISAM所需之行政區劃分檔一致,可參考筆記:CMAQ土地使用與土壤設定
  • 行政區ID、名稱等csv檔案:此處為新版鄉鎮區代碼表,內容範例如下:
$ head town_aqstEnew.csv
code,code1,code2,Name,aq_st,new_code,TOWNENG
101,1,1,taibeishisongshanqu,12;15;,63000010,Songshan District
102,1,2,taibeishixinyiqu,15;2;,63000020,Xinyi District
103,1,3,taibeishidaanqu,15;,63000030,Da'an District
104,1,4,taibeishizhongzhengqu,8;13;16;12;15;70;4;,63000050,Zhongzheng District
105,1,5,taibeishiwanhuaqu,13;,63000070,Wanhua District
106,1,6,taibeishidatongqu,16;,63000060,Datong District
107,1,7,taibeishizhongshanqu,12;,63000040,Zhongshan District
108,1,8,taibeishineihuqu,3;12;,63000100,Neihu District
109,1,9,taibeishinangangqu,3;2;,63000090,Nangang District
  • 程式輸出結果:為平均濃度排序之csv檔

命令列輸入

  • 需要2個引數:模式模擬結果nc檔名稱、以及平均項目。如 python By_DIST.py 3G.S.ncDM PM25

  • 結果csv檔案命名為「輸入檔」+.csv,平均之污染物名稱則為csv表頭之一,以資識別。

程式設計重點

行政區域代碼、比例之讀取、標準化與儲存

  • 因為行政區邊界上的值大多為<1之數字,因此在平均時,需要邊界2側值同時考量,進行平均才能保持質量守恒。
  • 此處是求取行政區的平均值,為避免這些邊界值造成低估,皆取為1.0,如此僅以矩陣相乘即可造成行政區效果,再取非0值進行平均值即可。
30  #read the district fraction distributions
31  nc = netCDF4.Dataset(P+'CNTYFRAC_TWN_3X3.nc','r')
32  V=[list(filter(lambda x:nc.variables[x].ndim==j, [i for i in nc.variables])) for j in [1,2,3,4]]
33  ntt,nlay,nrow,ncol=nc.variables[V[3][0]].shape
34  T=[]
35  for v in V[3]:
36    if v[0] !='T':continue
37    if v == 'T5300': continue
38    T.append(v)
39  nv=len(T)
40  dfrac=np.zeros(shape=(nv,nrow,ncol))
41  for v in T:
42    iv=T.index(v)
43    dfrac[iv,:,:]=nc.variables[v][0,0,:,:]
44    idx=np.where(dfrac[iv,:,:]>0)
45    dfrac[iv,idx[0],idx[1]]=1.
46  nc.close()

執行結果檢核

  • 此處以VERDI的濃度分布(Tile Plot)與面積平均(Areal InterP)來檢查
  • 在Area Files處選擇/cluster/VERDI_1.5.0/plugins/bootstrap/TOWN_MOI_1090727.shp
  • 著重高值的解析,檢討其位置是否正確。
  • 分析結果(3G.S.ncDM_ByCnty.csv)以梓官區濃度最高、前金次之,鹽埕區第三,
  • 繪圖結果梓官OK、前金鹽埕偏西,可能地圖系統性差異所致。數值OK
kuang@node03 /nas1/camxruns/2016_v7/outputs/Annual
$ head 3G.S.ncDM_ByCnty.csv
tflag,cnty,PM25,name
20160131,64000290,0.44585323333740234,gaoxiongshiziguanqu
20160131,64000070,0.4364948272705078,gaoxiongshiqianjinqu
20160131,64000010,0.4364948272705078,gaoxiongshiyanchengqu
20160131,64000280,0.4270853281021118,gaoxiongshimituoqu
20160131,64000270,0.40331759623118807,gaoxiongshiyonganqu
20160131,64000240,0.39333903127246433,gaoxiongshiluzhuqu
20160131,64000060,0.3899679183959961,gaoxiongshixinxingqu
20160131,64000020,0.37605167031288145,gaoxiongshigushanqu
20160131,64000030,0.37439530591169995,gaoxiongshizuoyingqu

程式碼下載

55