METARの情報をTwitterに投稿する
METARとは「定期飛行場実況気象通報式(aviation routine weather report)」のこと*1。名前の通り定期的に報告される空港/飛行場の気象情報です。実物はこんな感じです。
RJTT 090400Z 04010KT 9999 BKN030 11/05 Q1013
何やらわかりにくいですが、これでも簡単な方です。複雑なものになるとこの2〜3倍の長さになります。航空機の航行には気象がとても密接に関わるので、気象情報を定期的に流しています。読み方は「METAR」でGoogle等で検索すれば解説しているところが引っかかるのでそちらを参照してください。
基本的にはパイロットを始め、航空機の運航に携わる人向けの情報ですが、飛行機の写真を撮る場合にも重要な情報となります。と言うのも、航空機は基本的に風の吹いてくる方向に離着陸するからです*2。使用する滑走路の情報は無線で発信されています*3ので、そちらを聞くのが確実です。が、METARで風向きや気象状況を知る事で、無線を聞く事ができない場合にも推測する事が可能です。
前置きが長くなりましたが、そんなMETARをアメリカのNOAA(National Oceanic and Atmospheric Administration)という期間がインターネット上で公開しており、羽田空港など日本の空港も含まれています。それをTwitterに投稿すれば便利かと思って、ちょこっとRubyで書いてみました。
#!/usr/bin/ruby -Ku # twitter METAR # Author: woinary (yoshiaki.y@awagumo.net) # Created at: 2008/01/08 require 'rubygems' require 'open-uri' require 'twitter' # set 4 letter code for target airport $cccc = 'RJTT' # set your twitter id and password $twitter_id = 'your_id' $twitter_pw = 'your_password' # proxy setting for twitter4r #Twitter::Client.configure do |conf| # conf.proxy_host = 'proxy_hostname' # conf.proxy_port = proxy_port #end $KCODE = 'u' $metar_url = "http://weather.noaa.gov/cgi-bin/mgetmetar.pl?cccc=#{$cccc}" metar_text = '' # get METAR open($metar_url) do |metar_result| metar_result.each_line do |line| metar_text = line if /^#{$cccc}.+$/ =~ line end end # write twitter unless metar_text.empty? then c = Twitter::Client.new(:login => $twitter_id, :password => $twitter_pw) s = c.status(:post, metar_text) end
以上で得た羽田空港のMETARの情報は下のURLで公開しています。1時間に1回更新しています*4。
このソースはAcriveScript ruby 1.8.6とTwitter4rで実装しています。特に権利などを主張する気もないので、適当に使ってください。