見出し画像

プログラミング系科目オール「C」の俺がPythonに一目惚れして局所天気図の描写に挑む話 ~Prologue~


はじめに(という名の注記)

このシリーズは備忘録を兼ねた記事のため、この「はじめに」以降は汚らしい雑な口調で進めます。また、現在進行形で進めているので完成までは不透明です。それでも良いという方はどうかお付き合いください。アドバイス等のコメントも遠慮なくどうぞ。

なお、本記事(Prologue)にはPythonのコードは一切登場しません。コードについては第1話以降をご覧ください。

プログラミングなんて絶対やってやんねえ、そう思っていた

ハッキリと言おう。

俺はプログラミングが大っ嫌いだ。

大学1年生の必修科目で初めてプログラミングに触れた。はじめは未知との遭遇ということもあって楽しく取り組めるかも、と思っていた。

そんなことはなかった。

扱う数値によってint型だのdouble型だの変えてやらなきゃいけないのがまず理解を拒んだし、関数プロトタイプ宣言してから定義してやるという流れが面倒くさすぎたし、そもそもプログラムの実行に欠かせないgccコンパイルのコマンドの構造すら飲みこめない。とにかく嫌に思う要素ばかりだった。何とか単位は取れたから良かったものの、成績としては一番下のC、いわゆる「可」のレベルだ。
(余談ではあるが、必修ではないものの卒業要件を満たすためにC言語を扱ったまた別の科目を取らなければならず、こちらも成績は「C」である。しんどすぎてずっと「くっ……コロせ……!」とか思っていた。)

最低限の知識があればここまで読んだ時点で俺が嫌いなのが正確にはC言語であることがわかるだろうが、この必修科目の所為で俺のプログラミングという概念に対する嫌悪感は一気に高まった。

「俺にはできなくてもいいや、もっと向いてる人がごまんといるんだし……」

今を生ける若人にはあるまじきことを思い続けながら大学生活を過ごしていたが、転機はある日訪れた。

とある科目の講義にてプログラミングを用いたシミュレーションを行うことになり、嘆息を漏らしていた。

ダウンロードした配布資料を解凍し、該当のファイルを開く。
目にプログラムのコードが映る。

はじめは吐き気を催しかけたが、よくよく見るとそのコードはC言語のソレとは違ってとても視認性が良く、なんとなく何をしようとしているかも読み取りやすかった。なにより、整数であろうと小数であろうと逐一宣言する必要なくそのまま計算できる、実行するうえでコンパイルも必要ないという気楽さ。こんな革新的なプログラミングが存在するのか、俺はそう思った。

これが俺とPythonとの出会いだった。

あいにく、その科目は俺の苦手分野だったので単位は取り損ねてしまったが(ハァ?)、俺はPythonならやってもいい、Pythonを扱えるようになりたいと思えるようになった。

好き×好きを原動力に

とはいえただPythonを扱うんじゃ面白くない。ここは勉強している「天気」と組み合わせて何かできないかと思っていたところ、ちょうど愛読している本である「一般気象学 (著: 小倉義光)」にて二つのキーワードが目に留まった。

熱的低気圧雷雨性高気圧(メソハイ、meso high)である。

熱的低気圧とは、晴れて日射が強まった日に海から遠い中部山岳地域において、空気塊が温められて上昇気流が発生することで生まれる、局地的な低気圧のことである。ときに積乱雲をもたらすこともあり、この時発生する雷は熱雷に分類される。

対して雷雨性高気圧は積乱雲からの冷たい下降気流(ダウンバースト)により、周囲より気圧が高くなっている領域を指す。

う~ん、AMeDASの観測値を基に等圧線を引いて熱的低気圧や雷雨性高気圧を描写できないだろうか。

思い立ったが吉日、気象庁のAMeDAS観測点データや突風データベースを血眼になって探す。すると2018年7月15日に長野県小県郡長和町において発生したダウンバーストの発生要因が「雷雨(熱雷)」として挙げられていた。また、被害状況や突風の種類こそ記載がなかったが、同日下諏訪町にもプロットが置かれていた。付近には諏訪測候所がある。ここは長野県内に4か所ある気圧観測点の1つだ。

こいつぁいい、熱的低気圧も雷雨性高気圧も描写できるかもしれねぇ。ということで当日のCSVファイルを早速ダウンロードする。

数少ない先駆者たちが残したサイトやメモを参考にコードを真似て、まだ読み方すら分からないエラーコードと苦戦しながらプログラムを組んでみる。C言語の時とは思えないほどの集中力である。

そして描写できた天気図がこれだ。

うわぁぁああぁぁあPythonすっげぇえぇえええぇぇ!!!!!
偉大!!!!!
神!!!!!
いあいあぱいそんふたぐん!!!!!

思わず取り乱すぐらいには喜びようは大きかった。あれほどプログラミングを嫌煙していた俺がプログラミングでこんな図を描けてしまったのだから。

これにて一件落着……

……

…………

いや、ちょっと待ってくれ……

なんかここ異様にキモすぎるが!?!?!?

富山県~石川県の等圧線が途切れているのがなんか気に食わないし、観測値が無いのに松本の北西部に1007hPa以下の領域があることになってるし、下越沖に謎の閉じた等圧線できちゃってるし。いや、そもそもPythonの知識がほぼ無いに等しい状態で、いきなり高度なことをやろうとする方が無謀だったのかもしれない。ここは今一度Pythonをきちんと理解するためにも、基礎的なことから、いやゼロからもう一度やっていこう。さて、そうと決まったら本屋に行ってPythonに関する本を買ってだな(以下略

……あぁ、始まってしまった。凝り性な俺の顕現である。

ああもう、こうなったら納得できるまで徹底的にやってやる。いいな、やり始めたからにはついて来いよ、俺。

【次の話】↓


いいなと思ったら応援しよう!