2007年11月13日火曜日

気象庁の「気圧データ」が含まれるページを表示するためのブックマークレット - 前日の一時間ごとのデータを表示したい

1. 気象庁のデータを表示する方法

気象庁では、

において、特定の観測時期・地点のデータが公開されている。

 

気象データをブラウザで表示させる

気象データを、ブラウザで表示するには、手順を踏まなくてはならない。

例えば、

「一時間ごとの気圧の記録がされているページ」

を開くためには、

において、以下の順に操作を行う。

  1. 都府県支庁の選択
  2. 地点の選択
  3. 年月日の選択
  4. 1時間ごとの値

071113気象庁の過去データ検索画面

この後、地図に表示させたい地点を選択する。地点を示すマークには複数の種類がある。赤の二重丸の地点には、気圧のデータが含まれる。

071113地点

ここで表示されるのは、前日の気象データ。

このように、目的のデータにたどり着くまでには、ブラウザ上で、クリックを何度もしなければならない。毎回、同じ場所のデータを表示させたい場合、同じ操作を繰り返す必要がある。

ブックマークレットを作成し、目的のページをワンクリックで開くようにしたい。

 

2. URL における地点情報

例えば、次の地点と日時における気象データを得たいとする。

  1. 「東京都」「東京」
  2. 「2007」「11月」「12日」

このとき、表示されるページの URL は以下の通り。

prec_no, prec_ch, block_ch という変数が含まれている。ただし、block_no が指定されていれば、目的のページを開くことができる。以下の URL で、上記の URL と同じページが表示される。

この block_no で示されている値は、「国際地点番号」。

気象業務・業界用語集」 によると、

気象台や測候所につけられている世界固有の地点番号。たとえば東京は47662など。プロの気象屋は国内の観測所の地点番号はたいてい言うことができます(天気図を1,000枚以上プロットし、解析していますからイヤでも覚えます)。

において、「Display All Stations In a Country」を「Japan」と選択する。これにより、日本における地点番号の一覧を閲覧することができる。

東京なら、以下の値。

Tokyo (47662, RJTD)

 

3. ブックマークレットを作成するための基本事項

ブックマークレットを作成するために、

を参考にした。

変数のスコープの問題は、とりあえず置いておく。ブックマークレットの基本的な書き方は、

javascript:文;

これを、HTMLの a要素の href属性に記述する。

<a href="javascript:文;">ブックマークレット</a>

スコープに関して、詳しくは以下を参照。

 

jsh で JavaScript の構文を確認

jsh を利用すると、ブラウザ上でブックマークレットの動きを確認できる。

 

Javascript について参考にしたサイト

JavaScript - Wikipedia に挙げられていた、

を読めば、言語の基本的なところは把握できる。

また、Core JavaScript 1.5 Reference - MDC を参考にして、どんなメソッドが組込まれているか確認できる。

 

4. ブックマークレットを作成する

ブックマークレットでは、例として、東京の昨日の気圧を表示させる。

コードの内容を以下に示す。

var blockNo = '47662';
var now = new Date();
location.href = 'http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_s1.php?block_no='
  + blockNo
  + '&year='
  + now.getFullYear()
  + '&month='
  + (now.getMonth() + 1)
  + '&day='
  + (now.getDate() - 1).toString()
  + '&view=p1';

上記の blockNo = '47662' が国際地点番号を表す。この値を変更することによって、地点を指定することができる。

後は、このコードを Compress javascript の powerful compress で圧縮する。

var blockNo='47662';var now=new Date();location.href='http://www.data.jma.go.jp/obd/stats/etrn/view/hourly_s1.php?block_no='+blockNo+'&year='+now.getFullYear()+'&month='+(now.getMonth()+1)+'&day='+(now.getDate() - 1).toString()+'&view=p1';

これに接頭辞に、

javascript:

をつけて、リンクとして作成。 → 昨日の東京の気圧 

これを右クリックして「お気に入りに追加」 ( Firefox なら「このリンクをブックマーク」) 。ブックマークを追加するときと、最初に選択するときに、セキュリティの警告が表示されるが無視をする。

 

5. 参考

6. 関連記事