見出し画像

GMTを使わずPython + MetPy + MatplotlibでGSM/MSMのGPVデータから天気図を描く

はじめに

昨年夏から似たようなタイトルでこれまで複数のnoteを書いてきたのだが、色塗り天気図自動生成システムのPython化も今回で最後になりそうだ。

これまでの経緯については、下記のマガジンを参照いただきたい。

前回はPython版への移行の目処がたち、できたところからPython版での運用を始めたとnoteに書いた。

前回から更に改善をしつつ、Python版での完全運用を目指して開発を進めた。

以前からの変更点

下記のnoteに、フィルターをかけてGPVの値をぼかし、等値線を滑らかに書くことについて紹介した。

OpenCVの平均化フィルターを使ってぼかすことにしたが、一部のデータについてはフィルターを使うことなく、GPVデータをそのまま描画するようにした。

気象庁の予想天気図に近いほど正解とは思わないが、必要に応じて気象庁の予想天気図と比較しながらフィルターの使用有無について判断した。

できあがり

前回紹介した天気図もあるが、できあがった天気図をいくつか紹介する。

まずは850hPaの相当温位図。以前も紹介したものだが、カラーバーを少し改善したので改めて示す。

画像1

次に850hPaの高度場、気温、湿数。AUPQ78の下図などに相当する。湿数が3℃以下の湿域に水色、18℃以上の乾燥域に黄色で色塗りしている。

画像2

次に500hPaの渦度と高度場。AXFE578下図などに相当する天気図だ。渦度の計算はGMTではプログラムで書く必要があったが、MetPyでは渦度の計算のAPIを提供しているのでかなり助かる。

画像3

実況図の代わりにGSMの初期時刻の天気図を使用している。両者は完全には一致しないが、実況図の色塗りしないで済ませることができる。

最後にMSMで総雲量に降水域を重ね合わせ描画した天気図。気象庁のHPにある時系列予報に近いものだ。

画像4

この他にもK-indexなどオリジナルの天気図も作成している。

本システムで作成している天気図は、15種類以上、計180枚以上にもなる。これをGPVデータのダウンロードを含め、毎朝5時過ぎから約25分の時間をかけて自動作成させている。

自宅PCのCPUパワーも十分なので、並列処理すればもっと短い時間で処理できる可能性はありそうだ。

さいごに

10年以上前に予報士会の京都部会でパソ研の方からGMTを教わり、それを参考に自身でBashプログラムを書き直し、長らく運用してきた色塗り天気図自動生成システムのだが、ようやく念願のPython版への完全移行が完了した。

Bashと違いPythonはスマートなプログラムが書けるので保守性も優れている。ソフトウェア的にはまだ改善の余地があるので、今後も改善に努めたい。


実作業時間はそれほど長くはなかったのだが、期間的にはかなり長い時間を要してしまったが、システムの改良できて気象関係はようやく一息付けそうだ。

天気図の作図にあたっては、京都大学生存圏研究所の生存圏データベースのGPVデータを使用させて頂いています。

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