データ収集と解析の方法(2021年2月23日以前)

戻る

1.天気予報データの収集

 気象庁では、毎日5時、11時、17時の3回、府県天気予報を発表しています。それとは別に毎日11時に週間天気予報を発表しています。このサイトで収集しているのは、毎日17時に気象庁が発表している東京地方の天気予報と、11時に発表している週間天気予報です。

 実際には、週間天気予報:東京都のページに、毎日18時頃にアクセスし、データをダウンロードしています。このページには翌日の天気予報と週間天気予報の両方が掲載されていますので、両方を一度にダウンロードできます。

 このデータのダウンロードが最も重要な作業で、途中に抜けがあると、せっかく何年も継続して続けているこのサイトの価値が大きく下がってしまいますから、毎日漏れることなく収集する必要があります。

 収集を開始した2005年頃から、いろいろなトラブルを経験し、それに対応しながら毎日漏れなくデータをダウンロードするように改良してきました。こうして今日に至ったわけですが、現在、実際に行っている方法を次に示します。
  1. 自動ダウンロード
  2.  WebPilotという自動パイロットプログラム(フリーソフトウェア)を使用し、毎日18時に、気象庁の「週間天気予報:東京都」のページにアクセスし、これをダウンロードしています。

     WebPilotは、作者のサイトから入手可能。フリーソフトウェアで、ここのところバージョンアップされていませんが、Windows 7や最新の Windows 10でも無事に動作するようです。改めて、作者の Nomura Yukiaki氏に感謝します。このソフトがなければ、このサイトを続けることはできませんでした。ありがとうございます。

  3. 自動ダウンロードプログラムの自動起動
  4.  WebPilotは、ダウンロードする時間間隔を指定することはできるのですが、ダウンロードを最初に開始する時刻を指定することはうまくできないようです。(本当はできるのかもしれませんが、私がトライした範囲ではできませんでした。)それでも、そのPCで WebPilotを起動した時刻を最初のダウンロード開始時刻として、その後は例えば24時間(1440分)間隔で自動収集することは可能です。

     そこで、毎日18時に WebPilotで自動収集を行うため、まずは WebPilotを18時に自動起動させることにしました。これは、Windowsのタスクスケジューラを使用することで意外と簡単に実現できます。もしも既に WebPilotが立ち上がっている場合には、タスクスケジューラは何もしないという設定ができますので、18時に WebPilotが立ち上がっていなければ自動起動して最初のダウンロードを行い、既に立ち上がっている場合には WebPilotのタイマーにより自動的にダウンロードが行われます。

  5. PCの自動起動/スリープ
  6.  年中無休でPCを起動したままにしておけば、ここまでの仕組みでOKなのですが、1日に1回天気予報をダウンロードするためだけに1台のPCを連続運転しておくのも気が引けます。そこで、少なくとも1台のPCについては、タイマーを使って自動起動と自動スリープを行うことにしました。

     この手のソフトはいろいろあるのかもしれませんが、ここでは福猫株式会社さんのフリーソフト、Rest!を使用しています。福猫さん、本当にお世話になっています。ありがとうございます。

     Rest! により、スリープからの復帰と、その後のスリープを完全に自動化できますので、例えば17:55にスリープから復帰して、18:00に WebPilotによって自動的に天気予報と週間天気予報をダウンロードし、18:05にスリープするというスケジュールでの完全自動運転が可能となります。

     ところが、実際に運用を開始してみると、何故かスリープから復帰したはずのPCがすぐに勝手に再びスリープしてしまうという問題が発生。いろいろと調べて対処しても解決せず、困り果ててたところで、有力な情報を発見。ここに記載の解決策を試したところ、無事に問題解決、なんてこともありました。

  7. バックアップ
  8.  ここまでで、とりあえず毎日定刻に自動的に天気予報のページをダウンロードする環境は整ったのですが、実際に運用してみると、種々の問題が起こります。PCが何らかのトラブルでハングアップしたり、起動しなかったり、ネットがつながらなかったり、Windows Updateが悪さをしたり、特に原因は見当たらないのに、たまたま(?)ダウンロードに失敗したり、といった具合に、予期せぬことは起こるものです。

     天気予報は逐次新しい予報に更新されてしまうのですが、17時に発表された天気予報は翌朝5時までは、そのまま残っているはずです。ただし、時々何らかの修正が入ることがあるようで、その場合には18時とか21時とかに最新の予報に上書きされてしまうこともあります。それはともかく、17時発表の天気予報や11時発表の週間天気予報は、たとえ18時に自動的なダウンロードをし損なったとしても、翌日の朝5時までであれば、まだ取得するチャンスが残っているわけです。

     そこで、自動的にダウンロードするPCとは別に、普段使用しているPCでも毎晩 WebPilotによるダウンロードを行うようにしておき、無事にダウンロードされていることをできるだけ毎日確認するようにしています。もしも何らかの理由でダウンロードされていないときには、手動で WebPilotを起動してダウンロードします。

     さらに、旅行等で自宅に戻らない時には、夜の適当な時刻にスマホなどで天気予報と週間天気予報のページをキャプチャするようにしています。ときどき忘れてしまうこともありますが、ここまですることで、今のところ、ほぼ取りこぼしなく取得できています。それでもたまに海外に出るときなどは、かなり危ない状況になりかねません。時差の関係で、日本の17時〜5時の時間帯にネットへのアクセスが難しい状況があり得るためです。ちょうど日本の夕方に離陸する長時間フライトがクセモノで、現地に着いたときには日本時間の朝になっているというわけです。幸い、今のところ、日本で待機しているPCが自動起動して自動ダウンロードしてくれているようですが、これからは完璧を期すのであれば、海外に行くときは飛行機内でもネット接続することが必要かもしれません。

     2005年の途中からデータ収集を開始して10年以上が経過したのですが、その中で数回、データを取り損なったことがあります。翌日にネットをいろいろと探し回って、かろうじて前日の天気予報データが残っているところを見つけたりして、何とかリカバリーできたこともあったのですが、1度だけ、2014年4月20日のデータは、ついに取得できませんでした。このときはまだ、PCのタイマー起動や WebPilotの自動起動は行っていなかったのですが、WebPilotでデータ収集していたPCが Windows Updateのために勝手に再起動されたためデータを取得し損ない、さらに、その日はたまたま出かけていて、遅く帰宅してから、いつも使っているPC(こちらはたまたま再起動後に WebPilotを動かしていなかった)でのファイル取得の確認を失念したため、データ取りこぼしに気付いたのが翌朝で、既に朝5時の予報に上書きされていました。このときもあちこち探したけれど、欲しいデータはついに見つからなかったのでした。

2.データの解析とサイトへの掲載

 ダウンロードしたページから、必要なデータ(天気予報、最高気温、最低気温、降水確率)を取り出して、これをデータとして蓄積し、さらに htmlファイルに整形して出力します。この作業を全部手動で行うのは大変ですので、今は半自動化しています。

 htmlファイルを読み込んで、ファイルの中から必要なデータを見つけて抽出し、所定のフォーマットに書き出すという作業を自動化するだけなので、ファイル操作やテキスト処理ができれば、どんな方法でもいいのですが、ここでは手軽に使えるということと、どうせその後の種々の解析に表計算ソフトを使用するということで、Microsoft Excelのマクロ(Visual Basic)を使って処理することにしました。

 府県天気予報のページの htmlファイルの中身を一度解析し、それに対応したマクロを書けば、データを取り出すのはさほど難しい作業ではないのですが、何年かに一度程度、サイトの中身が見直されることがあるため、その都度、マクロを一部修正してきました。適当な頻度であればまだしも、本当にたまにしか起こらないため、改めて自分の書いたマクロを見直して、理解するのが結構大変だったりします。

 マクロでは、必要なデータを見つけて取り出し、これを整形して htmlファイルにして出力するところまで自動的に行っています。このとき、天気予報と降水確率の統計処理まで行っています。

 一方、天気予報を解析したり、実際の天気と比較して、トレンドグラフ、偏差ヒストグラム、相関グラフなどを出力するのには、Excelを使っています。実はこのとき、天気予報や実際の天気のデータは、すべて Excelに手入力しています。これもマクロで自動化できないこともないと思うのですが、最初のファイルの設計がいい加減だったため、これ以上の改造はかなり無理が出てくることや、Excelファイルがあまりに巨大化してしまい、これ以上複雑化すると、いろいろと不具合が出ることなどがあり、自動化は断念したままです。でも、全部自動化すると、天気予報や天気の現状を目にする機会が減ってしまい、あまり面白くないということもあるので、実際に目で見て、手を動かすことも必要なのではないか、と考えたりしています。

 Excelに必要なデータを入力したら、Excel上でさらにいくつかのマクロを走らせ、データの解析、グラフ表示、解析結果の htmlファイルへの出力などを自動的に行っています。天気予報を種類別にカウントしたり、降水確率の適中率を計算したり、各種グラフの縦軸や横軸を設定して所望のデータをグラフ上に表示させたり、といった作業はほとんどマクロで自動化していますが、あまりに色んなことをやらせ過ぎたためなのか、はたまた Excelのバグなのか、ときどき自動終了してしまうのが悩みの種です。

 日々の天気予報データの収集とサイトへのアップロードは原則として毎日行い、実際の天気との比較や解析結果などの各種グラフのアップロードは原則として毎週末に行っています。さらに、月末には1か月分のデータをまとめ、結果をアップロードしています。各データにアクセスするための indexファイルは、手書きで更新しています


戻る


最終更新: 2021/03/01
連絡先: tf2