はじめに
お久しぶりです、hiroです。私はと言いますと、一年前からIRIS NAVIGATION(通称あいなび)というYoutubeグループを立ち上げてそれに参加していて、現在も気象予報士試験に関する解説動画を作成しています。
Xでは気象予報士試験の仲間とワイワイ盛り上がっていますが、試験に合格した人も沢山出てきて、実際、気象キャスターとして活動したり気象会社で働いたりして、資格を活用している人も居ますが、気象予報士という資格の性質上、折角身につけた気象の知識を活かせなくて困っている人も多いように見受けられます。
そこで、昨今のAIの勃興と合わせて、「気象データアナリスト」に着眼した方も多いのではないでしょうか。しかし、どの人もまずその知識を身につける為の養成講座を見て驚くのが…
は?!100万弱するやんけ!気象予報士が資格取得条件無いし、ネット上に解説記事も多く上がっていて、金銭的な障壁はかなり低かった故に、この金額には狼狽する方が多いと思います。
そこで思ったのが、、、ちょっとどんな感じなのか中身を覗いてみたい方の為に、ザッとどんなことをやるのか、大学でプログラミングを勉強して、多少AIの理論的な勉強をしたりAIを触ったりしたことがある私がお見せ出来たら面白いんじゃね?!と思ったのでやってみたいと思います。あくまでも想像の範囲内ですが。
気象データアナリストって何するの?!
ということで、まずは講座内容を見てみました。
ふーん、雲海。面白そうやん。この講座では秩父山地の雲海を題材にデータサイエンスを行うようです。雲海予報とかするんかなあ。
ふむ、雲海発生記録データとアメダス秩父の特地の気象観測データを利用するらしい。そらまずは雲海予報するんやろなあ。
中々応用するのは難しそう、、、ただ、データサイエンスを商業利用するんだろうってことは何となく「講座が目指すゴール」からは分かるね。
雲海予報の計画
取り敢えず、気象データアナリスト養成講座の講座内容に従って、雲海予報をやってみたいと思います。
Google検索したら、出てきたわ、雲海予報実際にやってみてる人。
記事を見てみると、なるほど、アメダスデータはTellusという衛星データプラットフォームから取ってきてるようですが、そんなことしなくても気象庁HPの「過去の気象データ」からデータは取ってこれるよな?
また、言語はPythonなので自分は使ったことがあるし、この記事レベルのことをするのならそんなに障壁は低くなさそうだ。
この記事では講座でも紹介されている秩父の雲海予報をしているようですが、自分は現在関西住みなので、兵庫の「竹田城」の雲海予報をしよう!と思い至りました。
竹田城の雲海予報
よし、なら善は急げということで竹田城の雲海予報やってみようじゃないか。
予報の手順としては、
⓪Pythonの環境構築
①アメダスデータを取ってきて読み込む
②データの整形
③AIにデータを読み込ませる
位でしょうか。プログラミング初心者向けに丁寧に手順を追っていこうと思いますので、分かっている方はある程度読み飛ばしてください。
⓪Pythonの環境構築
Pythonを扱う方法は色々ありますが、初心者向けに一番オススメするのが、「Anaconda」のインストールです。Anacondaは、データサイエンスや機械学習に関する作業を効率的に行うプラットフォームといった感じですね。
インストールの仕方については、ある程度ググってください。OSの種類に注意してください。そしてAnaconda Navigatorを開いてください。
その中の、今回はSpyderというアプリを使いたいと思います。Python専用の統合開発環境といった感じです。
これでPythonを扱う為の環境構築は完了です!
①アメダスデータを取ってきて読み込む
それでは、アメダスデータを取ってきて読み込んでみましょう。先ほどの気象庁HPの「過去の気象データ・ダウンロード」のページに進んで、アメダス和田山の気温、風向・風速、現地気圧、相対湿度にチェック入れて2023年9月1日から2023年11月30日までの時別値をCSVでダウンロードしました。その結果を私はVSCodeで開いています。ダウンロード結果を表示します。
こんな感じです!どうですか?
②データの整形
これについては、PythonのPandasというモジュールを使ったのですが、、、やってみた結果、とても面倒でした。エクセルの関数などを使って整形するのが良いと思います。(Pandasの扱いには慣れが必要みたいです。)
雲海予報には「湿度」「前日と当日の気温差」「風速」のデータが必要と分かったので、その「前日と当日の気温差」については「前日13時と当日3時の気温差」を計算し、「湿度」「風速」については当日朝3時のものを抽出しました。また、
以上のサイトより雲海の結果を数字で表示することにしました。以上のサイトの表記を使って、「0: 出てない 1:うっすら 2:雲海 3:最高の雲海」というナンバリングをしています。表の最後にこの雲海の結果は付け足しました。
最終的に、こんな感じになっています!!!
③AIにデータを読み込ませる
AIは今回、予報士試験にも出てくるニューラルネットワークを使ってみたいと思います。AIライブラリで有名なScikit-learnのRandomForestRegressorを使ってみることにしました。コードは、以下のような感じになっています。
ここで私は、Pandasの扱いに慣れていない為ChatGPTに頼ってコードを一部書いてもらいました。また、以下のサイトを参考に書いています。
それでは、実際に予報結果を出してみましょう、結果は???
今回、機械学習を使うにあたって交差検証(cross-validation)を使っていますが、そこでtestデータを使っての予報結果が以上のグラフです。青色が正解データ、オレンジ色が予報データとなっています。これが重なるほど予報精度が高いということになります。
predict_accuracy = 0.6496982758620689なので、予報精度は65%程度と言ったところでしょうか。
おわりに
今回は、ニューラルネットワークを使って「気象データアナリスト」擬きのデータサイエンスに挑戦してみました。
大体こんな感じ?っていうのを掴んでいただけたら幸いです。(繰り返しますが、あくまでも予測の範囲内ですが…)面白い!と思ったら今回の手順を追ってみて、皆さんも実際に雲海予報を試してみてください。
因みに、、、私は、この雲海予報を元に実際に雲海が出るか予報してみて、雲海を見てきたいと思っています!朝来市の詳細な天気予報について、tenki.jpが提供してくれているんですよね。その様子もブログに出来たらと思っていますので、ご期待ください笑
それでは!!!