背景
- 使用python來處理排放檔案,比傳統的fortran要方便很多。不論是nc檔案或者是[uamiv][uamiv]檔案
- 此處介紹一些案例供參
船舶排放之敏感性調整
- 測試船舶排放硫氧化物之敏感性
- 格式為[uamiv][uamiv]
- 程式內執行月份、pathway、domain等迴圈
#kuang@master /nas1/camxruns/2016_v7/emis
#$ cat SHIP0.1.py
from PseudoNetCDF.camxfiles.Memmaps import uamiv
import os, sys
V=['SO2']
paths=['ship']
for path in paths:
for m in range(1,13):
mo='{:02d}'.format(m)
for d in ['4']: # ['1','2']:
fname='fortBE.'+d+'13_STEAM.base'+mo
fn=path+'/'+fname
fnameO=fn+'S0.1'
os.system('cp '+fn+' '+fnameO)
nc= uamiv(fnameO, 'r+')
for v in V:
nc.variables[v][:]=nc.variables[v][:]/10.
nc.close()
NO敏感性
- 6月份地面源NO排放量併入NO2、完全歸0之敏感性測試。
- 時間為中午前後4小時之白天時段(CAMx為local time)
#kuang@master /nas1/camxruns/2016_v7/emis
#$ cat NO0.py
import netCDF4
import os
import numpy as np
fnames=['/nas1/TEDS/teds10_camx/HourlyWeighted/area/fortBE.413_teds10.area06.nc',
'/nas1/TEDS/teds10_camx/HourlyWeighted/line/fortBE.413_teds10.line06.nc',
'/nas1/TEDS/teds10_camx/HourlyWeighted/ship/fortBE.413_teds10.51Ab06.nc',
'/nas1/TEDS/teds10_camx/HourlyWeighted/biog/fortBE.413_teds10.biog06.nc',
'/nas1/TEDS/teds10_camx/HourlyWeighted/ptse/fortBE.413_teds10.ptsG06.nc']
v='TFLAG'
for fname in fnames:
fnameO=fname.replace('.nc','NO0.nc')
os.system('cp '+fname+' '+fnameO)
nc = netCDF4.Dataset(fnameO, 'r+')
t=nc.variables[v][:,0,1]
idx=np.where(abs(t-120000)<=40000)
nc.variables['NO2'][idx[0],:,:,:]+=nc.variables['NO'][idx[0],:,:,:]
nc.variables['NO'][idx[0],:,:,:]=0
print(fnameO)
nc.close()
境外排放粒狀物及SO2敏感性
- 面源粒狀物減半、硫氧化物減8成
kuang@master /nas1/camxruns/2016_v7/emis
$ cat INDP0.5S0.1.py
from PseudoNetCDF.camxfiles.Memmaps import uamiv
import os, sys
Vs=['SO2']
Vp=['CCRS','FCRS','CPRM','FPRM']
paths=['area']
for path in paths:
for m in range(1,13):
mo='{:02d}'.format(m)
for d in ['1','2']:
fname='fortBE.'+d+'13_REAS3.base'+mo
fn=path+'/'+fname
fnameO=fn+'P0.5S0.2'
os.system('cp '+fn+' '+fnameO)
nc= uamiv(fnameO, 'r+')
for v in Vs:
nc.variables[v][:]=nc.variables[v][:]/5.
for v in Vp:
nc.variables[v][:]=nc.variables[v][:]/2.
nc.close()
REAS排放特定分區之修正
- mod11.py這支程式主要針對d1範圍REAS排放量進行分區修改
- 除了面源之外,本程式也可以針對CAMx7版本的點源nc檔案進行修正
- 分區方式為大陸官方的[空氣質量預報區][withinD1],本系列其他程式(mod28-41.py)也可以針對特定網格位置之點源進行修正。
- 詳細程式分段說明,詳見REAS分區修正之程式說明
濃度差異轉成排放量
- 使用測站或衛星反衍排放量時,假設濃度差異全部為局部排放量差異所造成,經由網格的箱形模式計算與單位轉換即可進行排放量修正。
- 詳細程式說明詳見dc2em.py、[[2022-07-19-dc2em.py]]