top of page

Pythonプログラミングは部品化で効率アップ!~Pythonで気象GPVデータを可視化しよう~

こんにちは。TeamSABOTENのプログラミング教材を制作している佐野栄治です。

解説動画「Pythonで気象GPVデータを可視化しよう」シリーズの制作を行っています。



Pythonで気象GPVデータを可視化しよう

【簡易版】:Python初心者でも安心。環境設定やGPVデータの解説も。

【正規版】:複数天気図を1枚に。高機能かつ拡張性もバッチリ。

【鉛直断面図オプション(正規版用)】:大気を立体的に把握できる鉛直断面図描画機能。

※Python基本文法の解説は含まれておりません。



プログラミングをしていると、1本のプログラムの中でも同じような処理が何回も出てくることがありますよね。例えば、


・気象データファイルを読み込む処理

・前〇時間降水量を求める処理

・天気図の背景に地図を描く処理


などがそれに当たります。


また、1つの処理が長すぎたり複雑すぎたりすることもあります。


・複数の予測時刻を含む気象データファイルを一括して読み込む処理

・気象データの予測時刻を3時間ずつずらしながら5種類の天気図を描く処理


などですね。


その場限りでちょっと描いてみたいだけ、という場合は、別の場所のコードからコピペしたり、コードをダラダラと長く書いたりしてもいいかと思いますが、大抵のプログラミング言語には、まとまった処理を部品のように定義して使う仕組みが用意されている(Pythonにも備わっています)ので、それを使うのがオススメです。


部品化を行うと、共通処理を一か所にまとめて再利用したり、複雑な処理を分割して分かりやすくすることができます。



プログラムを部品化した図


部品化で最もよく使われるのが関数定義(Pythonでは「def」)です。

まとまった処理を独自の関数として定義しておいて必要なときに呼び出して使う、というわけです。関数の動作は以下のようになっています。


1.呼び元から情報(引数)を受け取る

2.関数内で引数を使って処理を行う

3.呼び元に結果(戻り値)を返す

(呼び元と情報のやり取りを行わない場合は1や3は不要)



関数を呼び出している図


例えば、気象データファイルを読み込む処理を関数化した場合、関数側から見た動作は、


1.呼び元から引数としてファイル名を受け取る

2.関数内で、対象ファイルを読み込んでデータを変数に格納する

3.呼び元に変数を返す


となります。

関数の呼び元では、具体的にどのようにしてファイルを読み込んだかは関知することなくデータを受け取ることができ、関数側も読み込んだデータがどのように使われるかは関知しないので、部品としての独立性が保たれます。

これによって、呼び元から見ると全体の流れが非常にシンプルになり、関数側も自分の動作のみに責任を負えばよいということになります。




関数の仕様を明確にしている図


関数を設計するときにはこの「何を受け取って、何を行って、何を返すか」という仕様やルールを明確に定義することが重要になります。


特に複数箇所から呼ばれるような共通部品として関数化する場合は、想定上のいかなる呼ばれ方をしてもうまく動作するよう汎用的に考えなくてはなりません。特に引数と戻り値については、変数の型も重要になってきます。呼び出し側と関数側の型が整合していないとうまく動作しないからです。


また、1つの部品はそれ単体が明確な機能単位になっていることも大事です。単にコードの見た目や動作が似ているからという理由で部品化してしまうと、分かりにくいプログラムになってしまいます。(一部、実装テクニックとして使う場合もあります)


将来の仕様変更や拡張性についても、ある程度気を配りたいところです。

関数をうまく設計しておけば、関数内の動作を修正するだけで、呼び元は一切修正せずに済むこともあります。ただ、将来の仕様変更を予測するのは難しいことも多いので、小規模のプログラムならそこまで神経質になることもないでしょう。



このように汎用性と機能単位を考えて部品化を進めていくと、プログラムの面倒な部分を部品の組み合わせで構築できるようになります。結果的にプログラミング効率やメンテナンス性も上がりますし、読みやすくバグの出にくいプログラムになるので、ぜひやってみてください。


ちなみに「Pythonで気象GPVデータを可視化しよう」の【正規版】サンプルでは、この「部品化」があちこちに散りばめられているので、機能の再利用やアレンジがしやすくなっていますよ。



この記事を書いた人

気象予報士 佐野栄治

(特種情報処理技術者、星空案内人、天文宇宙検定2級、日本農業技術検定3級)





TeamSABOTENのサブスク・月額コースは100を超える動画が見放題!


●気象予報士受験生向けサブスク

学科から実技まで学習を手助けする副教材がてんこ盛りで月額4,400円

毎週金曜日に新しい動画教材をアップ!月に1~2回はライブ講座も開催

気象予報士試験対策 サブスク SABOTEN’s CAMP


●資格の有無に関係なく気象を楽しみたい方向けサブスク

ライブに参加し放題、動画見放題で月額2,970円

元気象庁予報官によるオンラインライブ講座は月3回開催

そのうち2回は最新の天気図を使った【予報官の気象ブリーフィング】です

TeamSABOTENの無料メルマガで大人気「元気象庁予報官・鈴木和史先生のコラム」の内容をさらに詳しく解説する【予報官のコラムLIVE】も大好評

気象予報士 サブスク




気象予報士試験に向けて!

●TeamSABOTEN気象予報士スクールからのお知らせ


TeamSABOTENでは、合格のための様々なコンテンツをご用意しております。

ぜひご活用ください。


模試付き総合パック・実技完全パックには 実技過去問解説動画が第51回から最新回まで全て含まれていて大変お得です!

気象予報士試験 実技過去問解説


気象予報士試験 模試付き総合パック


気象予報士試験 実技完全パック


気象予報士試験 合格模擬試験 学科一般 学科専門 実技

コメント


気象予報士試験に役立つ無料メルマガ登録
bottom of page