見出し画像

MetPyでK-indexを計算する

はじめに

最近noteへの投稿が約2ヶ月滞っていたのだが、天気図ネタは昨年末以来になる。いろいろと訳あってあまり時間がなかった。

久しぶりにMetPyのHPを見てみるとVer.1.2がリリースされていた。リリースノートを見てみると先頭にK-indexの計算をサポートしたと記載されている。それならばちょっと試してみようかと。そう思っていたらVer.1.3がリリースされたので今回はVer.1.3を使う。

K-indexとは

K-indexはあまり知られていない指数かもしれないが、SSIと同じで大気の不安定さを表し、この指数によって発雷の可能性を評価するのに使われる。

K-indexの計算は難しくはない。

$$
K_{index}=\left(T_{850}-T_{500}\right)+T_{d850}-\left(T_{700}-T_{d700}\right)
$$

Tは各気圧面における温度をTdは各気圧面における露点温度を示す。

K-indexは20以下では発雷の可能性はなく、40以上ではほぼ発雷すると書いてあったりするが、サイトによって多少数値が異なる。

K-indexを計算する

これまでもGSMを使ってK-indexの天気図(予想図)を作っていた。

K-index天気図(予想図)

ただ、この天気図のコードをMetPyのK-index APIを使ってコードを置き換えようとすると結構面倒なことになることが予想された。

そこで以前SSIの計算を紹介した時と同様に1地点のK-indexを求めることにする。

今回もGitHubで公開されているMetPyのテストコードを示す。このコードを参照すれば、使い方は分かるだろう。詳細はMetPyのAPI Referenceを参照して欲しい。

(GitHubのMetPyのテストコードより抜粋)

def test_k_index():
    """Test the K Index calculation."""
    pressure = np.array([1014., 1000., 997., 981.2, 947.4, 925., 914.9, 911.,
                         902., 883., 850., 822.3, 816., 807., 793.2, 770.,
                         765.1, 753., 737.5, 737., 713., 700., 688., 685.,
                         680., 666., 659.8, 653., 643., 634., 615., 611.8,
                         566.2, 516., 500., 487., 484.2, 481., 475., 460.,
                         400.]) * units.hPa
    temperature = np.array([24.2, 24.2, 24., 23.1, 21., 19.6, 18.7, 18.4,
                            19.2, 19.4, 17.2, 15.3, 14.8, 14.4, 13.4, 11.6,
                            11.1, 10., 8.8, 8.8, 8.2, 7., 5.6, 5.6,
                            5.6, 4.4, 3.8, 3.2, 3., 3.2, 1.8, 1.5,
                            -3.4, -9.3, -11.3, -13.1, -13.1, -13.1, -13.7, -15.1,
                            -23.5]) * units.degC
    dewpoint = np.array([23.2, 23.1, 22.8, 22., 20.2, 19., 17.6, 17.,
                         16.8, 15.5, 14., 11.7, 11.2, 8.4, 7., 4.6,
                         5., 6., 4.2, 4.1, -1.8, -2., -1.4, -0.4,
                         -3.4, -5.6, -4.3, -2.8, -7., -25.8, -31.2, -31.4,
                         -34.1, -37.3, -32.3, -34.1, -37.3, -41.1, -37.7, -58.1,
                         -57.5]) * units.degC
    ki = k_index(pressure, temperature, dewpoint)

前回のSSIと同様にエマグラム(予想図)にSSIとK-indexの指数を表示したのが下記の図である。

エマグラム予想図 with SSI and K-index

AnacondaからMinicondaへ移行する

本題からそれるが、これまでPython環境の構築にAnacondaを使ってきた。しかし、昨年から条件付で商用利用の場合に有償化された。個人利用なので特に有償利用する必要はないのだが、今回の対応を機にMiniconda+conda-forgeへ環境を移行することにした。

Minicondaへのスマートな移行方法があるのかもしれないが、Anacondaをアンインストールし、Minicondaをインストール、必要なパッケージのインストールなど環境設定をするのが楽そうなので、そのようにして移行した。

さいごに

MetPyのAPIのリファレンスを見ていると、SSIやK-index以外にも大気の不安定さを示す指数があり、世界では使われていることが分かる。他にも日本では見聞きすることがないプロットをサポートしていて興味深い。日本における気象は非常にドメスティックな世界のように見えてきた。


よろしければ、サポートをお願いします。 より多くの方に役立つnoteを書けるよう頑張ります!!