CMAQ2CAMx之單向轉換

 

cmaq2camx背景

  • cmaq2camx是Ramboll公司提供的套件程式,將CMAQ模式的ICON、BCON、EMIS、PTSE等重要模擬條件檔,轉到CAMx平台上,符合uamivlateral_boundarypoint_source之格式。
  • 雖然CMAQ和CAMx二者不斷在更新、化學反應機制也更新到CB6及CB7,但cmaq2camx仍然停留在2016年CB5的狀態,不論程式或反應機制對照檔,都無法套用在最新的模式,使用者需自行注意是否合用,也要對轉出的結果再三檢查。
  • 使用pseudonetcdfpncgen來產生前述CAMx所需格式檔案,是否會比較方便?經過檢討並非這麼理想,可以參考這一個比較表,轉檔的方向雖然不同,但面臨的細節問題應該是一樣。
  • BCON轉.bc的實作歷程發現
    • cmaq2camx還有一個最大的困難就是垂直層的概念差異很大,CMAQv5+不允許使用者合併WRF的垂直層,來提升高空的計算效率,但是CAMx在這方面並沒有這麼堅持。
    • 如果2者的垂直層定義不同,cmaq2camx並沒有提供調整的選項,使用者需自行調整匹配。
  • 此處詳細說明程式之下載、編譯、輸入環境變數或標準輸入的選項內容。
  • camx2cmaq詳參[[2022-07-04-camx2cmaqd4.py]]1、[[2022-07-04-emis]]2、[[2022-07-04-CAMx2IOapi]]3

    下載及編譯

  • 下載點:https://camx-wp.azurewebsites.net/getmedia/cmaq2camx.22sep16.tgz

linux編譯

  • 使用Makefile,修正程式庫位置(配合編譯器),如
IOAPI_INC  = /opt/ioapi-3.2/ioapi/fixed_src
IOAPI_LIB  = /opt/ioapi-3.2/Linux2_x86_64gfort
NETCDF_LIB = /opt/netcdf/netcdf4_gcc/lib
  • 編譯器(gfortran)
FC  = gfortran
OPT = -mcmodel=medium -O2 -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0
LIB = -L$(IOAPI_LIB) -lioapi -L$(NETCDF_LIB) -lnetcdf -lnetcdff -lgomp
INC = -I$(IOAPI_INC)

macOS

  • 以macOS之gfortran為例,Makefile如下表,重要設定說明如下:
    • IOAPI_INC  :特別連結到固定格式之包括檔(fixed_src)
    • IOAPI_LIB :按照機器及編譯器的規格設定(preset)
    • NETCDF_LIB :除了netcdf(C)之外,也需要有netcdff(FORTRAN)程式庫
    • gomp :有的gcc會需要omp程式庫(gomp)
IOAPI_INC  = /Users/IOAPI/ioapi-3.2/ioapi/fixed_src
IOAPI_LIB  = /Users/IOAPI/ioapi-3.2/OSX_x86_gfortran
NETCDF_LIB = /usr/local/NetCDF4/lib
...
FC  = gfortran
OPT = -mcmodel=medium -O2 -fno-align-commons -fconvert=big-endian -frecord-marker=4 -ffixed-line-length-0
LIB = -L$(IOAPI_LIB) -lioapi -L$(NETCDF_LIB) -lnetcdf -lnetcdff -lgomp
INC = -I$(IOAPI_INC)

執行轉檔

三支程式用途

項次 程式 處理對象 說明
1 spcmap CMAQ濃度或排放量物種對應 每一類檔案都需先執行
2 cmaq2uam CMAQ轉換到CAMx 主程式
3 ptht 點源後處理 按照逐時有效高度加入點源檔中的高度位置資訊

所有腳本內容

項次 處理對象 範本
1 轉換邊界濃度 conv_bcon.job
2 轉換排放量檔 conv_emis.job
3 轉換初始濃度(1轉2) conv_icon.job
4 轉換點源(2合1) conv_ipnt.job

環境變數(env var)與程式標準輸入(std input)

程式 env var / std input 變數/前導 內容 說明  
spcmap e INFILE CMAQ輸入檔 可以是前述4種檔案(點源為排放量檔)  
spcmap e OUTFILE spcmap輸出之暫存檔 連到以下CMAQEMIS, CMAQICON, CMAQBCON 最終會將其移除
spcmap e MAPTBL 物種對照表 下表  
cmaq2uam e CMAQEMIS 地面或點源排放量 經spcmap轉換結果,適用2者排放量檔  
cmaq2uam e CMAQICON 初始檔 經spcmap轉換結果  
cmaq2uam e CMAQBCON 邊界檔 經spcmap轉換結果  
cmaq2uam e STKGROUP 點源參數檔 CMAQ原始檔。只有點源需要  
cmaq2uam s File Type 4碼字元 BCON, ICON, EMIS, IPNT 4擇1  
cmaq2uam s OutFile1 (IC,BC,AR) 第1輸出檔 $OUTPUT_CAMx_BC  
cmaq2uam s OutFile2 (TopC,PT) 第2輸出檔 上層濃度或CAMx點源檔  
cmaq2uam s Output Timezone $OUTPUT_TIMEZONE CAMx時區8=PST, -8=TPE  
ptht s Input CAMx PT IPNT處理的第2輸出檔    
ptht s Input CAMx Z 舊版的高度壓力檔或新版的3D檔 $CAMx_HEIGHT  
ptht s Output CAMx PT 輸出CAMx點源結果檔案 $OUTPUT_CAMx_PNT  
ptht s No. of MET layers 輸出層數 $OUTPUT_N_LAYERS  

$SPECIES_MAPPING的選項

  • 這些對照表仍然停留在2016年的狀態
  • Ramboll提供了MAPTBL.sample檔案針對未知或其他反應機制,讓使用者可以自行撰寫適用的對照表。
CAMx版本 CAMx機制 CMAQ機制 排放/邊界 檔名
CAMx6.2 CB05_CF CB05_AE5 EMIS MAPTBL.CAMx6.2_CB05_CF.CMAQ_CB05_AE5_EMIS
CAMx6.2 CB05_CF CB05_AE5 ICBC MAPTBL.CAMx6.2_CB05_CF.CMAQ_CB05_AE5_ICBC
CAMx6.2 CB05_CF CB05_AE6 EMIS MAPTBL.CAMx6.2_CB05_CF.CMAQ_CB05_AE6_EMIS
CAMx6.2 CB05_CF CB05_AE6 ICBC MAPTBL.CAMx6.2_CB05_CF.CMAQ_CB05_AE6_ICBC
CAMx6.2 SAPRC99_CF SAPRC99_AE5 EMIS MAPTBL.CAMx6.2_SAPRC99_CF.CMAQ_SAPRC99_AE5_EMIS
CAMx6.2 SAPRC99_CF SAPRC99_AE5 ICBC MAPTBL.CAMx6.2_SAPRC99_CF.CMAQ_SAPRC99_AE5_ICBC
  1. https://sinotec2.github.io/FAQ/2022/07/04/camx2cmaqd4.py.html “ D4範圍地面排放檔案之轉換” 

  2. https://sinotec2.github.io/FAQ/2022/07/04/emis.html “ CMAQ/CAMx排放量檔案之轉換” 

  3. https://sinotec2.github.io/FAQ/2022/07/04/CAMx2IOapi.html “ CAMx2IOAPI檔案之轉換”