1Click飲みRomoCartTempescope色色[:iroiro]Other Projects

2013年4月29日月曜日

明日の天気を過去の似た日から合成して可視化してみよう

追記13/08/19: 本プロジェクトはSynthetic Skyとして公開しました。
追記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 (雨のち晴れの日)
実測画像
合成:朝は雨が降ってて
夕方から日が射しつつも高層雲が
出てる感じは再現できてる
 ■2012/08/13(全日晴れの日)

実測
合成:朝は遠くに層雲が見えていて、
昼以降は気持ちのよい積雲が
ポツポツしている感じは実装とそっくり。














■2013/02/06(朝は雪の日)


実測
合成:ちゃんと雪も再現できているのが喜ばしい
(気温が低くて雨量が存在したから?)

好きな天気ジェネレータ

気象状況を入力すると、似た時の景色が観察できるツール。気象の勉強に使えますかね。


高層雲だけの日
雲たくさん、雨降ってる日






低層雲だけある日
雲たくさん、風強い
雲のない、寒めの日















まとめ

・こんなに少ない気象状況の数値をマッチングさせるだけでも、視覚的にそこそこ納得間のある景観予測ができた
・景色のどういう特徴にどういう値が効いているのかは要調査。
 雪: 雨量+気温?(でも高層の温度までは特徴量に入れてない)
雲形: 雲量+気圧傾度+湿度?
・他にどういう情報を入れたらより再現性が増すだろう?
・暇を見つけてウェブサービス化しよう。



他の分析エントリ

山手線リアルタイム混雑情報で遊んでみよう
140文字の「重み」を言語毎に比較してみた
世界で一番住みやすい場所を計算してみた
サイゼリヤの間違い探しが難しすぎたので大人の力で解決した
建物のWifiをホッピングして東京から大阪まで通信できるか
Topcoderに一番有利な時間帯を調べてみた
Wikipediaのデータで人生解析をしてみよう
「頭痛」を含むツイートと気圧の関係を調べてみた


2013年4月6日土曜日

Short Note on the Use of Twitter for Demonstrating Link between Headaches and Low Barometric Pressure

Background


The link between headaches and barometric pressure is frequently stated in daily conversations, yet few studies have given conclusive evidence correlating the two.

  • Mukamal et al [1] studied records of 7054 patients seen over a 7 year period in a hospital emergency department with a primary discharge diagnosis of headache, concluding that high ambient temperature and low barometric pressure led to a significant increase in the risk of headache requiring emergency department evaluation
  • ...and many others to do with migrane tbf.
The scope of many of these studies is limited to the link between barometric pressure and severe migrane cases requiring medical attention, in part due to the availability of such medical diagnostic records.  No studies in the past have targeted cases of light to moderate headaches that previously would have passed unrecorded in medical data repositories.

Objectives
The purpose of this study is to determine the correlation between barometric pressure and cases of self-reported headaches.

Methods
Collection of headache self-reports
  We collected self reports of headaches by scraping tweets containing the keyword “頭痛” (headache) originating in Japan between 2013/3/23~2013/4/6 (13 days).  This dataset contains 262587 tweets, with about an average of 19000 headache tweets per day.  We were unable to collect data from some times within this period due to technical difficulties.  Fig1 shows the number of occurrence of headache tweets for every hour in the time period.  Note that the geographical distribution of tweets inside Japan is unknown, since most tweets do not contain location data finer than country level.


The number of tweets has a circadian rhythm that rises steadily from 5 in the morning to a peak at midnight (Fig2).  
By normalizing the raw number of tweets by this hourly average and standard deviation, we derive the normalized headache risk which, intuitively, tells us how much more headache tweets there were in that hour than usual.




Collection of barometric pressure data
  We collected barometric pressure data from the Japan Meteorological Agency website.  For our study, we use the hourly sea-level pressure data for Tokyo (lat: 35.69 lng: 139.76

We compare the absolute value of the barometric pressure with the number of tweets, as well as the change in the barometric pressure over a time window (the gradient of the pressure curve for the past n hours).  Fig.5 shows the differential over the past 12 hours, an arbitrarily chosen time window.




Results

We compare the barometric pressure with the normalized number of tweets for every hour, and calculate the correlation for n=262 points.
○ Absolute pressure vs normalized number of tweets
 We only found very weak negative correlation (R=-0.19, p<0.01). 

○ Change in pressure vs normalized number of tweets
  Comparing the change in pressure over the past 12 hours with the relative number of headache tweets, we found moderate negative correlation (R=-0.31, p<0.001)

Discussion+Results

  While the correlation is relatively low, this result suggests that increase in the occurrence of headaches is related to the decrease of barometric pressure, while it is less related to the actual value of the pressure.  These findings agree with previous findings[1].
  or something.


References
[1] Kenneth J. Mukamal, MD, Gregory A. Wellenius, ScD, Helen H. Suh, ScD and Murray A. Mittleman, MD, DrPH, Weather and air pollution as triggers of severe headaches, Neurology March 10, 2009 vol. 72 no. 10 922-927



他の分析エントリ

山手線リアルタイム混雑情報で遊んでみよう
140文字の「重み」を言語毎に比較してみた
世界で一番住みやすい場所を計算してみた
サイゼリヤの間違い探しが難しすぎたので大人の力で解決した
建物のWifiをホッピングして東京から大阪まで通信できるか
Topcoderに一番有利な時間帯を調べてみた
Wikipediaのデータで人生解析をしてみよう
本当に土日は雪が多いの?っていう話
明日の天気を過去の似た日から合成して可視化してみよう