From 38d45feeb650fd34a7ff95f58dc8835cae22b434 Mon Sep 17 00:00:00 2001 From: Georges Da Costa <dacosta@irit.fr> Date: Wed, 11 May 2022 21:39:32 +0200 Subject: [PATCH] Adds a tool to compute the total energy consumption --- expetator/add_energy | 59 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 expetator/add_energy diff --git a/expetator/add_energy b/expetator/add_energy new file mode 100644 index 0000000..9a8a24c --- /dev/null +++ b/expetator/add_energy @@ -0,0 +1,59 @@ +#! /usr/bin/python3 + +import sys +import scipy.integrate as integrate +from statistics import mean, median + +import expetator.bundle as bundle +import expetator.monitoring_list as monitoring_list + +import matplotlib.pyplot as plt + +def add_energy(basename, bundle_data=None, zip_fid=None): + if bundle_data is None: + bundle_data, zip_fid = bundle.init_bundle(basename) + + power = monitoring_list.read_bundle_list('power', bundle_data, zip_fid) + + energy = [] + delta = [] + mean_power = [] + med_power = [] + + for experiment in power: + expe_energy = 0 + expe_delta = 0 + expe_power = [] + try: + for power_profile in experiment: + tmp_delta = max(power_profile['#timestamp']) - min(power_profile['#timestamp']) + expe_delta = max(expe_delta, tmp_delta) + + expe_energy += integrate.trapz(power_profile['power'], x=power_profile['#timestamp']) + + expe_power.extend(power_profile['power']) + except: + pass + if expe_power == []: + expe_energy = -1 + expe_delta = -1 + expe_power = [-1] + + energy.append(expe_energy) + delta.append(expe_delta) + mean_power.append(mean(expe_power)) + med_power.append(median(expe_power)) + + bundle_data['energy'] = energy + bundle_data['time'] = delta + bundle_data['mean_power'] = mean_power + bundle_data['median_power'] = med_power + + return(bundle_data) + + +if __name__ == "__main__": + basename = sys.argv[1] + bundle_data = add_energy(basename) + + bundle_data.to_csv(basename+".csv", sep=' ', index=False) -- GitLab