建築設備のデータとは
建築設備のエネルギーデータとは、主に電力量や水量、ガス量などのデータを扱います。
これらのデータはビルエネルギマネジメントシステム(BMS)というシステムに、
csvやデータベースで保存されていることが多いのですが様々な問題を抱えています。
これらのデータの多くはセンサーからデータを取得します。
センサーのアナログ値をデジタルに変換するため、間に噛ませる機器によっては誤差が大きかったり、
劣化が激しかったりするため、情報の正確さが担保できない場合が非常に多く見受けられます。
建築設備のデータ分析における問題点
私のような建築設備のエネルギーデータを分析している人間にとって、下記のような問題点はデータ分析の効率や質を悪化させる大きな問題だと考えています。
- 人的ミスによるデータの不正確さ
- 建物オーナーのデータに対する意識の低さ
- データ分析者の古い体制
1.人的ミスによるデータの不正確さ
1.はアナログデータをデジタルに変換する場合の倍率を間違えたり、本来記録されるべきデータがなかったり、
カラム名と実データが違ったりと様々です。
こういったデータに関わる部分のセンサーはゼネコンやサブコンの下請けの下請け的な業者が設置します。
監督しているとはいえ、すべて目が行き届くわけではないため、頻繁に発生する事例です。
2. 建物オーナーのデータに対する意識の低さ
2.は蓄積されたデータは大量にあるにも関わらず(正確さなどは別として)データを活用していないオーナーが多いということです。
日々の業務に追われて、蓄積されたデータを活用するところまで手が回らないのが実状かと思われます。
ただ、こう言った物件は、総じてゼネコンサブコンに言われるがままの設計でスタートし、
無駄にエネルギーが使われていることに疑問を抱かない状態のまま改修が行われていることが見受けられます。
3. データ分析者の古い体制
3.は主に省エネ業者に多いのですが、建築設備業界では、Excelにとらわれている人が非常に多い。
汎用性があり、扱いやすいのですが、Excelで扱えるデータ量を超えているにもかかわらず、無理やりExcelでデータを並べてみたり、
これがStandardだと言わんばかりに、新しい技術から目を背けている方が多く見受けられます。
仕方のないことかもしれませんが、大量のデータをExcelで操作するにも限度があります。
Python(pandas)
これらの問題解決のために、Pythonという選択肢があります。
1.が原因の場合、デジタル変換の倍率がおかしい。もしくは、数値が入れ替わってる場合が多く見受けられますが、Pythonでは下記のようなコードで一瞬で見つけられます。何万レコードのデータでも下記のコードで一瞬でグラフ化まですることができます。(下記の例では、赤線の値が異常値です。)
Data = pd.read_csv(r'Data\Data.csv',encoding='Shift-JIS',header=0,skiprows=[1],parse_dates=[0],index_col=[0])
EP = Data[Data.columns[Data.columns.str.contains('電力量')==True]]
plt.plot(EP)
plt.ylabel('電力量[kWh]', fontproperties=fp)
2.の場合、大量のデータをとりあえず渡されて分析して?という依頼が多いかなという印象です。
まず、データ分析におけるオーナーの意識が低い場合は、細かく分析する必要はなく、大枠を示して、可能性の示唆だけすればオーナーの意識も少し変わるかと思います。そんな場合にざっくり分析するなら下記のようなコードを書けば大枠は示せるかと思います。
Data = pd.read_csv(r'Data\Data2.csv',encoding='Shift-JIS',header=0,skiprows=[1],parse_dates=[0],index_col=[0])
EP = Data[Data.columns[Data.columns.str.contains('電力量')==True]]
#リサンプルして、月合計値にしてグラフ化
EP_M = EP.resample('M').sum()
EP_M.plot.bar(x = EP_M.index)
3.の場合、Excelで扱いにくいデータを数行のコードで分析+可視化することを目の前で見せてることでクリアできると考えています。ただ、プログラムを組んだことのない人にとってはハードルは高いようです。しかし、これから多種多様なデータを扱うためには機械的に処理させる方法は学んでおく必要があると思います。下記のコードはそれぞれがグラフを表すコードです。何行のデータだろうがDataframeに読み込んでしまえば各グラフ1行で書けます。(意味があるかは別ですが)
#面グラフ
EP_M.plot.area(x = EP_M.index)
#横棒グラフ
EP_M.plot.barh(x = EP_M.index)
#線グラフ
EP_M.plot.line(x = EP_M.index)
まとめ
新しい技術は取り入れるべきで、古き慣習がよい場合もありますが、時代の流れを汲んでいかないと
いつまでも建築業界はITから遅れている業界のままになっていくかと思います。
新しい技術は使っていきたい。そう思った今日この頃でした。