日本の最新METARをGoogle Earthに自動的に表示する仕組みを整える


ここ数年、サーバーを借りたりプログラミングを出来るようになってからやりたいことが徐々に広がってきました。それに後押しをしてくれたのが生成AIです。
このコーナーでは、やりたかった事が短期間(僅か2日間)で実現できたので紹介いたします。

最初にサーバーをお借りして、Apatchを導入し、誰でもサーバー内の特定のFolderの内容を読むことが出来るように設定しました。
サーバーのセキュリティなどに手間取り、半日以上かかりました。

その後、ChatGPT4と会話を行いながら次のようなPythonプログラムをPCで作成しました。
1 METARを収集しているサイトにアクセスして、日本全国の今日のMETARを収集してデータフレームにする。
2 今日のMETARには朝からアクセスした時点までのMETARが含まれているので、各空港の最新のMETARだけを選択する。
3 データフレームの中から空港の位置、風向、風速、天候を抜き出す。
4 上記に応じたkmlファイルを生成する。kmlは上記の情報を可視化できるスタイルにする。(kmlに詳しくないと苦労しますが..)
5 生成されたkmlファイルをPCに書き出し、それをGoogle Earthで読み込む。

このようにして、望むkmlファイルが出来上がるまでプログラムの修正を繰り返しました。

その後、プログラムをサーバー用に修正します。
修正はkmlファイルの書き出し先を、前述したサーバー内の特定のFolderにするものです。

そしてPythonプログラムをTerraTermでサーバーに転送して、定期的に実行するようにサーバーで設定します。
最初は毎時15分と45分に実行するようにしました。
このようにすると、サーバー内の特定のFolderには毎時15分と45分に最新のMETARを反映したkmlファイルが出来上がります。(00分と30分にしなかった理由は、METARが正式に公開されてもMETARを収集しているサイトにすぐ反映されないからです)

次にGoogle Earth Pro(PCにインストールするGoogle Earth)の設定をします。これはすぐ出来ます。

最初に「お気に入り」の上で左クリックします。(何気にこれは大切です)


追加->ネットワークリンクを選びます


名前をMETARなどの分かり易い名前に変更してリンクに
http://153.121.60.39/kml/flighttraining/metar.kml
をコピペします。


更新タブを選択して、1分おきに上記のサーバーアドレスにリクエストするように設定します。



結果として下記のようにMETARというフォルダが出来上がり、何となくネットワークで繋がっている様なアイコン表示になります。



※2023年10月17日の時点でMETAR情報のアップデートが30分~60分ほど遅れていますのでご了承ください。
METARを収集しているサイトに情報がとりまとめられるのが、METARが発信されてから時間を要しているのが原因だと思われます。


こうしますと、Google Earthは1分おきに私が借りたサーバーの中のファイルをダウンロードして、更新します。つまりサーバーの中のファイルが新しい情報に書き換わっても最大1分の遅れでGoogle Earthに反映される仕組みが出来上がります。
皆様は簡単なGoogle Earthの設定をするだけで私が見ている内容と同じものを見る事が出来ます。
http://153.121.60.39/kml/ のFolderには色々なkmlファイルを保存できるので、様々な目的に応じてkmlファイルを作成して航空関係の方に公開することが出来ます。

以下はGoogle Earthのスクリーンショットです。

青森周辺を見てみます。RJSHは八戸空港です。
全ての空港を対象に、天気に応じてアイコンを変更しています。
またアイコンをクリックするとMETARの内容が見られます。
さらに風向が矢印(矢の先が短いのですが)で、風速は長さで表示され、METARの中にGustが含まれると赤い矢印になります。

今後は視程をポリゴンで表示する等のアップデートを行おうと思います。

また空域を表示するポリゴンや、安全に関する様々な情報を組み合わせてみたいと思います。


まとめ

スクレイピング、プログラミング、サーバー運用とネットワークリンクを習得すると、ユーザーに
http://153.121.60.39/kml/flighttraining/metar.kml
を伝えるだけで、常に最新のkmlが表示される環境を提供する事が出来ます。
生成AIを活用すると、短期間で開発を進めることが出来ます。
これは素晴らしい応用性を秘めています。