CAMx點源格式說明

 

背景

pt-emis.f的輸出部分內容

  • 循序輸出6筆表頭內容,此部分為常數,不隨時間改變。其後為每個時間段落的排放量數據
  • 常數部分
      OPEN(NUPTS, FILE='fortBE.14',FORM='UNFORMATTED'
     ,  ,convert='BIG_ENDIAN',STATUS='UNKNOWN')
      WRITE (NUPTS)    MPTS, MFID, NSG, NSPEC, NBD, TBEG, NED, TEND
      WRITE (NUPTS) XUTM, YUTM, NZONE, XORG, YORG, DELTAX, DELTAY,
     $         NOXG, NOYG, NOZG
     $, NVLOW, NVUP, DZSURF, DZMINL, DZMINU
      WRITE (NUPTS) 1,1,NOXG,NOYG
      WRITE (NUPTS) ((MSPEC(I,J),I=1,10),J=1,NSPEC)
      WRITE (NUPTS) NSEG, NOPTS
      WRITE (NUPTS) (X(K),Y(K),H(K),D(K),T(K),V(K),K=1,NOPTS)
  • 時間變化部分
    • 每個時間步階有3+NOSPEC筆數據
      DO 680 IT=1,24
        TB=IT-1
        TE=mod(IT,24)
        JED=NBD
        if(TE.eq.0)JED=JED+1
        WRITE ( *,* ) NBD, TB  , JED, TE
        WRITE (NUPTS) NBD, TB  , JED, TE
        WRITE (NUPTS) NSEG, NOPTS
...
        WRITE (NUPTS)(ILOC(IP,IT),IJPS(IP,IT),KPTS(IP,IT),FLOW(IP,IT),
     $    EFPLH(IP,IT), IP=1,NOPTS)
        DO 500 I=1,NSPEC
          WRITE (NUPTS) NSEG,(MSPEC(J,I),J=1,10),
     $      (QPTS(I,IP), IP=1,NOPTS)
500     CONTINUE
680   CONTINUE

uamiv與point_source格式內容之比較表(fortran)

  • CAMx的點源排放檔案格式有別於其他所有格式,除了4筆表頭內容一致外,增加了第5~6筆表頭內容,為煙囪個數及煙囪基本條件
  • 時變部分,點源排放具有很大的彈性,每個時間段落的煙囪個數可以不一樣(not tried),也可以有隨時間改變的流量與煙囪有效高度。
項目 [uamiv][uamiv] point_source 說明
表頭1檔名標籤與起迄日期時間 fname, note, NOSEG, NOSPEC,

NDATE, TTIME, NDLAST, TTLAST

(same)

前者內容為AIRQUALITY, AVERAGE, EMISSION後者為PTSOURCE
表頭2網格系統 XUTM, YUTM, NZONE,

XORG, YORG, DELTAX, DELTAY,

NOXG, NOYG, NOZ,

idproj,istag,tlat1,tlat2,rdum

(same)

 
表頭3 4個整數

(Itmp(j), J=1,4)

(same)

 
表頭4污染物名稱 ((SPNAME(I,J), I=1,10), J=1,NOSPEC)

(same)

 
表頭5 段落數及點源個數

(無)

NOSEG, NOPTS NOSEG值為1
表頭6 點源基本參數

(無)

(X(K), Y(K), H(K), D(K), T(K), V(K),K=1,NOPTS) XYHD單位為公尺、T單位K,V單位m/Hr
時變部分逐時之表頭1:啟迄日期時間

jjj,btime, jjn,etime

(same)

 
時變部分逐時之表頭2

(無)

NOSEG, NOPTS 段落數及點源個數
時變部分逐時之表頭3

(無)

(ILOC(IP,IT), IJPS(IP,IT), KPTS(IP,IT), FLOW(IP,IT), EFPLH(IP,IT), IP=1,NOPTS) 點源位置之IJK排氣量與有效高
時變部分之量場 DO L=1,NOSPEC

DO K=1,NOZ

 WRITE (12) NOSEG, (SPNAME(I,L),I=1,10), ((C(I,J,K,L),I=1,NOX),J=1,NOY)

enddo

enddo

DO 500 I=1,NSPEC

 WRITE (NUPTS) NSEG,(MSPEC(J,I),J=1,10),

 $ (QPTS(I,IP), IP=1,NOPTS)

500 CONTINUE

每筆基本單元前者為一矩陣、後者為一序列
  • Fortran程式碼比較麻煩的是必須逐一給定字串變數的長度、整數、以及實數等等定義。這一方面,最有效的方式還是必須看程式碼範例,此處就不一一列表。

uamiv與point_source格式內容之比較(python)