これまで,気象庁がコンピュータで計算しているGSMのデータを使い天気図を作成しました。自分でいろいろなことを調べて,インターネット上にあるプログラムのコードを参考にしながら作成しました。プログラムを実行してエラーが出れば,デバッガーを使って原因を調べて対処しました。これにより,GSMのデータの扱い方やpythonの使い方にだいぶ慣れました。
ここでふと考えました。ChatGPTにコード作成をお願いすればベースとなるコードを作成してもらえるのではないか? ベースコードができれば私の実力でも修正することができるので,欲しいものが得られるのではないか。そこで,今回はChatGPTに助けてもらいGSMのデータから大気の鉛直断面図を作成できるようにしました。まだラフな状態ですが,いまの段階でどんなことができるようになったか紹介します。
ChatGPTでのコード作成
使用したChatGPTは無料版で,使用していると一定期間使用できなくなります。つぎは何時から使用できるか表示されるので,間隔をあけながらコツコツとコード作成を行いました。「こんなことをしたい」と入力するとコードを生成してくれるので,それをコピーして自分のパソコンで実行しました。1発でうまくいくことはほとんどありません。そのため,エラーが出ればエラーコードをコピペしてChatGPTに入力し,その原因と対策を考えてもらいます。
ChatGPTにお願いしたとき,ChatGPTからは「いいですね」とか,コードを生成した後は「こんなこともできますよ」という提案もしてくれます。気象の研究者たちがWEB上に残してくれている情報を学習しているので,こちらが気付かないような提案もあり結構鋭いです。たまに頓珍漢なこともありますが,少し抜けた優秀に見える同僚のように感じました。
大気の鉛直断面作成例
断面図を作成したGSMデータについては,初期値が2025年11月19日12:00UTCでその6日後の11月25日12:00UTC(日本時間21:00)のものとしました。この時の海面更正気圧と850hPaの気温をプロットした天気図を下に示します。冬型の気圧配置となっており,そのときの特徴的な鉛直断面図が得られると考えました。

大気の断面図を作成する断面は地球の中心と地表に設定した始点(Start)と終点(End)を通る平面としました。下図の赤線は地表面とこの断面との交線(大円)を表します。大円を採用することはChatGPTが提案してくれました。また,今回は寒気の吹き出しに沿って大気の鉛直断面図を作成するように始点と終点を設定しました。日本列島のちょっと南に寒冷前線があるのですが,前線は記載してありません。ただし,ここに前線があることを覚えておいていただけると,断面図を見たときに理解が進みます。

断面図の横軸は始点からの距離であり,左端が始点,右端が終点としました。この記事の一番初めに示した図の縦軸は高度[m]としましたが,以下に示す4枚の図は縦軸が圧力となっています。地上付近は1000hPa,高度が高いほど圧力は小さくなります。また,図のX軸付近に茶色線がありますが,これは地形を表すものです。地形データはGSM以外のところから引用しています。
まずは湿数の図を示します。湿数は温度と露点温度の差です。湿数が大きいほど乾いており,0に近いほど湿っていることを示します。雲がわいているところは湿数が小さいです。教科書的ではありますがこの図から以下のことがわかります。
- 日本海に吹き出す前のユーラシア大陸の空気は乾いています
- 日本海に吹き出すと湿った空気になります
- 湿った空気は800hPaくらいのところまでの高さに抑え込まれています
この図からは読み取れませんが,この湿った空気の上空に逆転層という蓋みたいなものがあって,湿った空気は蓋のところ以上に登っていけないようになっています - 日本を超えて太平洋に出たところに湿った空気が高いところまで到達しているところがあります。ここに寒冷前線にともなった上昇流があります

少しなじみのない方もいるかもしれませんが,相当温位というものがあります。それを描画したのが下の図です。これを見ると以下のことがわかります。
- 寒気と暖気の境目がよくわかり,その境目に前線面があります
- ユーラシア大陸では相当温位が低いですが,日本海に吹き出すと空気が加熱されたり水蒸気が供給されたりして相当温位が上昇します(気団の変質)
- 日本海に吹き出した後は対流が活発なため大気が混合し,800hPaより低いところでは高さ方向で相当温位がほぼ同じとなります

つぎは気温です。相当温位より気温の方がなじみがありますね。

最後は鉛直流です。赤っぽいところは上昇流,青っぽいところは下降流となっています。前線付近では上昇流となっていることがわかります。

ChatGPTを使って感じたこと
私は製品開発をやったことがありますが,ベースが0のものを開発するのは相当に苦労がありました。それに対し,ベースがある程度できていてそれを改良して仕上げていくことはかなりハードルが下がりました。今回,pythonでプログラムを作成する場合も,いまの私の実力では0から作るのは苦労が多かったと思います。しかし,ChatGPTで9割がた作ってくれて,残りの1割くらいを自分で作ったり間違いがないか検証することになったので,苦労がかなり低減されました。私の勉強にもなり大変強力なツールと感じました。ただし,ChatGPTにお願いすればいろいろやってくれるので,どこまでを頼って,どこを自分でやるかの線引きは難しく感じました。頼り切ってしまって,自分の頭で考えなくなってしまうことが怖いです。
また,今回はコード作成をしましたが,いっそのことGSMのデータをChatGPTに渡し,天気予報をさせる,すなわち気象予報士がやるべきところまで,ChatGPTに明け渡すアプローチもあります。いろいろ活用の仕方はあると思うので,目的をはっきりさせ,主体的にきちんと使っていくことが重要だと感じました。
まとめ
今回作成した断面図作成用のコードについては,もう少しブラッシュアップが必要なので引き続き取り組んでいきます。また,気象でよく使うエマグラムの作成や,GSMでなくMSMを使った作図などを行っていこうと思います。
