トップ > ライブラリ > 応用解析 > エマグラム応用編

応用解析:エマグラム応用編

現在工事中です。

 ここでは、エクセルによるエマグラム描画ツールを利用する上で知っておかなければならない事項を解説しています。  本ページの式番号は、エマグラム基礎編からその番号を継続して使用しています。

 エマグラム描画のための基礎式など、基本的な事項は、こちら エマグラム基礎編に解説しています。また、エマグラム描画ツールの実際の使い方は、こちら エマグラム描画ツールに解説しています。参照して下さい。

【注】数式表示にはMathJaxを利用しています。IE8以下では表示が遅くなる可能性があります。FireFox などIE8以外のブラウザを利用下さい。

湿潤断熱線の数値解法

 エマグラム基礎編で示した、湿潤断熱線の基礎式は次の(19)式で表される。 \[ \begin{align*} \frac{dT}{dP} & =\frac{\dfrac{R_dT}{C_p}+\dfrac{Lq_s}{C_p}}{P\Big(1+\dfrac{\varepsilon L^2q_s}{C_pR_dT^2}\Big)} \tag{19} \\ q_s & = \frac{\varepsilon e_s}{P-e_s} \tag{12} \\ e_s & =e_0 \exp \Big[ \frac{L}{R_v}\Big(\frac{1}{T_0}-\frac{1}{T} \Big) \Big] \tag{14} \\ \end{align*} \] 従属変数\(T\) が独立変数\(P\) の関数となっており、飽和混合比\(q_s\) はさらに飽和蒸気圧と圧力に依存し、温度・圧力の関数となっている。
 従って、(19)式右辺は\(T,P\) の非線形方程式となっており、解析的な積分はできない。

 また(19)式の分母分子をひっくり返した次式を、数値積分することにより、従属変数と独立変数を交換することもできる。 \[ \frac{dP}{dT}=\frac{P\Big(1+\dfrac{\varepsilon L^2q_s}{C_pR_dT^2}\Big)}{\dfrac{R_dT}{C_p}+\dfrac{Lq_s}{C_p}} \tag{21} \]

 (19)式の右辺を関数\(f(P,T)\)として表すと、 \[ \frac{dT}{dP}=f(P,T) \tag{22} \] となる。この式は一階の常微分方程式となっている。
 右辺の関数は非線形であり、解析的に解くことができず、数値的に解く必要がある。ここでは、左辺に前進差分を適用 する陽的オイラー法(計算精度は1次)、4次精度であるRunge-Kutta法を適用した場合の解法を簡単に紹介する。

先頭に戻る

陽的オイラー法

 エクセルのグラフで学ぶ気象学1)では、(19)式を積分するのに陽的オイラー法を採用している。
 (22)式に、差分法を適用し、陽的オイラー法(前進差分)を適用すると、 \[ \begin{align*} \frac{T^{n+1}-T^n}{\Delta P} = f(P^n,T^n) \tag{23a} \\ T^{n+1} = T^n + \Delta P f(P^n,T^n) \tag{23b} \\ \end{align*} \] が得られる。独立変数\(P\) の積分範囲を、N等分し、それぞれの格子点に番号を付す。一つの区間は\(\Delta P\)とする。 ここで上付添字 n, n+1 は分割位置を表すインデックスで、0のとき初期値となる。

 (23b)式からわかるように、右辺の\(T^n,P^n\) は既知であり、格子点の値は\(T^{n+1}\) 陽的に求められる。
 初期値から出発し、計算を繰り返すことで、積分の上限までの格子点値が求まる。

 陽的オイラー法は、\(y=f(x)\)をある点\(x=x+\Delta x\)でテイラー展開すると \[ \begin{align*} f(x+\Delta x) & =f(x)+ \frac{df}{dx}\Delta x + \frac{1}{2!}\frac{d^2f}{dx^2}\Delta x^2+ \cdots \\ & =f(x)+ \frac{df}{dx}\Delta x + O(\Delta x^2) \tag{24} \\ \end{align*} \] 2次以降の項を省略し、変形すると \[ \frac{df}{dx} = \frac{f(x+\Delta x)-f(x)}{\Delta x} + O(\Delta x) \tag{25} \] となり、分割幅に対し1次精度しかないことが分かる。

先頭に戻る

Runge-Kutta法

 陽的オイラー法と同様、解析領域をN等分し、分割幅\(\Delta P\)とすると、Runge-Kutta法では、次式を用いて となりの格子点の値を求める。 \[ \left. \begin{align*} k_1 & = \Delta P f(P^n,T^n) \\ k_2 & = \Delta P f(P^n + \frac{\Delta P}{2},T^n+\frac{k_1}{2}) \\ k_3 & = \Delta P f(P^n + \frac{\Delta P}{2},T^n+\frac{k_2}{2}) \\ k_4 & = \Delta P f(P^n + \Delta P,T^n+k_3) \\ k & = \frac{1}{6} (k_1+2k_2+2k_3+k_4) \\ T^{n+1} & =T^n+k \\ \end{align*} \right\} \tag{26} \] これら式は複雑ではあるが、計算は陽的に行えるので速く、高精度の解が得られる。

先頭に戻る

数値解法による結果

 陽的オイラー法とRunge-Kutta法による、数値積分の方法が分かったところで、これら2つの方法による 計算結果がどの程度違ってくるかを、例題1で確かめる。なお、例題1ではまず解析解との差異を、また 分割数の違いによる差異をみる。

例題1:Euler法とRunge-Kutta法による数値積分

 従属変数y は、独立変数x で次の微分方程式(27)を満足している。これを、初期値\(x=0, y=1\) で、 \(x=1\) まで数値積分し、解析解と比較せよ。
 なお数値積分は、陽的オイラー法とルンゲ-クッタ法を用いよ。 \[ \frac{dy}{dx} = xy \tag{27} \\ \rm{I.C.} \quad y=1 , @ x=0 \\ \]  なお、(27)式の解析解は、 \[ \ln y = \frac{1}{2}x^2 \tag{28} \] である。

 例題1を、Fortranベースでコードを記述する。コードをリスト1に示す。
 コードでは、初期値と積分区間とが埋め込まれているが、積分区間を等分割するときの分割数を 入力できる。分割数を入力すると、Euler法による計算結果が配列Y1に、次にRunge-Kutta法による 計算結果が配列Y2に保存される。そして、解析解が配列Yに保存され、結果を出力して終了する。
 なお、被積分関数は、FUNC( X,Y )というFUNCTIONプログラムで計算される。また、コードはすべて倍精度 で計算している。

リスト1:Euler法とRunge-Kutta法のコード

      PROGRAM      TEST05
C
C   Euler , Runge-Kuttaの比較
C
C              PROGRAMED BY Y.S
C                           2015.08.17.
C
C
      INCLUDE      'COMMON.H'
      REAL*8       X(101),Y(101),Y1(101),Y2(101)
C
      NW=6
      NR=5
      NWRT=10
      NRED=11
      NMONI=12
      WRITE(NW,'(A$)') ' INPUT MONITOR LEVEL = '
      READ(NR,*) MONI
      WRITE(NW,'(A$)') ' MONITOR FILE NAME   = '
      READ(NR,'(A)') FLNMON
      OPEN(NMONI,FILE=FLNMON,STATUS='UNKNOWN')
C
      WRITE(NW,'(A$)') ' DIVISION NO. = '
      READ(NR,*) NDIV
C
      X0=0.D0	! Initial
      Y0=1.D0
      X1=1.D0	! Final
      DX=(X1-X0)/DBLE(NDIV)
c  Euler
        Y1(1)=Y0
        X(1)=X0
        DO I=1,NDIV
          Y1(I+1)=Y1(I)+DX*FUNC( X(I),Y1(I) )
          X(I+1)=X(I)+DX
        END DO
c  Runge-Kutta
        Y2(1)=Y0
        X(1)=X0
        DO I=1,NDIV
          XK1=DX*FUNC( X(I),Y2(I) )
          XK2=DX*FUNC( X(I)+0.5D0*DX,Y2(I)+0.5D0*XK1 )
          XK3=DX*FUNC( X(I)+0.5D0*DX,Y2(I)+0.5D0*XK2 )
          XK4=DX*FUNC( X(I)+DX,Y2(I)+XK3 )
          Y2(I+1)=Y2(I)+(XK1+2.D0*XK2+2.D0*XK3+XK4)/6.D0
          X(I+1)=X(I)+DX
        END DO
c  Analytical Solution
        DO I=1,NDIV+1
          Y(I)=DEXP(0.5D0*X(I)**2)
        END DO
C
      WRITE(NMONI,'(A,5I5)') ' NDIV = ',NDIV
      WRITE(NMONI,'(A)') '   I,  X,  Y(anal)   Y(Euler)   Y(R-K)'
      DO I=1,NDIV+1
        WRITE(NMONI,'(I5,5E15.8)') I,X(I),Y(I),Y1(I),Y2(I)
      END DO
C
      CLOSE(NMONI)
   99 STOP
      END
C---------------------------------------------------------------
      REAL*8 FUNCTION FUNC( X,Y )
C
C  dy/dx=y*x
C  analytical solution   y=exp(0.5x**2) when x=0,y=1
C
      INCLUDE  'COMMON.H'
      FUNC=Y*X
      RETURN
      END

 分割数を10(格子点の数だと11)のときの計算結果の出力をリスト2に示す。

リスト2:計算結果の出力

 NDIV =    10
    I,       X,         Y(anal)         Y(Euler)    Y(R-K)
    1 0.00000000E+00 0.10000000E+01 0.10000000E+01 0.10000000E+01
    2 0.10000000E+00 0.10050125E+01 0.10000000E+01 0.10050125E+01
    3 0.20000000E+00 0.10202013E+01 0.10100000E+01 0.10202013E+01
    4 0.30000000E+00 0.10460279E+01 0.10302000E+01 0.10460279E+01
    5 0.40000000E+00 0.10832871E+01 0.10611060E+01 0.10832871E+01
    6 0.50000000E+00 0.11331485E+01 0.11035502E+01 0.11331484E+01
    7 0.60000000E+00 0.11972174E+01 0.11587278E+01 0.11972173E+01
    8 0.70000000E+00 0.12776213E+01 0.12282514E+01 0.12776213E+01
    9 0.80000000E+00 0.13771278E+01 0.13142290E+01 0.13771277E+01
   10 0.90000000E+00 0.14993025E+01 0.14193673E+01 0.14993024E+01
   11 0.10000000E+01 0.16487213E+01 0.15471104E+01 0.16487210E+01

 リスト2から解析解と数値解とを比較すると、積分が進むにつれ、Euler法の計算精度が劣っていることが理解されよう。 一方、Runge-Kutta法では、Euler法に比べ、圧倒的に精度を保持していることがわかる。
 Euler法で精度を向上するためには、分割数をもっと大きくしないといけない。

先頭に戻る

湿潤断熱線の数値積分と検証

 次に、例題2として、湿潤断熱線の式(19)を、Euler法とRunge-Kutta法によって数値積分してみる。
 数値積分の違いにより、計算結果がどの程度違いがあるのかを確認する。また、計算結果と 公表されているエマグラムに描かれている湿潤断熱線とがどの程度一致・不一致なのかを検証する。

例題2:湿潤断熱線の数値積分

 相当温位が300Kのときの湿潤断熱線のP-T曲線を、Euler法およびRunge-Kutta法で数値積分し、公知のエマグラムと比較せよ。
 ただし、圧力範囲は1000hPaから200hPaとし、分割数を20および80とする。

 湿潤断熱線では、相当温位が保存される。従って1000hPaの圧力のとき、温度300Kを通る湿潤断熱線を求めることになる。
 Fortranによる数値積分のコードをリスト3に示す。先のコードとほとんど同じであるが、被積分関数のFUNC(x,y)ルーチン と、初期値部分および出力部分が少し修正している。変数MONIは、デバッグ用で整数3以上を指定すると、各ステップをすべて出力する。

リスト3:Euler法とRunge-Kutta法による湿潤断熱線の計算コード

      PROGRAM      TEST06
C
C   Euler , Runge-Kuttaの比較  (湿潤断熱線のとき)
C
C              PROGRAMED BY Y.S
C                           2015.08.17.
C
C
      INCLUDE      'COMMON.H'
      REAL*8       X(101),Y1(101),Y2(101)
C
      NW=6
      NR=5
      NWRT=10
      NRED=11
      NMONI=12
      WRITE(NW,'(A$)') ' INPUT MONITOR LEVEL = '
      READ(NR,*) MONI
      WRITE(NW,'(A$)') ' MONITOR FILE NAME   = '
      READ(NR,'(A)') FLNMON
      OPEN(NMONI,FILE=FLNMON,STATUS='UNKNOWN')
C
      WRITE(NW,'(A$)') ' DIVISION NO. (max:100) = '
      READ(NR,*) NDIV
C
      X0=1000.D0	! Initial P [hPa]
      Y0=300.D0		! Initial T [K]
      X1=200.D0		! Upper limit P [hPa]
      DX=(X1-X0)/DBLE(NDIV)
c  Euler
        Y1(1)=Y0
        X(1)=X0
        DO I=1,NDIV
          Y1(I+1)=Y1(I)+DX*FUNC( X(I),Y1(I) )
          X(I+1)=X(I)+DX
        END DO
c  Runge-Kutta
        Y2(1)=Y0
        X(1)=X0
        DO I=1,NDIV
          XK1=DX*FUNC( X(I),Y2(I) )
          XK2=DX*FUNC( X(I)+0.5D0*DX,Y2(I)+0.5D0*XK1 )
          XK3=DX*FUNC( X(I)+0.5D0*DX,Y2(I)+0.5D0*XK2 )
          XK4=DX*FUNC( X(I)+DX,Y2(I)+XK3 )
          Y2(I+1)=Y2(I)+(XK1+2.D0*XK2+2.D0*XK3+XK4)/6.D0
          X(I+1)=X(I)+DX
        END DO
C
      NSTP=1
      IF(NDIV.GT.20) NSTP=5
      IF(MONI.GE.3) NSTP=1
      WRITE(NMONI,'(A,5I5)') ' NDIV = ',NDIV
      WRITE(NMONI,'(A,5E15.8)') ' X0,Y0 = ',X0,Y0
      WRITE(NMONI,'(A)') '   I,  P,   T(Euler),     T(R-K)'
      DO I=1,NDIV+1,NSTP
        WRITE(NMONI,'(I5,5E15.8)') I,X(I),Y1(I)-273.15D0,Y2(I)-273.15D0
      END DO
C
      CLOSE(NMONI)
   99 STOP
      END
C---------------------------------------------------------------
      REAL*8 FUNCTION FUNC( X,Y )
C
C  湿潤断熱線
C  X: [hPa],  Y: [K]
C
      INCLUDE  'COMMON.H'
      DATA     RDAIR/287.D0/	! 乾燥空気の気体定数 J/KG/K
      DATA     CPAIR/1004.D0/	! 乾燥空気の定圧比熱 J/KG/K
      DATA     XLH2O/2.500D6/	! 水の蒸発潜熱 @0degC J/KG
      DATA     RVH2O/461.7D0/	! 水蒸気の気体定数 J/KG/K
      DATA     E0H2O/6.1173D0/	! 水の三重点の飽和水蒸気圧 hPa
      DATA     T0H2O/273.16D0/	! 水の三重点 DEGC
      DATA     EPS/0.62185D0/	! Mw(H2O)/Mw(Air)=18.015/28.97
C
      ES=E0H2O*DEXP(XLH2O/RVH2O*(1.D0/T0H2O-1.D0/Y))	! 飽和蒸気圧 hPa
      QS=EPS*ES/(X-ES)		! 飽和混合比 kg-H2O/kg-dry air
      A=RDAIR*Y/CPAIR+XLH2O*QS/CPAIR	! 分子
      B=X*(1.D0+EPS*XLH2O**2*QS/(CPAIR*RDAIR*Y**2))	! 分母
      FUNC=A/B
      RETURN
      END

 分割数が20のときの計算結果をリスト4に示す。
 また、分割数が80のときの計算結果をリスト5に示す。

リスト4:分割数20のときの出力

 NDIV =    20
 X0,Y0 =  0.10000000E+04 0.30000000E+03
   I,  P,   T(Euler),     T(R-K)
    1 0.10000000E+04 0.26850000E+02 0.26850000E+02
    2 0.96000000E+03 0.25568640E+02 0.25538731E+02
    3 0.92000000E+03 0.24227141E+02 0.24163555E+02
    4 0.88000000E+03 0.22819318E+02 0.22717590E+02
    5 0.84000000E+03 0.21337982E+02 0.21192776E+02
    6 0.80000000E+03 0.19774709E+02 0.19579583E+02
    7 0.76000000E+03 0.18119545E+02 0.17866643E+02
    8 0.72000000E+03 0.16360611E+02 0.16040246E+02
    9 0.68000000E+03 0.14483589E+02 0.14083657E+02
   10 0.64000000E+03 0.12471016E+02 0.11976181E+02
   11 0.60000000E+03 0.10301312E+02 0.96918303E+01
   12 0.56000000E+03 0.79474158E+01 0.71974245E+01
   13 0.52000000E+03 0.53748357E+01 0.44497839E+01
   14 0.48000000E+03 0.25387817E+01 0.13915151E+01
   15 0.44000000E+03-0.62012993E+00-0.20554648E+01
   16 0.40000000E+03-0.41824821E+01-0.60000419E+01
   17 0.36000000E+03-0.82604463E+01-0.10597743E+02
   18 0.32000000E+03-0.13014418E+02-0.16074744E+02
   19 0.28000000E+03-0.18679762E+02-0.22759922E+02
   20 0.24000000E+03-0.25608520E+02-0.31111461E+02
   21 0.20000000E+03-0.34327371E+02-0.41694993E+02

 Euler法とRunge-Kutta法の値の違いが次第に拡大している。

リスト5:分割数80のときの出力

 NDIV =    80
 X0,Y0 =  0.10000000E+04 0.30000000E+03
   I,  P,   T(Euler),     T(R-K)
    1 0.10000000E+04 0.26850000E+02 0.26850000E+02
    6 0.95000000E+03 0.25210862E+02 0.25201179E+02
   11 0.90000000E+03 0.23470857E+02 0.23449894E+02
   16 0.85000000E+03 0.21616095E+02 0.21581865E+02
   21 0.80000000E+03 0.19629600E+02 0.19579583E+02
   26 0.75000000E+03 0.17490317E+02 0.17421277E+02
   31 0.70000000E+03 0.15171722E+02 0.15079414E+02
   36 0.65000000E+03 0.12639774E+02 0.12518512E+02
   41 0.60000000E+03 0.98498500E+01 0.96918320E+01
   46 0.55000000E+03 0.67420094E+01 0.65362168E+01
   51 0.50000000E+03 0.32334093E+01 0.29637810E+01
   56 0.45000000E+03-0.79425019E+00-0.11519675E+01
   61 0.40000000E+03-0.55162489E+01-0.60000335E+01
   66 0.35000000E+03-0.11202619E+02-0.11873728E+02
   71 0.30000000E+03-0.18283640E+02-0.19240861E+02
   76 0.25000000E+03-0.27449872E+02-0.28837697E+02
   81 0.20000000E+03-0.39735953E+02-0.41695450E+02

 Euler法とRunge-Kutta法の値の違いが次第に拡大しているが、分割数が大きい分その差は小さくなっている。
 分割数20と80のときの数値積分結果を、MS-Excelに読み込み、エクセルのグラフで湿潤断熱線を描いてみた。 その結果を図1に示す。
 分割数20のときの断熱線を実線で、分割数80のときの断熱線を破線で描いている。Euler法の積分を 青色、Runge-Kutta法の積分を赤色で示した。断熱線は圧力範囲1000hPaから200hPaの範囲で描いている。
 Runge-Kutta法の場合には、分割数20と80とはほとんど重なってしまっている。Euler法の場合には分割数が多くなるほど、 Runge-Kutta法に近づいていることがわかる。

図1:公知のエマグラムと比較(クリック:拡大)

 なお、図1のエクセルシートには、背景に、薄い緑色と茶色の線の、公知のエマグラム(圧力範囲1050hPaから300hPa)3)が張り付けてあって、 エクセルで描いた、前面のグラフと重なるようにグラフの位置・サイズを調整してある。
 図1では、公知のエマグラムの300Kの湿潤断熱線がはっきり確認できないので、部分的に250%に拡大した図2を、以下掲載した。

図2:300K断熱線と比較(クリック:拡大)

 図2には、左上から右下へ茶色のほぼ直線が、キャプション270、280、290、300と右方向に並んでいる。 これが湿潤断熱線であって、ほぼ300Kの茶色の線が、エクセルで描いたグラフの赤線(Runge-Kutta法による積分)と 重なっていることがわかる。
 公知のエマグラムと比較した結果、Runge-Kutta法による数値積分を採用することで、分割数20程度で精度の良い数値積分結果 が得られ、既存のエマグラムと同等の湿潤断熱線を描くことができることがわかる。

先頭に戻る

高層気象観測データについて

 ワイオミング大のサイト4)から、基礎編で簡単に記述したように、日本および海外の高層気象観測データをテキスト表示 あるいはエマグラムによる図表示をさせることが可能である。
 ここでは、高層気象観測データをワイオミング大のサイトから、テキスト形式で表示させ、表示されたページをダウンロードし、MS-Excelに撮り込むまでの方法について述べる。

気象観測データ

 高層気象観測データをテキスト形式(Type of plotのところを、"Text:List"を選択)し、日時と地点番号を選択すると、 観測データがWebブラウザ上に表示される。
 表示されたテキストを、htmlファイルとして保存する。保存したhtmlファイルの例をリスト6に示す。
(注:一旦、htmlファイルとして保存しなくても、ブラウザに表示される数値をマウスで選択し、コピーし、これをMS-Excelのワークシート上で 形式を選択してペーストすれば、数値をエクセルに取り込むことができる)

リスト6:テキスト保存された観測データの例
<HTML>
<TITLE>University of Wyoming - Radiosonde Data</TITLE>
<LINK REL="StyleSheet" HREF="/resources/select.css" TYPE="text/css">
<BODY BGCOLOR="white">
<H2>47646  Tateno Observations at 00Z 05 Jul 2015</H2>
<PRE>
-----------------------------------------------------------------------------
   PRES   HGHT   TEMP   DWPT   RELH   MIXR   DRCT   SKNT   THTA   THTE   THTV
    hPa     m      C      C      %    g/kg    deg   knot     K      K      K 
-----------------------------------------------------------------------------
 1008.0     31   19.8   19.5     98  14.37    100      2  292.3  333.1  294.8
 1000.0     96   18.8   17.6     93  12.82     80      6  291.9  328.4  294.2
  939.0    634   16.5   14.1     85  10.84     35     12  294.9  326.3  296.9
  937.0    653   16.5   13.9     85  10.78     35     12  295.1  326.2  297.0
  933.0    689   16.3   13.7     84  10.66     35     12  295.2  326.1  297.1
  932.0    699   16.3   13.6     84  10.63     35     12  295.3  326.1  297.2
  930.0    717   16.2   13.5     84  10.56     35     12  295.4  326.0  297.3
  925.0    763   16.0   13.2     83  10.41     30     10  295.7  325.9  297.5
  904.0    957   15.0   12.6     86  10.26     20     10  296.6  326.4  298.4
  871.0   1271   13.3   11.7     90  10.01    340      8  298.0  327.4  299.8
  850.0   1477   12.2   11.1     93   9.85    305     10  298.9  327.9  300.7
  796.0   2026    9.6    8.4     92   8.76    259     19  301.8  328.0  303.4
  787.0   2121    9.4    8.3     93   8.80    251     20  302.6  329.0  304.2
  763.0   2378    9.8    9.2     96   9.66    230     24  305.7  335.0  307.5
  758.0   2433    9.5    8.9     96   9.54    225     25  306.0  335.0  307.7
  700.0   3092    6.4    5.6     95   8.21    240     29  309.5  335.0  311.1
  579.0   4608   -0.8   -1.4     95   6.00    265     45  318.4  337.9  319.6
  500.0   5780   -6.3   -6.8     96   4.62    230     51  325.3  340.9  326.2
  473.0   6209   -8.6   -9.1     96   4.08    220     52  327.7  341.6  328.5
  472.0   6226   -8.7   -9.2     96   4.06    220     52  327.8  341.7  328.6
  470.0   6259   -8.8   -9.4     96   4.02    220     52  328.0  341.7  328.8
  469.0   6275   -8.9   -9.5     96   4.00    220     52  328.1  341.8  328.9
  466.0   6325   -9.2   -9.8     96   3.94    220     52  328.3  341.9  329.1
  465.0   6341   -9.3   -9.8     96   3.92    220     52  328.4  341.9  329.2
  417.0   7184  -13.7  -14.4     94   3.02    227     51  333.1  343.8  333.7
  400.0   7500  -15.9  -16.5     95   2.65    230     51  334.2  343.7  334.8
  300.0   9610  -29.7  -32.2     79   0.86    235     68  343.4  346.8  343.6
  278.0  10141  -33.4  -36.3     75   0.62    240     74  345.7  348.2  345.8
  250.0  10880  -38.5  -42.0     69   0.38    245     82  348.7  350.3  348.8
  243.0  11076  -40.1  -43.2     72   0.35    246     83  349.1  350.6  349.2
  200.0  12380  -51.9                         250     86  350.4         350.4
  161.0  13730  -63.8                         255     95  352.8         352.8
  157.0  13886  -65.2                         260     95  352.9         352.9
  156.0  13926  -65.5                         260     95  353.0         353.0
  150.0  14170  -67.7                         260     87  353.3         353.3
  149.0  14210  -67.5                         260     87  354.3         354.3
  133.0  14894  -66.7                         265     72  367.4         367.4
  125.0  15267  -66.3                         253     66  374.7         374.7
  117.0  15662  -68.9                         240     60  377.1         377.1
  111.0  15976  -70.9                         248     56  379.0         379.0
  100.0  16600  -65.9                         265     47  400.1         400.1
   70.0  18790  -60.7                           0      0  454.2         454.2
   50.0  20890  -59.1                         325      4  503.8         503.8
   30.0  24150  -50.9                          90     29  605.3         605.3
   20.0  26820  -46.3                          80     21  693.7         693.7
</PRE><H3>Station information and sounding indices</H3><PRE>
                             Station number: 47646
                           Observation time: 150705/0000
                           Station latitude: 36.05
                          Station longitude: 140.13
                          Station elevation: 31.0
                            Showalter index: 6.02
                               Lifted index: 6.07
    LIFT computed using virtual temperature: 6.35
                                SWEAT index: 204.20
                                    K index: 28.80
                         Cross totals index: 17.40
                      Vertical totals index: 18.50
                        Totals totals index: 35.90
      Convective Available Potential Energy: 0.00
             CAPE using virtual temperature: 0.00
                      Convective Inhibition: 0.00
             CINS using virtual temperature: 0.00
                     Bulk Richardson Number: 0.00
          Bulk Richardson Number using CAPV: 0.00
  Temp [K] of the Lifted Condensation Level: 289.27
Pres [hPa] of the Lifted Condensation Level: 956.35
     Mean mixed layer potential temperature: 293.01
              Mean mixed layer mixing ratio: 12.23
              1000 hPa to 500 hPa thickness: 5684.00
Precipitable water [mm] for entire sounding: 50.56
</PRE>
<P>Description of the 
<A HREF="/upperair/columns.html">data columns</A>
or <A HREF="/upperair/indices.html">sounding indices</A>.

<P>
<FORM>
<INPUT CLASS="button" TYPE="button" VALUE=" Close this window " 
 onClick="window.close();">
<INPUT CLASS="button" TYPE="button" VALUE=" Select another map " 
 onClick="window.blur();">
</FORM>
<HR SIZE="1">
<I>Interested in graduate studies in atmospheric science?
Check out our program at the
<a href="http://www.uwyo.edu/atsc/howtoapply/"
target=_top>University of Wyoming
</a></I>
<HR SIZE="1"><FONT SIZE="-1">
Questions about the weather data provided by this site can be
addressed to <A HREF="mailto:ldoolman@uwyo.edu">
Larry Oolman (ldoolman@uwyo.edu)</A></FONT>
<HR SIZE="1">
<SCRIPT TYPE="text/javascript">
<!--
window.focus();
// -->
</SCRIPT>
</BODY>
</HTML>

 現時点(2015年8月)では、圧力を含め11個の観測データが横方向に並び、下方向には測定高度毎に同じ11個のデータが表形式に羅列・表示されている。
 そして、中段には観測点の情報と指標が、1行1項目で、25項目が記述されている。
 これらの数値情報は固定フォーマットで、スペースで区切られている。
 ワイオミング大のエマグラム出力の中の観測点情報と指標については、その記号の説明の日本語版は、ここにあります。なお、ワイオミング大のサイト にある、観測データの解説をリスト7に、観測地点の変数と指標の解説をリスト8に示します。

リスト7:観測データの解説
Description of Sounding Columns
Parameter 	Description 	Units
PRES: 	Atmospheric Pressure 	[hPa]
HGHT: 	Geopotential Height 	[meter]
TEMP: 	Temperature 	[celsius]
DWPT: 	Dewpoint Temperature 	[celsius]
RELH: 	Relative Humidity 	[%]
MIXR: 	Mixing Ratio 	[gram/kilogram]
DRCT: 	Wind Direction 	[degrees true]
SKNT: 	Wind Speed 	[knot]
THTA: 	Potential Temperature 	[kelvin]
THTE: 	Equivalent Potential Temperature 	[kelvin]
THTV: 	Virtual Potential Temperature 	[kelvin]

 高層気象観測データでエマグラム出力に利用するのは、気温(TEMP)と露点温度(DWPT)の鉛直分布を読み取って、 状態曲線を描くのに利用します。また風向・風速も鉛直方向の風の分布を描くときに利用します。 これら以外のデータは、温位、相当温位、仮温位の鉛直分布が、ときどき予報士試験でも出ますが、頻度はそれほど多くありません。

先頭に戻る

変数と指標データ

 当面はShowalter Stability Index(SSI)の計算を、エマグラム描画ツールで行う。その結果を検証する意味で、ワイオミング大学が 求めたSSI値と比較する。
 ワイオミング大学の観測地点の指標には、CAPE(Convective Available Potential Energy)やCIN(Convective Inhibition)の値の欄があるが、 これらの定義にしたがって、エクセルの描画ツールを使って、これら値を求めることも将来的には可能と思われるが、現時点では組み込んでいない。

リスト8:観測地点の変数と指標の解説
Sounding Station Parameters and Indices
SLAT	Station latitude in degrees
SLON	Station longitude in degrees; West longitude is negative
SELV	Station elevation in meters
SHOW	Showalter index
	SHOW	= T500 - Tparcel
		T500	= Temperature in Celsius at 500 mb
		Tparcel	= Temperature in Celsius at 500 mb of a parcel lifted from 850 mb
LIFT	Lifted index
	LIFT	= T500 - Tparcel
		T500	= temperature in Celsius of the environment at 500 mb
		Tparcel	= 500 mb temperature in Celsius of a lifted parcel with the average pressure, temperature, and dewpoint of the layer 500 m above the surface
LFTV	LIFT computed by using virtual temperature.
SWET	SWEAT index
	SWET	= 12 * TD850 + 20 * TERM2 + 2 * SKT850 + SKT500 + SHEAR
		TD850 	= Dewpoint in Celsius at 850 mb
		TERM2 	= MAX ( TOTL - 49, 0 )
		TOTL 	= Total totals index
		SKT850	= 850 mb wind speed in knots
		SKT500	= 500 mb wind speed in knots
		SHEAR 	= 125 * [ SIN ( DIR500 - DIR850 ) + .2 ]
		DIR500	= 500 mb wind direction
		DIR850	= 850 mb wind direction
KINX	K index
	KINX	= ( T850 - T500 ) + TD850 - ( T700 - TD700 )
		T850 	= Temperature in Celsius at 850 mb
		T500 	= Temperature in Celsius at 500 mb
		TD850 	= Dewpoint in Celsius at 850 mb
		T700 	= Temperature in Celsius at 700 mb
		TD700 	= Dewpoint in Celsius at 700 mb
CTOT	Cross Totals index
	CTOT	= TD850 - T500
		TD850 	= Dewpoint in Celsius at 850 mb
		T500 	= Temperature in Celsius at 500 mb
VTOT	Vertical Totals index
	VTOT	= T850 - T500
		T850	= Temperature in Celsius at 850 mb
		T500	= Temperature in Celsius at 500 mb
TTOT	Total Totals index
	TOTL	= ( T850 - T500 ) + ( TD850 - T500 )
		T850 	= Temperature in Celsius at 850 mb
		TD850	= Dewpoint in Celsius at 850 mb
		T500 	= Temperature in Celsius at 500 mb
CAPE	Convective Available Potential Energy (J/kg)
	CAPE	= GRAVTY * SUMP ( DELZ * ( TP - TE ) / TE )
		SUMP	= sum over sounding layers from LFCT to EQLV for which ( TP - TE ) is greater than zero
		DELZ	= incremental depth
		TP 	= temperature of a parcel from the lowest 500 m of the atmosphere, raised dry adiabatically to the LCL and moist adiabatically thereafter
		TE 	= temperature of the environment
CAPV	CAPE computed by using the virtual temperature.
	CAPV	= GRAVTY * SUMP ( DELZ * ( TVP - TVE ) / TVE )
		SUMP	= sum over sounding layers from LFCV to EQTV for which ( TVP - TVE ) is greater than zero
		DELZ	= incremental depth
		TVP 	= virtual temperature of a parcel from the lowest 500 m of the atmosphere, raised dry adiabatically to the LCL and moist adiabatically thereafter
		TVE 	= virtual temperature of the environment
CINS	Convective Inhibition (J/kg)
	CINS	= GRAVTY * SUMN ( DELZ * ( TP - TE ) / TE )
		SUMN	= sum over sounding layers from top of the mixed layer to LFCT for which ( TP - TE ) is less than zero.
		DELZ	= incremental depth
		TP 	= temperature of a parcel from the lowest 500 m of the atmosphere, raised dry adiabatically to the LCL and moist adiabatically thereafter
		TE 	= temperature of the environment
CINV	CINS computed by using the virtual temperature.
	CINV	= GRAVTY * SUMN ( DELZ * ( TVP - TVE ) / TVE )
		SUMN	= sum over sounding layers from top of the mixed layer to LFCV for which ( TVP - TVE ) is less than zero.
		DELZ	= incremental depth
		TVP 	= virtual temperature of a parcel from the lowest 500 m of the atmosphere, raised dry adiabatically to the LCL and moist adiabatically thereafter
		TVE 	= virtual temperature of the environment
EQLV	Equilibrium level (hPa)
	EQLV	= level at which a parcel from the lowest 500 m of the atmosphere is raised dry adiabatically to the LCL and moist adiabatically to a level above which the temperature of the parcel is the same as the environment. If more than one Equilibrium Level exists, the highest one is chosen.
EQTV	EQLV computed by using the virtual temperature.
LFCT	Level of Free Convection (hPa) by comparing temperature between a parcel and the environment
	LFCT	= level at which a parcel from the lowest 500 m of the atmosphere is raised dry adiabatically to LCL and moist adiabatically to the level above which the parcel is positively buoyant. If more than one LFCT exists, the lowest level is chosen. If the parcel is positively bouyant throughout the sounding, the LFCT is set to be the same as the LCLP.
LFCV	LFCT computed by using the virtual temperature.
BRCH	Bulk Richardson number
	BRCH	= CAPE / ( 0.5 * U**2 )
		CAPE 	= Convective Available Potential Energy
		U 	= magnitude of shear ( u2 - u1, v2 - v1 )
		u1,v1	= average u,v in the lowest 500 m
		u2,v2	= average u,v in the lowest 6000 m
BRCV	BRCH computed by using CAPV
	BRCV	= CAPV / ( 0.5 * U**2 )
		CAPV 	= CAPE computed by using the virtual temperature.
		U 	= magnitude of shear ( u2 - u1, v2 - v1 )
		u1,v1	= average u,v in the lowest 500 m
		u2,v2	= average u,v in the lowest 6000 m
LCLT	Temperature (K) at the LCL, the lifting condensation level, from an average of the lowest 500 meters.
	LCLT	= [1 / ( 1 / ( DWPK - 56 ) + LN ( TMPK / DWPK ) / 800 )] + 56
LCLP	Pressure (hPa) at the LCL, the lifting condensation level, from an average of the lowest 500 meters.
	LCLP	= PRES * ( LCLT / ( TMPC + 273.15 ) ) ** ( 1 / KAPPA )
		Poisson's equation
MLTH	Mean mixed layer THTA (K)
	MLTH	= average THTA in the lowest 500 m
MLMR	Mean mixed layer MIXR (g/kg)
	MLMR	= average MIXR in the lowest 500 m
THTK	1000 mb to 500 mb thickness (meter)
	THTK	= ( Z500 - Z1000 )
		Z500 	= Height of the 500 mb surface
		Z1000	= Height of the 1000 mb surface
PWAT	Precipitable water (mm) for the entire sounding. 

 各種変数と指標の解説がリストアップされています。このうち、馴染みの深いのはショワルター(SHOW)指数(Showalter Index) で、今回開発したエクセルの描画ツールでも計算することができます。計算結果を、ワイオミング大の出力値と比較して大きな違いがないことを 確認しています。

先頭に戻る

MS-Excelへの取り込み

 リスト6に示したテキストの表形式の高層気象観測データの必要な部分を、テキストエディタで開いて、コピーして、 MS-Excelのワークシートにペーストします。横一行のデータ列は、エクセルの一つのセルにコピーされる。 一つのセルの文字列を、複数のセルに分割し、エクセル上で表形式に変換します。メニューの「データ」-「区切り位置」を選択し、 ウィザードに従って操作すれば、複数セルに11個の数値を分割することができます。
 高層気象観測データでは、高度の高いところの露点温度、相対湿度など測定しておらず、ブランクとなっている部分もありますが、 ブランク部分を含めて、エクセルの表としてワークシートに保存します。

 あとで紹介するエマグラム描画ツールでは、11項目の表形式のデータと、観測地点の変数と指標のデータを必要とします。従って、 エマグラム描画ツールを利用するとき、ほとんどすべての高層気象観測データをコピー・ペーストし、エクセルのセルに配置する必要があります。

先頭に戻る

描画ツールの検証

 エクセルによるエマグラム描画ツールの使い方は、こちら エマグラム描画ツール に記述していますが、 ツールを用いて描いたエマグラム自体の検証を、以下にまとめた。
 湿潤断熱線については、上述したので、簡単に述べる。
 ただし、特定地点に係わる状態曲線については検証するまでもなく、直接、エマグラムと観測データ とを比較されたい。

乾燥断熱線

図3:乾燥断熱線の比較(クリック:拡大)

 乾燥断熱線は、エマグラム基礎編でも述べたように、温位(圧力1000 hPaのときの温度) が一定の線である。エクセル描画ツールで使用している定数、式を用いて、乾燥断熱線を温位260Kから360Kまで20K毎に計算し、エクセルに取り込んでグラフ化し、既知のエマグラム5)と比較した。

 比較の結果を、図3に示す。また200%に拡大した図を図4に示す。これら図はいずれも図をマウスクリックすることで、拡大表示することができる。
 ツールで利用している計算式で計算した結果をグラフの赤い実線で示す。エクセルのグラフ描画範囲は横軸は-80℃から40℃まで、 縦軸は1000hPaから100hPaまでを描画範囲としている。

図4:乾燥断熱線の比較 200%拡大(クリック:拡大)

 エクセル・グラフの背景には、既知のエマグラム(黒い線群)を配置しており、エクセルのグラフのサイズを変更し、 背景のグラフの温度・圧力が一致するように調整した。
 図3および拡大した図4から、既知のエマグラムの乾燥断熱線360Kをはじめとし、260Kの線まで、 計算した温度範囲内において、ほとんど赤い線と重なっており、計算はほぼ正しいことが分かる。
 

先頭に戻る

湿潤断熱線

図5:湿潤断熱線の比較(クリック:拡大)

 湿潤断熱線を表す微分方程式を、4次精度のRunge-Kutta法で解いたときの比較は上述した。 ここでは、相当温位を種々変えて、湿潤断熱線を描き、既知のエマグラム5)に記載されている湿潤断熱線 と比較した。

 湿潤断熱線として、相当温位を260Kから310Kまで10K毎にRunge-Kutta法で計算し、結果をエクセルに取り込み、グラフ化した。
 計算結果と、既知のエマグラムとの比較を、図5およびこれを拡大した図6に示す。

図6:湿潤断熱線の比較 200%拡大(クリック:拡大)

 ツールで計算した結果を赤い線群で示している。比較・検証と元となるエマグラムを背景に置き、エクセルのグラフ側のサイズを変えて、 温度・圧力が一致するよう調整した。

 図5および図6から、ツールで計算した湿潤断熱線は相当温位が低い260K付近ではほぼ一致している。しかし、温位が高くなるほど ツールによる計算結果と既知のエマグラムの断熱線とが少しずれていて、一致が良くない。
 この不一致の要因として、上述したように、既知のエマグラムがどの数値積分法を採用しているのか不明だが、 数値積分法の違い、ステップ幅(分割数)の違いが原因と思われる。

先頭に戻る

等飽和混合比線

図7:飽和混合比線の比較(クリック:拡大)

 飽和混合比の計算は、エマグラム基礎編の式(20)から分かるように、飽和蒸気圧を必要とする。 飽和蒸気圧は温度のみの関数であり、Clausius-Clapeyronの式以外にも、Goff and Gratchの式1)、Magnus-Tetenseの式1)がある。

 Goff and Gratchの式による、水および氷に対する飽和蒸気圧 \(e_w,e_i\) [hPa]はそれぞれ、温度\(T\) [K]に対して次の式(29)で計算される。
Goff and Gratchの式は精度が高い1)とされているが、複雑である。しかしながら、一度コーディングをしてしまえば、単純計算であり、計算機負荷もそれほど必要としない。 \[ \left\{ \eqalign{ \begin{align} \log_{10}e_w & = -7.90298\big(\frac{373.16}{T}-1\big) +5.02808 \log_{10}\big(\frac{373.16}{T}\big) \\ & -1.3816 \times 10^{-7}\big(10^{11.344(1-\frac{T}{373.16})}-1\big) \\ & -8.1328 \times 10^{-3}\big(10^{-3.49149(\frac{T}{373.16}-1)}-1\big) +\log_{10}1013.246 \\ \log_{10}e_i & = -9.09718\big(\frac{273.16}{T}-1\big) -3.56654 \log_{10}\big(\frac{273.16}{T}\big) \\ & +0.876793\big(1-\frac{T}{273.16}\big)+\log_{10}6.1071 \\ \end{align} } \right. \tag{29} \]

 式の形がGoff and Gratchの式より簡単で、精度が高い実験式として、Magnus-Tetenseの式があり、飽和蒸気圧 \(e_w,e_i\) [hPa]の推算式を式(30)に示す。 \[ \left\{ \eqalign{ \begin{align} e_w & =6.1078 \exp\big(17.269388\frac{T-273.16}{T-35.86}\big) \\ e_i & =6.1078 \exp\big(21.8745584\frac{T-273.16}{T-7.66}\big) \\ \end{align} } \right. \tag{30} \]

図8:飽和混合比線の比較 200%拡大(クリック:拡大)

 これら式の違いによる、飽和混合比線の計算を行い、エクセルに結果を取り込み、比較した。結果を図7に、部分的に拡大した結果を図8に示す。
 図7には、混合比 0.1、0.4、1、4、10、25 [g/kg]の6本の飽和混合比線を計算している。計算した圧力範囲は、 1000hPaから200hPaまでを計算している。図中の赤い実線はClausius-Clapeyron式による計算結果を示している。
 背景の黒で描かれたエマグラムは既知のエマグラム5)であり、1000から600hPaの範囲で飽和混合比線が描かれている。計算結果と比較するため、 エクセルのグラフの縦横の軸を微調整し、重なるようにした。

 図7および図8から、Clausius-Clapeyron式(以下C&C式とす)の結果(赤実線)の0.1、0.4および25 g/kgの線が、既知の線と多少ずれているが、中間の 混合比での一致は良い。

 一方、Goff and Gratch式(以下G&G式とす)およびMagnus-Tetense式(以下M&T式とす)を用い、混合比 0.1g/kgのときの計算を 行い、エクセルに取り込み、グラフ化した。図7および図8に、G&G式の結果を青破線で、M&T式の結果を緑破線でプロットした。
 図8の拡大図で見ると明らかなように、G&G式の青破線が背景の黒実線とほぼ重なっていることが分かる。 また緑破線も黒実線に近く、C&C式の赤実線が一番離れていて精度が悪そうなことが分かる。

先頭に戻る

エマグラムの全体比較

図9:エマグラム全体の比較(クリック:拡大)

 エクセルの描画ツールを検証する最後に、エマグラム全体をツールを用いて描き、これを既存のエマグラムと比較した。既存のエマグラムとして、 平成15年度第2回目の予報士試験の実技問題として出題された図6)を選んだ。試験問題のエマグラムであり、どういう手順で描かれたものか 内容は不明であるが、これを比較・検証のために利用した。

 比較の結果を図9に示した。図の赤実線は乾燥断熱線、青実線は湿潤断熱線(Runge-Kutta法による積分)、ピンクの実線は飽和混合比線(Clausius-Clapeyron式使用)であり、 エクセルの描画ツールを用いて描いている。一方、背景の黒で描いたエマグラムは既知のエマグラムであり、縦軸および横軸の圧力範囲、温度範囲が一致するようエクセルのグラフの サイズを微調整した。

 図9から、乾燥断熱線は描画範囲内ではほぼ一致している。
 湿潤断熱線は、描画範囲内では多少ずれが見られる。しかし、全体の傾き、傾向はほぼ一致しているといえる。詳細に、例えば温位290Kの線を見ると、1000hPaで乾燥断熱線と湿潤断熱線とが交わるが、 既知のエマグラムを見ると990hPaで交差しており、既知エマグラムの湿潤温位290Kのキャプションは怪しい。ほかの温位も990hPaのあたりで交差していて、厳密性に欠ける。
 一方、飽和混合比線も混合比が高いものほどずれが大きくなっているが、傾きなどは良く一致している。採用する飽和蒸気圧の式の違いが影響しているものと思われる。

先頭に戻る

SSIの計算結果の検証

図10:館野のSSIの計算結果(クリック:拡大)

 エクセル描画ツールでは、エマグラムの状態曲線を用いて、SSI(Showalter Stability Index)を計算し、その補助線を描く機能が備わっています。
 状態曲線を入力し、計算結果を比較した例を以下に示す。

 先のリスト6で示す気象観測データを用い、エクセル描画ツールで、SSI計算の補助線を描画した例を図10に示す。
 図の上のタイトル"Tateno, Station No. ・・・"の次の行に、描画ツールで計算したSSI値 "6.04 degC"と表示している。また、エマグラム上に シアン色(水色)でSSIを計算したときの補助線を描画している。このサンプルではSSIの補助線がどのように描かれているかが明瞭ではない。
 一方、Wyoming大学によるSSIの計算値が、リスト6の下半分に、"Showalter index:6.02"と表示されている。
 以上のことから、エクセル描画ツールを用いたSSIの値がWyoming大学のそれとほとんど一致いていることが分かる。

図11:SSIの補助線の例(クリック:拡大)

 SSIの補助線の描画は、850hPaの気温と露点温度から、相当する乾燥断熱線と等混合比線との交点(LCL:Lower Condensation Level)を求め、 そこから湿潤断熱線に沿って気塊を500hPaまで断熱上昇させたときの気温を求める。SSIは実際の気温とこの気温との差である。エクセル描画ツールで SSI補助線の描画選択フラグをTrueに設定すると、850hPaから500hPaの間のこれら線が描かれる。

 補助線の例を図11に示す。補助線をシアン色で描画していて、LCL点が図10に比べ明瞭である。

 エクセルを用いたエマグラム描画ツールの使用方法については、エマグラム描画ツールを参照されたい。

先頭に戻る

Literature Cited

 本ページを記述するに当たり、以下のサイト、図書・文献を利用しました。

 また、関連ファイルのダウンロードは、こちら(未リンク)で取り扱っています。

先頭に戻る