はじめに

東日本大震災により被害にあわれた皆様に心よりお見舞い申しあげるとともに、犠牲になられた方々とご遺族の皆様に対し、深くお悔やみを申しあげます。何もできない非力な自分が悲しいですが、皆さん同様に少しでも力になれればと思い、日々できることを頑張っていこうと思っています。

Yahooで提供され始めた電力使用状況API

東日本大震災以降、私も計画停電の情報確認や放射性物質の飛散状況の確認のため、より一層ネットを見るようになりましたが、計画停電が実施された頃からYahoo Japanのトップページには東京電力の電力使用状況がグラフ化されて表示されるようになりました。

yahoopowerusage.jpg
電力表示が出るようになったYahooのトップページ

さすがはYahoo Japanだと思っておりましたが、グラフを表示するだけでなく、そのデータを電力使用状況API として公開もしてくれました。

そこで、さっそくこれを使って電力使用状況をグラフにしてみました。

APIデータを使ってグラフを作成

作り方はいつもと同じです。

・APIにリクエストクエリを投げる

・返ってきたレスポンスデータ(XML)をパース

・取得したデータを使ってグラフを作る

流れとしては、ショッピングAPIを取得したときと同じ方法です。

APIのリクエストURLにデータを投げる

http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage?appid=<あなたのアプリケーションID>

レスポンスデータからデータを取得

レスポンスデータから、電力使用量、最大供給量などのデータが取得できます。

<?xml version="1.0" encoding="UTF-8"?>
<ElectricPowerUsage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:jp:setsuden:latestPowerUsage" xsi:schemaLocation="yahoo:jp:setsuden:latestPowerUsage http://setsuden.yahooapis.jp/v1/Setsuden/latestPowerUsage.xsd">
  <Area>tokyo</Area>
  <Usage unit="kW">34100000</Usage>
  <Capacity unit="kW">38500000</Capacity>
  <Date>2011-02-13</Date>
  <Hour>15</Hour>
</ElectricPowerUsage>

pChartを使ってグラフ化

せっかく取得したデータですので、これをYahoo Japanのようにグラフ化して表示してみます。そこでPHPのチャートライブラリpChartを使ってみました。

pChartは、phpにGDライブラリが組み込んであれば、かなり簡単に折れ線グラフや、棒グラフ、円グラフの描画をすることができるライブラリです。

pChartのページにサンプルコードがたくさん用意されているので、使うグラフのサンプルコードを見て、データセットの部分の数値配列、項目配列に、APIで取得したデータを入れれば完成です。

// Dataset definition
$DataSet = new pData;
$DataSet->AddPoint(array(10,2,3,5,3),"Serie1");
$DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May"),"Serie2");
$DataSet->AddAllSeries();
$DataSet->SetAbsciseLabelSerie("Serie2");
power_usage.jpg
電力使用量グラフを表示してみました

一連の処理をcronでバッチ処理

pChartで作ったグラフ画像はpng形式にして出力ができます。APIに都度接続するのもリソースの無駄ですので、一連の処理をcronを使ってバッチ処理するようにしてみました。


おわりに

一日も早い復興を願いつつ、日々節電への協力をしていきましょう。