追記14/01/23: iPhoneアプリを公開しました
in one word...
明日の気象予報値(気温、気圧、降水、雲量など)に一番似ている過去の時間を検索し、その時撮られたベランダからの定点観測画像を表示することで、明日の天気を分かりやすく可視化する試みです。
明日の予報を過去画像から合成して可視化する (左端が5時、右端が21時) |
概要
GWなので色々作ろう第一弾です。最近は気象予報技術の進歩が目覚ましく、明日の天気予報ならばそこそこ信用できるようになってきています。
一方で、天気の伝え方はいつまでも進化がありません。
例えば明日の天気は「晴後曇、最高気温21℃、最低気温12℃、南の風やや強く」だそうですが、これだけ見ても明日の具体的なイメージは湧いてきません。
天気予報はよう分からん |
- 晴れってどれぐらい、いつまで晴れるの?
- 曇りって、花見が楽しめないぐらいに曇るの?日は射さないの?
- やや強い風ってなによ
もっと手っ取り早い方法として、今回は「過去の似た気象状態」の画像を合成することで明日の天気予報を分かりやすく可視化してみよう、という実験です。
方法
ステップ1: ベランダ定点観測写真データ
うちのベランダから武蔵国分寺公園に向けて2011年4月以降、ほぼ無間欠に30秒置きに写真を撮っています。
街の長期的な変化や・・・
予期していない気象イベント(黄砂)など・・・
色々なものが撮られてきました。
これと、その時の気象データを紐づければ、
どんな気象状況(天気、気圧、雲量・・・)の時に、
どんな景色(空模様、木のなびき方、明るさ・・・)か、
というデータが作れるわけです。
ステップ2: GSM全球数値予報データ
気象庁が6時間毎に発行する、地球を20kmグリッドに分け、先84時間の1時間毎の気象状況を予報したデータです。
内容としては:
- 気温
- 気圧
- 湿度
- 雲量(低層/中層/高層)
- 雨量
- 風向き/風力
(↓こんな感じ)
このデータから、過去のベランダ写真に気象状況の数値(9次元のベクトル)を割当て、
さらに明日の気象予報値を取得します。
ステップ3: Nearest Neighbourで似た状況を探す
次に、明日の各時刻における気象予報値(9次元のベクトル)と、それぞれ最もよく似た過去の瞬間を検索します。
今回は、KD木を使います。
木は時刻毎に別に作りましょう。
木は時刻毎に別に作りましょう。
検索時間はベンチマークしてませんが、一瞬です。
ステップ4: 合成する
合成といっても大したことするわけじゃありません。
こうやって一時間毎に並べてみたり:
明日の予報画像 |
ちょっと凝った出し方をしたりします:
明日の予報画像:左から右に向けて時間の流れを表す |
ちなみに、マッチングは時刻毎に行われているので、時刻によって持ってくる日が違ったりします。
冬なのに春なみの暖かい昼があったりすると、唐突に桜が咲いてたりもします。
冬なのに春なみの暖かい昼があったりすると、唐突に桜が咲いてたりもします。
分かりやすくなったか?
過去の日で、実際に撮影された画像と合成した画像を比べてみた
■2012/12/22 (雨のち晴れの日)
実測画像 |
|
実測 |
合成:朝は遠くに層雲が見えていて、 昼以降は気持ちのよい積雲が ポツポツしている感じは実装とそっくり。 |
■2013/02/06(朝は雪の日)
実測 |
合成:ちゃんと雪も再現できているのが喜ばしい (気温が低くて雨量が存在したから?) |
好きな天気ジェネレータ
まとめ
・こんなに少ない気象状況の数値をマッチングさせるだけでも、視覚的にそこそこ納得間のある景観予測ができた
・景色のどういう特徴にどういう値が効いているのかは要調査。
雪: 雨量+気温?(でも高層の温度までは特徴量に入れてない)
雲形: 雲量+気圧傾度+湿度?・他にどういう情報を入れたらより再現性が増すだろう?
・暇を見つけてウェブサービス化しよう。
他の分析エントリ
- 山手線リアルタイム混雑情報で遊んでみよう- 140文字の「重み」を言語毎に比較してみた
- 世界で一番住みやすい場所を計算してみた
- サイゼリヤの間違い探しが難しすぎたので大人の力で解決した
- 建物のWifiをホッピングして東京から大阪まで通信できるか
- Topcoderに一番有利な時間帯を調べてみた
- Wikipediaのデータで人生解析をしてみよう
- 「頭痛」を含むツイートと気圧の関係を調べてみた