-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.py
More file actions
67 lines (61 loc) · 2.24 KB
/
example.py
File metadata and controls
67 lines (61 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import pandas as pd
from android_runner_data import BaseEnergyDataSource
from android_runner_data.plotter import DataSourcePlotter
# Direct definition of the list of experiments
EXPERIMENTS = [
{
"name": "BatteryManager TikTok",
"source_type": "batterymanager",
"data_path": "datas/experience/data/Pixel3W/com-zhiliaoapp-musically/batterymanager"
},
{
"name": "WattoMeter TikTok",
"source_type": "wattometer",
"data_path_global": "datas/Resultat_campagne_Pixel3_avec/TikTok/output",
"data_path": "data/Pixel3W/com-zhiliaoapp-musically/wattometer"
}
]
EXPERIMENTS = [
{
"handle_duplicates": False,
"name": "[AVEC] WattoMeter TikTok",
"source_type": "wattometer",
"data_path_global": "datas/Resultat_campagne_Pixel3_avec/TikTok/output",
"data_path": "data/Pixel3W/com-zhiliaoapp-musically/wattometer"
},
{
"handle_duplicates": False,
"name": "[SANS] WattoMeter TikTok",
"source_type": "wattometer",
"data_path_global": "datas/Resultat_campagne_Pixel3_sans/TikTok/output",
"data_path": "data/Pixel3W/com-zhiliaoapp-musically/wattometer"
}
]
import logging
logging.getLogger("android_runner_data").setLevel(logging.INFO)
# Load experiments using the static method
data_sources = BaseEnergyDataSource.load_experiments(EXPERIMENTS)
# Summary table
summary = []
for ds in data_sources:
summary.append({
"Name": ds.name,
"Source": ds.source,
"File": ds.data_file_name,
"Start Time": ds.start_time,
"Duration (s)": ds.duration_seconds,
"Energy (Wh)": ds.energy_wh,
"Energy (J)": ds.energy_joules,
"Average Power (W)": ds.power_avg,
"Min Power (W)": ds.power_min,
"Max Power (W)": ds.power_max,
"Std Power (W)": ds.power_std
})
summary_df = pd.DataFrame(summary)
print("Summary of Experiments:")
print(summary_df)
# Plot power for all sources
plotter = DataSourcePlotter(data_sources)
plotter.plot_power(title="Comparison of measured power", show=False)
plotter.plot_fft(title="Comparison of FFT of power", show=False)
plotter.plot_fft(title="Comparison of FFT of power with frequency limits", show=True, freq_min=0.1, freq_max=10.0)