気象庁XMLデータの活用

大阪市立科学館研究報告 25, 31 - 34 (2015)
気象庁 XML データの活用
江 越
航
*
概 要
気 象 庁 では、気 象 情 報 のより一 層 の利 活 用 を図 るため、XML フォーマット形 式 の電 文 データ配 信 試
行を開 始 している。これは、気 象 情 報 の多 岐 にわたる可 能 性を試行 し、利 活 用を促 進 することをめざして
実 施 されているものである。本 稿 ではこのデータの受 信環 境 の構 築 方 法 と、その後 の展 開 について報 告
する。
1.はじめに 
ニュースサイトやブログでは、HTML とは別に RSS 文
気 象 は大 気 中 に起 こる現 象 を扱 う自 然 科 学 の一 分
章を配布している。RSS リーダーによって、この RSS 文
野 であるとともに、毎 日 の生 活 に非 常 に密 着 した現 象
章 を 参 照 する こと で、更 新 の チェ ックを 行 う こと が でき
であり、科 学 館 としても取 り組 んでいきたいテーマであ
る。
る。科 学 館 における気 象 に関 する普 及 活 動 の状 況 に
また、RSS と同様の技術として Atom と呼ばれるもの
おいては 、別 報 に て記 載 し た 通 り である 。この 気 象 の
がある。これは、RSS に複数の互換性のないバージョン
普及 活動をさらに進 めるために、気 象 庁 XML データ
が並立していたり、仕様が複雑 であったりすることから、
の活用を考えた。
まっ た く 新 し い フ ォ ー マ ット と し て 考 案 さ れ た も の で あ
気象庁では平成 24 年 12 月 より、気 象 情 報 のより一
る。
層の利活用を図るため、XML フォーマット形 式の電文
RSS/Atom リーダーは、定 期的に更 新があるかを問
データ配 信 試 行 を開 始 している。これは、従 来 行 われ
い合 わせ、更 新 があった場 合 に 情 報 を 受 け取 る 仕 組
ている気 象 業 務 支 援 センター経 由 の即 時 情 報 とは異
みである。そのため、更 新 情 報を受け取るまでにタイム
なるもので、気 象 情 報 の多 岐 にわたる可 能 性 を試 行し、
ラグが発生するほか、更 新の有 無にかかわらず問い合
より一層の利活用 促 進を目 的としている。
わせを行うため、ネットワークやサーバーのリソースを消
本 稿 ではこのデータの受 信 環 境 構 築 、および応 用
の一例として、Twitter との連 携について述べる。
2.Web 更新情報 の入 手
気 象 庁 XML デ ー タ の 配 信 は 、 パ ブ サ ブ ハ バ ブ
(PubSubHubbub)と呼 ばれるインターネットのプロトコル
を利用して配信されている。
費する問題がある。
これを解決するための RSS/Atom を拡張した新プロ
RSS/Atom
①定期的にアクセス
発行者
(Publisher)
いる。RSS とは、見 出 しと内 容 情 報をメタデータ化と言う
形でまとめ、これらの情 報を XML ベースの言 語で記述
したものである。これを、Web サイト上に RSS 文 章として
記載しておく。
 *
大 阪 市 立 科 学 館 学 芸 グループ
e-mail:[email protected]
(Subscriber)
②更新されていたら読み込む
現 在 web の更 新 情 報を確 認するために、RSS(Rich
Site Summary / RDF Site Summary)が広く用いられて
利用者
PubSubHubbub
①更新通知
発行者
(Publisher)
ハブ
②フィード取得
利用者
(Subscriber)
③フィード配信
図1 PubSubHubbub の仕組 み
江越 航
トコルとして、PubSubHubbub がある。このプロトコルは、
発行者と受信者の間 に Hub を介 在させることで、更 新
情 報 をほぼリアルタイムで受 信 することを可 能 にするも
のである。
発行者が PubSubHubbub に対 応 したサーバーで更
新を行うと、更新通 知を Hub に publish する。Hub は更
新 通 知を受 けて、サーバーよりフィードを取 得 し、利 用
者 に 更 新 フィードを送 る。これにより、利 用 者 はほぼリ
アルタイムで更新 情 報 を受 信することができる。
3.データ受信環境 の構 築
Hub から送られてくる気 象 庁 XML データを受信する
ためには、Hub からの http による GET または POST を
処 理 する必 要 がある。このため、受 信 のためのサーバ
ー環境を用意 し、フィードの受 信 プログラムを作る必要
図2 テスト用 Hub 画面
がある。
サーバーについては、科 学 館 において現 在 各 学 芸
このページの Subscribe/Unsubscribe の項目から必
員 が 作 成 しているホ ー ムペ ー ジ用 の サー バー を 使 用
要 事 項 を 登 録 す る 。 Callback URL の 欄 に 作 成 し た
することとした。このサーバー上に php を利 用 した受 信
php プログラムのアドレスを、Topic URL の欄に、前 準
プログラムを作成する。
備 で 用 意 した テス ト 用 のブ ログ の URL を 入 力 する 。
次の php プログラムは、気 象 庁 XML 利 活 用 セミナー
Verify type を Synchronous、Mode を Subscribe として
で紹介されていたサンプルである。
「Do It!」ボタンを押すと、問 題 なければ特 に画 面に変
<?php
化は現れない。
(省略)
登 録 が正 しく行 われたかどうかは、下 の Subscriber
$method = $_SERVER['REQUEST_METHOD'];
Diagnostics の項目から調べる。Callback URL の欄に
if ($method == 'POST') {
作成した php プログラムのアドレスを、Topic URL の欄
$string = file_get_contents("php://input");
に、テスト用のブログの URL を入力して「Get Info」ボタ
$fp = fopen(date('YmdHis') . "_atom" . ".xml",
ンを押して現れる画面で、State が verified となってい
"w");
fwrite($fp, $string);
fclose($fp);
}
?>
れば、正しく登録されていることを示す。
フィードの発行
前準備で作成したブログを更新する。ただし
PubSubHubbub に対応していないブログでは、更 新 情
報が Hub に伝わらないので、次の Hub への publish 用
Hub から post されたフィードを受 信すると、これをフ
ァイルとして保存する php プログラムである。
ページにアクセスする。
http://pubsubhubbub.appspot.com/publish
これで気 象 庁からのデータを受 信 する前 に、本 当に
受 信が可 能か、次 の手 順 で php プログラムのテストを
行う。
前準備
発行 者の役 目 を果 たすための、Atom を発 行 するこ
とができるブログを準 備する。今 回は、Google のレンタ
ルブログサービス Blogger を利 用 した。
テスト用 Hub の登 録
テスト用 Hub として、Google が GAE(Google App
Engine)上 に立ち上 げているものを利 用する。これは
http://pubsubhubbub.appspot.com/subscribe
から利 用 できる。このページにアクセスすると、図 2のよ
うな画面が現れる。
図3 テスト用 Publish 画 面
Publish の項 目 の Topic URL にテスト用 のブログの
URL を入力し、「Publish」のボタンを押す。
すると Hub に更新 情 報が伝わり、さらに Hub から
気象庁 XML データの活用
Subscriber である php プログラムに更 新 情 報が伝わる。
タを節(ノード)としたツリー構造と考えることができる。
この結 果、今回の場 合 はサーバー上 に受 信 したフィー
php プログラムにおいて、このツリーにアクセスするに
ドがファイルとして保 存 される。サーバー上 に保 存 ファ
は、SimpleXML 関 数を使用することができる。例えば、
イルが作成されることで、php プログラムが動 作している
前項の気象庁からの配信 XML 文 章が変 数$string に
ことが確認される。
保存してある場合、
$feed = simplexml_load_string($string);
4.気象庁への登 録
前項の内容により php プログラムの動 作が確認され
$name = $feed->entry->author->name;
$content = $feed->entry->content;
たら、気象 庁に Hub への登 録 を依 頼 する。現 在は試
とすれば、$name に“大 阪 管 区 気 象 台 ”、$content
行 の段 階 につき、Hub へのユーザ登 録 は気 象 庁 側で
に“【大 阪 府 府 県 天 気 予 報 】”の文 字 列 を取り出 すこと
行うため、subscriber の URL 等とともに登 録 申請を行
ができる。このように XML 文章をパース(解析)すること
った。
によって、XML 文書内の必要な部分を検索することが
申請の際、登録を希 望する Atom フィードとして、
でき、さまざまな活用が可能 になる。
定時:天気概況など定 時 発 表されるもの
随時:警報・注 意 報など随 時 発 表されるもの
地震火山:地震・火 山に関 する情 報
その他:紫外線 観 測データ、生 物 季 節 観 測 報告 等
7.Twitter への配信
気 象 庁 XML データ活用の 1 つとして、Twitter への
配信を検討した。気象庁 XML データ、Twitter とも即
を選 択 することになっている。今 回 は定 時 のみ登 録 し
時性が特 徴と言えるため、相 性がよいと考えられるから
た。
である。Php プログラムから Twitter へは、以下の手順
登録申 請を行うと、数 日 後 に登 録 完 了 メールが届き、
Hub よりフィードが送 信されてくるようになった。
により配信 できる。
別サーバーへのデータ送信
気 象 庁 XML データを受 信 している各 学 芸 員 紹 介
5.気象庁からの配 信
気象 庁からは、随 時 、以 下 のような XML 文 章 で更
用 ホ ー ム ペ ー ジ サ ー バ ー は 、 twitter 投 稿 に 必 要 な
php のコマンドがインストールされていないことから、受
新情報のフィードが配 信されてくる。
け取 ったデータのうち、必 要 なものを別 サーバーに 転
<entry>
送した。転送は php による post 送 信を利用して
<title>府 県 天 気 予 報</title>
<id>urn:uuid:*****</id>
file_get_contents
($url, false, stream_context_create($options));
<updated>2015-04-13T01:35:24Z</updated>
の命令を実行することで行った。
<author>
TwitterAPI の登録
<name>大 阪 管 区 気 象 台</name>
準備として配信用の気 象 庁 XML Twitter アカウント
</author>
を作成した。php プログラムからこのアカウントにツイート
<link href="http://xml.kishou.go.jp/data/***.xml"
するには、twitterAPI を使用する。このために、Twitter
type="application/xml"/>
の Application Management の ペ ー ジ か ら 、 必 要 な
<content type="text"> 【 大 阪 府 府 県 天 気 予 報 】
Twitter アプリケーションの登録を行う。この結果、認証
</content>
情報となる 4 つのキーを作成することができる。
</entry>
具体的な情報については、XML 電 文 中に示されて
いるリンク先 に保 存 されているので、必 要 な情 報 をさら
Twitter への投 稿
以 上 の 準 備 を 経 て 、 php プ ロ グ ラ ム よ り 作 成 し た
Twitter アカウントに投稿することが可能になる。
にリンク先から取得 することになる。公 開 XML 電 文 の
実 際 の 投 稿 の た め に php プ ロ グ ラ ム 中 で は 、
保存期間は 24 時 間のため、必 要 な情 報は 24 時 間 以
TwitterOAuth と呼 ばれるライブラリを使 用 した。上 記
内に取得する必要 がある。
で作成した 4 つの認証キーとともに、つぶやく内容のデ
ータをまとめてライブラリを呼 び出すことで、Twitter に
6.XML 文章の利 用
投稿が行われる。
XML 文書は、開 始 タグに対 応 した終 了 タグがあり、
気 象 庁 XML データは、各地域の種々のデータが送
その間 にデータが記 載 されている形 式 になっている。
られてくるが、XML 文章をパースすることで、例えば大
開 始 タグと終 了 タグは、入 れ子 になった 構 造 をしてい
阪の天 気概況のみ Twitter でつぶやくことも可能にな
る場合もある。つまり XML 文 書は、タグとその間のデー
る(なお、今 回 作 成 したアカウントはテスト用につき、非
江越 航
公開設定にしている)。
情 報 を表 示 すると、より興 味 を持って見 てもらえるので
はないかと考えている。
ただし展 示 の 構 築 には 、ネ ットワーク 環 境 の 整 備 と
共に、気象庁 XML データの利用指針に基づき、気象
業務法に留意した内容にする必要がある。
9.おわりに
以 上 、主に気象庁 XML データの受信 環 境 構築、お
よび応用の一例として、Twitter との連携について述べ
た。このデータを利用することで、種々の新たな気象情
報の活用が考えられる。
またこのデータには、通 常 の天 気 予 報 や防 災 情 報
に加 え、植 物 の 開 花 日 や鳥 の初 鳴 きなど、生 物 季 節
観 測 のデータも含 まれている。このようなデータを蓄 積
図4 Twitter 投 稿 例
することで、広 い範 囲 での季 節 の違 いを感 じる仕 組 み
ができる可能性もある。
現 在 、データ受 信 環 境 が整 ったことから、今 後 デー
8.展示への活用 検 討
展 示 場 では現 在 気 象 コーナーとして、全 天 カメラで
撮影した科学館上 空 の雲の様 子や、国 土 交 通 省の X
バンド MP レーダーによる雨 量 情 報を表 示 している。こ
こに、天気概況として気 象 庁 XML の電 文データからの
タの加工方 法を確立し、さらに活用していきたいと考え
ている。
なお、本 研 究 は平 成 26 年 度 科 学 研 究 費 補 助 金
(奨励研究)の助成を受けて行なったものである。