スマートメーターの30分電力値をPythonで可視化してみた
Abstract
取得したでんき家計簿の30分電力データを、Python+plotlyで可視化・分析してみた。
Introduction
以前の記事では、でんき家計簿からスマートメータで計測された30分電力値を取得した。 そのデータを可視化して、どんなことが読み取れるのか分析してみる。
ただ、この記事( 配達空振り、わずか2% 電気使用量でAIが在宅予測 :日本経済新聞) にもあるように、むやみに公開するとプライバシー・セキュリティ上の懸念がある。 万が一を考え、今回は友人に頼んで古めのデータをサンプルとして取らせてもらった。
Setup and Results
読み込むファイル形式
今回読み込んだのは、以前の記事で作ったcsvファイル。 日付と電力値(30分刻み、48データ)が一行になっている。
2016-11-14 ,2.5 ,2.5 , ... ,0.2 ,0.2 2016-11-15 ,0.1 ,2.3 , ... ,0.2 ,0.2 ...
プロットする内容
なるべく人間が全体像を俯瞰できるように、ヒートマップでプロットする。
コード
import pandas as pd import datetime from plotly.offline import iplot, init_notebook_mode import plotly.graph_objs as go df = pd.read_csv("./usage30min.csv", header=None) df.columns = ["date"] + [datetime.timedelta(hours=i*0.5) for i in range(48)] df["date"] = pd.to_datetime(df["date"]) df.set_index("date", inplace=True) init_notebook_mode(connected=True) data = [ go.Heatmap( x = [str(x)[0:-3] for x in df.columns], y = df.index, z=df.values.tolist(), zmin=0, zmax=1.5, colorscale='Viridis', ) ] layout = go.Layout( title = "power usage [kWh]", xaxis = { "title":"Time", }, yaxis = { "title":"Date", }, width=600, height=800, ) fig = {"data":data , "layout": layout} iplot(fig)
実行結果
横軸が時刻、縦軸が下から上へ新しくなる日付になっており、色の濃さで使用電力(kWh)を表している。
赤い矢印は説明のために後から追加したもの。
- 特徴的な、夜中から朝方にかけての毎日の大電力消費。 こんな電力を必要とするのは電気を熱に変えるような場合くらいで、時間的に見てエコキュート?
- 冬場の昼間にも黄色い1kWhを超えるような時間帯が散発している。炊事の湯沸かしやシャワー?
- 昼間に電気を使っているので、少なくとも一人暮らしや共働き世帯ではない。
- 夏場の夜間大電力消費時間が短くなっているのは、暑くてお湯を使う頻度が下がるから? (赤線カッコ部分)
- 朝食・夕食時間帯にも電力消費が上がっている(縦赤矢印部分)。ガスではなくIH?
- 夏場は昼夜通して0.8 kWhくらいを消費している。エアコンか?夜間も消さずに点けておくタイプらしい。
- 所々電気を全く使っていない日がある(赤横矢印部分)。正月やGWと一致する日もあるので、泊りがけで外出していた可能性が高い。
Conclusion
週ごとの傾向や詳細を見始めたら、家族構成や曜日ごとの外出時間までわかってしまいそうで分析をやめといた。 スマートメーターで在宅判断+配送効率UPという記事があったが、 30分値ですら思いの外に様々なことが推測できてしまい怖さすらある。
ただ、これを見ながら夜間湯沸かし量や料金契約の最適化をやったら、結構電気代安くなんじゃないかなとも思った。