その1_JSON形式のWebAPIを使ってPM2.5の測定値を自動取得させる。

指令:日々測定したPM2.5の値をWebで見たい

もともとは、「自社建屋に観測機を設置してから云々・・・」という希望の様子でしたが、
「観測機って近隣の役所にあるんじゃない?」的な会話になりまして、WebAPIの出番になりました。

調べると、環境省が作った「そらまめ君」というサイトを発見。
環境省大気汚染物質広域監視システムとのことでphpで書かれた自動生成サイト
なのですが、残念ながらWebAPIの機能提供はしてない様子。

で、いろいろ探したら
日本の全エンジニアに捧ぐ!現在公開されているAPI一覧【2013年版】
というサイトの「環境」項目に
環境省大気汚染物質広域監視システムAPIという名称を発見しました!

やった!

で、良く読んでみると「そらまめ君」のデータをJSON形式で取得できるAPIを
作ってくれた方がおる!(感謝感激です。。)ので、それを使わせていただきました。


「特定の観測地点での1週間分のデータ取得API」を利用しました。

やり方。
まずサンプルリクエストを確認。
SAMPLE REQUEST :
http://www49.atpages.jp/soramameapi/series?code=01101010&time=2013031306
次にパラメータを確認。
PARAM :
code = <observatory_code> : 観測所コード(上記APIで取得できます。)
time = <YYYYMMDDHH> : 取得データの起点日時(この日時から過去1週間分取得できます。)
はて?
phpでXML形式ではなく、JSON形式を取り込むって、どうやるのさ? で調べると、
こんなナイスな情報が。
「PHPでJSONを取得」

これら要点は、
file_get_contents でurlからファイルを取得して、
json_decode でJSON文字列をデコードして、配列化。
foreach で連想配列をぐるぐるまわす。
ということでした。で、以下できたソースです。

————————————————————————-

<?php
/**
* The Template for json形式API用-「そらまめ」http://soramame.taiki.go.jp/Index.php
* API 提供者 http://hachibucch.hatenablog.com/entry/2013/02/13/074702
* API Sample Request(特定の観測地点での1週間分のデータ取得API)
* http://www49.atpages.jp/soramameapi/series?code=01101010&time=2013031306
* JSON取得解析参考 http://billboardtop100.net/2011/09/json-php.html
*
* 測定局コード:44203070
* 測定局名称:中津総合庁舎
* 住所:大分県中津市中央町1-5-16
**/
//ベースURL
$baseurl = “http://www49.atpages.jp/soramameapi/series?code=44203070&time=”;

//今の時間
$ima = date(YmdH);

//リクエストURLの組立
$url = $baseurl.$ima;

//JSONファイルを取得
$json = file_get_contents($url,true);

//ファイルの取得確認
if( $json == false ){
echo “★そらまめAPIのサーバーはクジラ状態です★”;
return;
}
//取得ファイルをデコード
$obj = json_decode( $json );
//echo “<pre>n”;
//var_dump($obj);
//echo “</pre>”;
?>
<?php //連想配列から1件づつ表示。; ?>
<?php foreach( $obj->data as $i ): ?>
<?php echo $i->{‘YEAR’}; ?>年
<?php echo $i->{‘MONTH’}; ?>月
<?php echo $i->{‘DAY’}; ?>日
<?php echo $i->{‘TIME’}; ?>時の
<?php echo “PM2.5は&emsp;”.$i->{‘PM2.5’}.”μg/m3 です。”; ?><br />
<hr />
<?php endforeach; ?>
————————————————————————-
出た結果はこれ
2014年05月10日13時の PM2.5は 13μg/m3 です。
2014年05月10日12時の PM2.5は 11μg/m3 です。
2014年05月10日11時の PM2.5は 14μg/m3 です。
2014年05月10日10時の PM2.5は 20μg/m3 です。



お役立ち

もともとwebAPIを使って云々・・・は「WordPress星野さんの著書」で学んだものでした。が、
XML形式のWebAPIでした。今回はJSON形式も使うことができるようになりまして、嬉しい限りです。

WordPressプラグイン & WebAPI 活用ガイドブック

SNSでもご購読できます。

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)