TEXT/YUBASCRIPT

Web開発とか生物学とかTwitterとかの話題を適当に書いてる

総務省の「次世代統計利用システム」を使ってみた

はじめに

以前「福島県の人口推移」という、福島県の人口推移を年齢・地域など別にグラフ化するツールを作りました。

このデータ自体は福島県庁のサイトから拾ってきたものなんですが、データがExcel形式であったため、1個1個開いてマクロで抽出してCSV化するというひどく単調な作業を強いられる事となりました。なんでExcelなんだよ!CSVを置けよ!と嘆いたものです。

で、今月のはじめに総務省から「次世代統計利用システム」というのが出来たので使ってみんせ、という発表がありました。「リクエストされたデータをJSON/XML形式でレスポンスする」というごく一般的なAPIで、どのへんが「次世代」なのか見当も付きませんが、常に時代の最後尾を行く日本のお役所としてはたしかに次世代に到達したのかもしれません。

総務省|統計データにおけるAPI機能の試行運用開始

利用の流れ

ただデータを拾うだけのAPIなのに、いっちょまえにアプリケーション登録を必要とします。CSVファイルをぽんと置いときゃ済むような気がするのですが、そういかないのは所謂お役所事情的なものでしょうか。

1) 次世代統計利用システムのWebページにアクセスします。

2) 利用規約を読みます。まあ注意すべき点といえば第9条のクレジット表記のことでしょう。

利用者は、本システムを利用したサービスを提供する場合には、統計センターが別途定める方法により、本システムから提供した情報の出所等を明示するものとします。
要するに、これを使ってWebサービス等を作る場合、以下の1文を明記しておけとのことです。
このサービスは、次世代統計利用システムのAPI機能を使用していますが、サービスの内容は総務省統計局又は独立行政法人統計センターによって保証されたものではありません。

3) 利用登録をします。メールアドレスを入力すれば仮登録が行えます。僕がやってみたら10分くらいでメールが来ました。指定されたURLに移動し、以下の情報を記入すれば登録完了です。

  • パスワード
  • 氏名
  • 勤務先(学校)名
  • 部署(学部)名
  • 利用目的
利用目的は「ビジネス」「学術利用」「公的機関における利用」「個人的な利用」「その他」からの選択式です。僕は「個人的な利用」にしておきました。

4) ログインして「アプリケーションIDの取得」ページへ移動。アプリ名とURLを適当に入れれば、すぐにIDが発行されます。

5) データを取得します。取得方法はHTTP/GETで、データの形式はXMLまたはJSONです。(これ以外にもSDMX、LODといったデータ形式の提供予定があるそうです。)

データは全て「統計表」と呼ばれる形式で管理されているので、まずこの統計表のリストを呼び出します。リクエストURLは以下のとおり。

http://statdb.nstac.go.jp/api/1.0b/app/getStatsList?(パラメータ)
パラメータには先程取得したアプリケーションID、および幾つかの絞り込みパラメータを指定します。例として「searchWord」で検索キーワードを指定します。(xxxxの部分を自分のアプリケーションIDにする)
http://statdb.nstac.go.jp/api/1.0b/app/getStatsList?appId=xxxxxxxxxxxxxx&searchWord="推計人口"
このように指定すれば、「推計人口」に関する統計表のリストがXML形式でレスポンスされます。リストのうち1個を拾うとこんな感じ。 <LIST_INF id="0003080162"> <STAT_NAME code="00200524">人口推計</STAT_NAME> <GOV_ORG code="00200">総務省</GOV_ORG> <STATISTICS_NAME>人口推計 平成24年10月1日現在人口推計</STATISTICS_NAME> <TITLE no="001">年齢(各歳),男女別人口及び人口性比-総人口,日本人人口</TITLE> <CYCLE>-</CYCLE> <SURVEY_DATE>0</SURVEY_DATE> <OPEN_DATE>2013-04-16</OPEN_DATE> <SMALL_AREA>0</SMALL_AREA> </LIST_INF> ここで<LIST_INF id="0003080162">と指定された部分が統計表のIDです。次にこのID「0003080162」を用いて、統計表の中身を拾ってきます。
http://statdb.nstac.go.jp/api/1.0b/app/getStatsData?appId=xxxxxxxxxxxxxx&statsDataId=0003080162
これで統計表の中身がXML形式で取得されます。JSONで取得したい場合はURLの一部を書き換えて
http://statdb.nstac.go.jp/api/1.0b/app/json/getStatsData?appId=xxxxxxxxxxxxxx&statsDataId=0003080162
とします。

使ってみた感想

けっこうレスポンスが遅いです。Twitter APIはだいたい1秒くらいなんですが、こいつは数秒待ちます。

とくに頻繁にデータ更新があるとも思えない(国勢調査とか5年に1度だし)ので、リアルタイムでデータを取得するWebサービス等を作る意味はほとんど無いと思います。統計表を一括取得して自分のサーバーにストックしておいて、定期的に更新をチェックする程度でいいでしょう。

そもそもCSVファイルをポンと置いときゃいいんじゃね...と思うのですが、そう思う人はこれのAPIを使って作った「統計くん」という個人製作のWebサービスを見ればいいと思います。

まあ「日本のお役所がExcelでない形式で統計データを公開し始めた」というのは実に大きな進歩だと思います。

ただ僕の欲しかった「福島県の、月別・地域別の人口データ」というのは置いてないようです。県内各地域の情報はやはり県の管轄でしょうから、国のシステムにはまだ載らないのでしょうか。いずれ各役所のデータがこういうシステムで一元管理されてくれるとありがたいですね。