Link Search Menu Expand Document

WRF-chem的後處理

Table of contents

背景

  • WRF-chem的模擬結果基本上還是個wrfout,此次沙塵暴模擬結果與WRF4.3wrfout檔案比較,只有下列29項變數的差異(如下表)。其中
    • PM10及PM2_5_DRY目前因沙塵個案沒有執行化學反應,此項為0,如有需要必須自行計算(加總即可)。
    • DUST_1~5為粒徑0.5~8 μm之分量,此處以其線性總合做為PM10之比較
      PM2.5=bin1+0.3125*bin2
      PM10=bin1+bin2+bin3+0.87*bin4
      
    • 單位μg/Kg與μg/M3之間差了空氣密度之倍數,此處參考wiki取常壓室溫1.1839 Kg/M3
Variable NameDescriptionUnits
CLDFRA2CLOUD FRACTION-
CN2O5n2o5 velocitym/s
DMS_0dms oceanic concentrationsnM/L
DRYDEPVELdust dry deposition velocitym/s
DRY_DEP_LENdry deposition velocitycm/s
DUST_1dust size bin 1: 0.5um effective radiusug/kg-dryair
DUST_2dust size bin 2: 1.4um effective radiusug/kg-dryair
DUST_3dust size bin 3: 2.4um effective radiusug/kg-dryair
DUST_4dust size bin 4: 4.5um effective radiusug/kg-dryair
DUST_5dust size bin 5: 8.0um effective radiusug/kg-dryair
EBIO_APIActual biog emissmol km^-2 hr^-1
EBIO_ISOActual biog emissmol km^-2 hr^-1
EVAPPRODRAIN EVAPORATION RATEs-1
GAMN2O5n2o5 uptake by aerosolnumerical value
KN2O5n2o5 het reaction rates-1
LAI_VEGMASKMODIS LAI vegetation mask for this date; 0=no dust produced (vegetation)none
MAX_MSTFXMax map factor in domain 
MAX_MSTFYMax map factor in domain 
PHOTR204CLNO2 Photolysis Ratemin{-1}
PM10pm10 dry massug m^-3
PM2_5_DRYpm2.5 aerosol dry massug m^-3
PVPotential Vorticitypvu
RAINPRODTOTAL RAIN PRODUCTION RATEs-1
ROUGH_CORroughness elements correction 
SAC2nd moment Aitken modem2 m-3
SMOIS_CORsoil moisture correction 
SNU2nd moment Aitken modem2 m-3
UST_TThreshold Friction Velocitym s-1
YCLNO2clno2 yield from n2o5 hetnumerical value

程式說明

程式I/O檔案

  • dustYYMM.mc
    • 從逐日個別wrfout檔案中切出第1層、取出Times,DUST_1~5等變數之結果檔。過程詳程式#說明,使用ncksncrcat
    • 由於模擬結果檔案很大,無法直接進入VERDI,必須加以裁切。
  • dust.nc
    • 整個模擬期間所有日期的合併檔,為一模版,其值會被覆蓋。
    • DUST_1將為程式加總之結果。

程式說明

  • 每個逐日檔案進行迴圈,將結果回存到整合所有日的模版dust.nc
    • 每個檔案的時間都是24小時,但最後檔只有1小時,因此還是以nt為長度,才不會出錯。
    • 加總後可以用VERDI開啟、繪圖。
      • 使用imagineMagicks convert一次修剪所有的png檔案、再予以組合成gif
      • 或使用-bordercolor white -trim + -bordercolor white -border 10%x10% 會比較整齊
      • 轉換成gif時,convert會自動回復成原來的背景,-background none可取消。
for i in {0..54};do convert WRF_chem-$i.png -crop 950x550 a.png;mv a.png WRF_chemC-$i.png;done
for i in {0..9};do mv WRF_chemC-$i.png WRF_chemC-0$i.png;done
convert -dispose 2 -coalesce +repage -background none  WRF_chem-*.png -size 895x565 WRF_chem.gif
  • 北臺灣測點時間序列之讀取
    • IX,IYVERDI圖面上讀取結果,因此換到python上時須減1
    • wrfout的時間標籤為Times,為12個byte的序列,因此須先轉成(decode)字元,串成(join)字串,再讀成datetime,轉成所要的格式。詳情見WRF的時間標籤之說明
    • csv檔案可以用Excel等軟體繪製時間序列圖
strT=[''.join([i.decode('utf-8') for i in nc.variables['Times'][t,:]]) for t in range(nt)]
Times=[datetime.datetime.strptime(a,'%Y-%m-%d_%H:00:00') for a in strT]
tflag=[i.strftime('%Y%m%d%H') for i in Times]

rd_dust.py code listing

import netCDF4
import numpy as np
import datetime

#for i in 03-3{0..1} 04-0{1..9};do nc=wrfout_d01_2018-${i}_00:00:00;ncks -v Times,DUST_1,DUST_2,DUST_2,DUST_3,DUST_4,DUST_5 -d bottom_top,0 $nc dust$i.nc;done
#ncrcat -O dust0*.nc a
#ncks -O -v Times,DUST_1 a dust.nc

fnames=subprocess.check_output('ls dust??-??.nc',shell=True).decode('utf8').strip('\n').split('\n')
nc = netCDF4.Dataset('dust.nc', 'r+')
binf={i:1 for i in range(1,4)};binf.update({4:0.87,5:0})
it=0
for fname in fnames:
  nc_in = netCDF4.Dataset(fname, 'r')
  nt,nz,ny,nx=nc_in['DUST_1'].shape
  dust=np.zeros(shape=(nt,nz,ny,nx))
  for i in range(1,6):
    dust+=nc_in['DUST_'+str(i)][:]*binf[i]
  nc['DUST_1'][it:it+nt,:,:,:]=dust[:,:,:,:]
  it+=nt

IX,IY=335-1,212-1
nt,nz,ny,nx=nc['DUST_1'].shape
strT=[''.join([i.decode('utf-8') for i in nc.variables['Times'][t,:]]) for t in range(nt)]
Times=[datetime.datetime.strptime(a,'%Y-%m-%d_%H:00:00') for a in strT]
tflag=[i.strftime('%Y%m%d%H') for i in Times]
zs=['WRFchem']
for z in zs:
  exec(z+'=nc["DUST_1"][:,0,IY,IX]*1.1839') #dens of air https://en.wikipedia.org/wiki/Density_of_air
DD={}
for z in zs+['tflag']:
  exec('DD.update({"'+z+'":'+z+'})')
df=DataFrame(DD)
df.set_index('tflag').to_csv('ntw.csv')

nc.close()

結果檢核

  • 2018/4/5~4/7東亞沙塵暴傳播之模擬結果
  • 比較EC再分析、WRF-chem模擬以及萬里實測PM10數據(時間軸為UTC)
  • 其他再分析與觀測
    • nullschool
    • 環保署官方說明(https://airtw.epa.gov.tw/CHT/Forecast/Sand.aspx)
  • 2019/10/24~11/3東亞沙塵暴傳播之模擬結果

Reference