オープンデータ(東京都の降雨量)を DataSpiderで読みこんでみよう

Avatar
dstn


開発部の渡辺です。

今回は、 前回の記事に引き続いて、オープンデータを実際にDataSpiderで取得してみることにします。

オープンデータを使ってみよう:東京都が公開している降雨量データ



今回は例として、東京都建設局河川部が提供している、東京都の河川の水位と降雨量の情報を読みこませてみることにします。

東京都 水防災総合情報システム
http://www.kasen-suibo.metro.tokyo.jp/im/tsim0101g.html

提供されているデータは、東京都の河川の水位について各水位観測所ごとのデータと、降雨量について東京都の降雨観測所ごとのデータです。今回はこのうち、過去の降雨情報を読みこんで利用することにします。

過去のデータが提供されているページ
http://www.kasen-suibo.metro.tokyo.jp/im/other/tsim0110g.html

ただ読むだけでもデータの加工などが必要になる



csvで提供されているのだから、単に読ませるだけでしょ?と思われるかもしれません。しかし、オープンデータは特定の人の特定の用途に合わせて提供されているわけではありません。実際にデータを利用しようとすると、簡単なことをしたいだけでもデータの読ませて加工する手順が必要になることがあります。

では、実際に降雨量データを読みこませて使ってみることを考えてみましょう。やみくもに読ませても仕方がありませんので、目的を設定してみて考えてみましょう。

あなたは新宿の、とある店の店主だとします。そして、天候(降雨データ)と販売データを組み合わせて分析して経営戦略を考えるのに役立てたいと思っています。そして、過去の新宿の降雨量と過去の販売実績データを組み合わせて分析を行いたいと思っている、とします。

・月ごとに「年月日, 時刻, 降雨量」の形式で新宿の降雨量データがまとめられたcsvデータが欲しい
・上記の形式に出来れば、Excel上でPOSデータのCSVとあわせて自分で簡単な分析もできるし、ITに詳しい担当者を呼んで来ればBIツールに読ませてレポートを作ってもらうこともできる

一方で、東京都が提供しているデータの形式はどんなものかというと、以下のようなものです。

・yyyy年mm月dd日のデータが、「http://www.kasen-suibo.metro.tokyo.jp/im/other/Tokyo_Uryo10min_yyyymmdd.csv」のURLにて一日単位ごとに公開されている。
・データ形式はCSVで、「時刻, 観測所名, 降雨量」で東京都全ての観測所のデータが10分刻みで記録されている(例:19:40,八王子,4)

店主が欲しいのは新宿の降雨量を一か月単位でまとめたものです。しかし東京都は、一日ごとに東京都全域でデータをまとめています。欲しい形式ではデータの提供がなされていないので、データの加工が必要なことがわかります。

よって、一日ごとにデータを取得した後、新宿のデータだけをフィルタして抜き出し、さらに日付情報を追加した上でデータを一つにまとめなければなりません。

データを連携させたいけれどもデータの形式が望ましい形とちょっと違う、このような状況とは、まさにDataSpiderの出番と言える状況です。このようにオープンデータの処理では、データ連携ツールが活躍する状況が多くあると考えられます。

では実際にデータを読みこんでみよう



それでは、実際に降雨量をDataspiderを使って読みこみ、新宿の降雨量だけを抜き出して任意の期間でまとめたCSVに吐き出せるようにしてみましょう。

以下が完成したスクリプトです。
rainfall1


スクリプトは簡単に作れるものとなっています。

・「初期設定」では、読み込みを開始する年月日と、読み込みをする最終年月日、そしてデータを読みこむ観測所の場所(ここまでの例では「新宿」)を設定します。

引き続いて、「繰り返し(条件指定) 」でデータを一日分ずつ読みこむ処理をしています

・「降水量OpenData取得」では、降雨データをダウンロードしています。
・「降水量CSV読み込み」では、ダウンロードしたデータを読みこんでいます。
・「読みこみデータのフィルタ処理」では、データをフィルタしています。
・「結果ファイルへの書き込み」では、結果をCSVに書き出しています。
・「日付を一日進める」では、読み込み終了日かどうか判定しています。

それぞれの詳細は以下のようになっています。

「初期設定」では、読み込みを開始する年月日と、読み込みをする最終年月日、そしてデータを読みこむ観測所の場所(ここまでの例では「新宿」)を設定しています。
rainfall2


「読みこみデータのフィルタ処理」では、読みこむ場所のデータだけフィルタしています。
rainfall3


「日付を一日進める」では、取得する日付を一日進め、読み込み終了日かどうかの条件判定をしています。
rainfall4


このように、データの読み込みと加工をノンプログラミングで実現できました。ここから、スクリプトをどんどん作りこむことも簡単にできます

データをここまで加工できれば、降雨量データをBIツールで分析させるにしても、Excel上で自分で色々計算させるにしても、そしてDataSpider上でさらにいろいろな処理を作りこむしても、もう難しいことではありません。

この処理を定期的に自動実行させたり、他のデータと組み合わせたり、さらにデータを加工したり、他のシステムにデータを引き渡したりすることも、同じようにノンプログラミングに作りこむことが出来ます。

様々な活用ができる



過去の降雨量と販売データが対照できると、どのような分析が可能でしょうか?例えば、雨の日に売れる商品と売れない商品を見極めることができるようになります。

天気予報から、次の日に売れるものが事前に判断できるようになりますし、逆に、売れないもの=課題も明らかになりますから、雨の日に売れないものをなんとかして売れるようにできないか取り組むこともできるようになります。

このようにデータを自在に加工したり組み合わせたりできれば、色々な可能性を検討できるようになります。今回は降雨量のデータですが、他にも気温や、交通機関の状況などのデータが取れるようになれば、これらを組み合わせてさらにいろいろなことが出来るでしょう。また、降雨量のデータから店の利用者にメールを送信するなど、分析だけでなくアクションをさせることもできます。

様々なオープンデータが提供される未来においては、さまざまなデータを連携させて利用できることが求められるようになるでしょう。また、そのようになった未来では様々なデータを用いた判断の試行錯誤が、速度感を持って行えることが求められるようになるでしょう。

ぜひともオープンデータの時代にもDataSpiderを活用いただければと思います。

コメント

ログインしてコメントを残してください。

Powered by Zendesk