消費電力測定
消費電力の測定に、EMETER II SET with RDU(Hyperion)を使っています。消費電力を見たり、最大最小平均の電力等をみるのに便利に使えるPCのソフトはついているんですが、いちいち開いてみるのがめんどくさいのと、データのハンドリングも悪いので、いつもなら、Rでするんですが。。今回は久々に、Pythonでやってみました。
Anaconda
もういっぱいPython入っていて。。どれもこれもぐちゃぐちゃになっていたので、一回全部アンインストールして、Anacondaで入れなおしてみました(笑)
Anacondaもいろいろ進化していますね。Jupyter labも良くなったとの噂なので、今回は、LabでNoteとして使いながら、PandasのDataframeに入れていきました。
まずは、いろいろ試しながらできるのがいい点ですね。Rもそうだけど。。
データ列の名前を入れ替えたり、データを切り出したりするのは、PandasのDataframe便利ですね。Rもそうだけど(笑)
フォルダ内のログを読み込んで、最大・最小・平均の値を出して、グラフを出す
さくっと作ってみました。
import pandas as pd import os import glob %matplotlib inline import matplotlib as mpl import matplotlib.pyplot as plt #folder set file_path="ファイルのフォルダ名を入れてくださいませ" os.chdir(file_path) #filename d_path = '*.log' f_namelist1 = glob.glob(d_path) #read WattHourMeterData fname=f_namelist1[27] df=pd.read_csv(fname) #Cut and beautify data df2=df[['Volts', 'Amps ','MaOut','Alt ', 'hh:mm:ss','TempA']] df2=df2.rename(columns={'Volts':'Volt'}) df2=df2.rename(columns={'Amps ':'Amp'}) df2=df2.rename(columns={'Alt ':'Alt'}) df2=df2.rename(columns={'hh:mm:ss':'Time'}) df2=df2.rename(columns={'TempA':'Temp'}) df2['Watt']=df2.Volt*df2.Amp df2=df2[0:len(df2)-1] #最後の一行がおかしいことが多いので削除 #最大最小平均値の表示 print(fname,'\nMAX\n',df2.max(),'\nMIN\n',df2.min(),'\nAverage\n',df2.mean()) #3m以上飛んだ所のデータ表示 #df2[df2.Alt>3].plot(subplots=True,x='Time',figsize=(12,10)) df2.plot(subplots=True,x='Time',figsize=(12,10))
df2.Alt>5とかで指定できるので、楽にいろんなところで取り出したりできますね。
【mavlogdump.py】ArdupilotやAPMのBinログ・ファイルを可読性のあるファイルに落とす【MavLink】
のデータと合わせるのは、Voltで見るのがいいか?Altで見るのがいいかな?
Hyperion EmeterII のSoftware類
Aircraftさんが全部いろいろ揃えてくれていたんですが。。今はなくなってますね。
EmeterII Suiteは、こちら
他のHyperionのソフト類はこちらのページからダウンロードできるみたいです。Manualはまだ改定されていないようですね。。
https://hyperion-world.com//resources-info
コメントを残していただけるとありがたいです