大阪市立科学館研究報告 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 年 度 科 学 研 究 費 補 助 金 (奨励研究)の助成を受けて行なったものである。
© Copyright 2025 ExpyDoc