ゲリラ豪雨も多いので

ここ数年、夏になるとゲリラ豪雨に遭遇するケースも多くあるのではないでしょうか?

そんなわけで、雷注意報の発令された都道府県を出してみました。

過去1時間で雷注意報の発令された都道府県

作り方は続きにて紹介しています。

 

今回は、気象庁のXMLからデータを取得し、内容を解析、さらにいつものようにGoogle Chartで地図を作ります。

本来、ブラウザでアクセスされた際にリアルタイムで気象庁XMLを参照すればよいのですが、レスポンスに少々時間がかかります。
ブラウザで5秒も10秒も待たされてはとても見られるサイトにはならないので、以下の2段構えにします。

  1. 定期的に気象庁XMLにアクセスしてデータを取得、ファイルに保存するフロー
  2. 保存してあるファイルからマップを作成するフロー

1.気象庁XMLを定期保存

1つ目のフローから早速見てみましょう。

過去時間の注意報を取得、前回実行分のファイルを消す、気象庁XMLにアクセスし、結果を取得

気象庁XMLは2段階でアクセスする構造になっています。
まず、以下のサイトに検索条件を含んだクエリーを発行し、一覧を取得します。

今回は、過去1時間とする条件と、警報、注意報のみを取得するようにしました。 条件の詳細は、以下のサイトにリファレンスが載っています。

ここで取得した情報には、詳細情報へのリンクが一覧として含まれていますので、そのリンクの件数を繰り返して取得します。
順次実行しても良いのですが、時間がかかるのでタイマーコンポーネントを使ってサブフローを呼び出すことにしました。
これで並行した呼び出しとファイル保存を行っています。

2.ファイルを読み込んでマップ表示

さて、2つ目のフローですが、以下の様な感じです。

フォルダの中のXMLを取得し処理を繰り返す、XPathを使ってエリアコードと注意報の種類を取得、GoogleChartのURLを生成、画像として取得

ファイルとして保存したXMLの件数分繰り返すようにしています。 この際にはファイル名に「*.xml」のようにワイルドカードを指定するだけでOKです。

続いて、XPathを使ってデータからエリアコードと雷注意報の有無を調べます。

エリアコードの方は以下の様なXPathになりました。

/jmx:Report/a:Head/a:Headline/a:Information/a:Item/a:Areas/a:Area/a:Code

データの中には、もう少し詳細な地域情報も入っていますが、今回は都道府県レベルでOKなので、Headlineの下だけを取得しています。

雷注意報の方ですが、こちらは以下のようにXPathを作りました。

boolean(/jmx:Report/a:Head/a:Headline/a:Information/a:Item/a:Kind[./a:Code = '14'])

Codeの値が14のKind要素があればTrue、なければFalseが返されます。

これらの情報を元に、Google Chartを使ってマップを作成しています。
なお、今回は画像として返したかったため、古いタイプのGoogleChartを利用しましたが、HTMLやJavaScriptの利用ができれば新しいタイプのものも利用できます。



クラウド版

使い方いろいろ!
手ぶら de ASTERIA Warp
体験 5日間

サーバー準備の手間なくデータ連携ツール「ASTERIA Warp」の
全ての機能を5日間お試しいただけます。

今すぐ体験してみる 書籍の詳細についてはこちらをご覧ください。
基礎と実践 使い方マニュアル
著者:森 一弥

著者:
森 一弥

ASTERIA Warpシリーズ担当のシニアプロダクトマネージャー。ホワイトペーパーの執筆のほか、開発経験を活かしたASTERIA Warpを使ったデモ作成等を実施。

「ASTERIA Warp、データ分析、クラウド、業務効率化、最新技術」人気!ホワイトペーパーダウンロード受付中!今すぐチェック
ASTERIA Warpと色々つないでみた特集!記事はこちら>

ASTERIA Warp 関連サイトのご紹介

X ASTERIA Warp Developer Network(ADN)サイト

技術情報をお探しの方

ASTERIA Warp Developer Network
(ADN)サイト

ASTERIA Warp製品の技術情報やTips、また情報交換の場として「ADNフォーラム」をご用意しています。

X ASTERIA Warpユーザーグループ(AUG)

ASTERIA Warpデベロッパーの方

ASTERIA Warp オンラインコミュニティ
ADN slack

ASTERIA Warpデベロッパー同士をつなげ、技術情報の共有やちょっとしたASTERIA Warpの疑問解決の場とすることを目的としたコミュニティです。

X ASTERIA Warpユーザーサイト

ASTERIA Warpユーザーの方

ASTERIA Warpユーザーサイト
Login

製品更新版や評価版のダウンロード、各種ドキュメントのご提供、また 技術的なお問合せもこちらで受付ています。

X ASTERIA Warpパートナーサイト

ASTERIA Warpパートナーの方

ASTERIA Warpパートナーサイト
Login

パートナーライセンスの発行や各種ドキュメントのご提供をしています。

ページ先頭へ