From 9cba6dfac186b2cb4d558084fcd7bc5688002745 Mon Sep 17 00:00:00 2001
From: VulcanixFR <vulcanix.gamingfr@gmail.com>
Date: Wed, 7 Aug 2024 15:06:30 +0200
Subject: [PATCH] Tweak database

---
 tools/database.py              |  2 +-
 tools/predictive_indicators.py | 34 +++++++++-------------------------
 2 files changed, 10 insertions(+), 26 deletions(-)

diff --git a/tools/database.py b/tools/database.py
index dd44de8..93adf88 100644
--- a/tools/database.py
+++ b/tools/database.py
@@ -347,7 +347,7 @@ class Database:
 
             # Format columns
             print(prefix, "Formatting file", f.file_name, end=" ... ")
-            Extractor.auto_fit_trace_positions()
+            # Extractor.auto_fit_trace_positions()
             Extractor.apply_correction()
 
             # Get the output
diff --git a/tools/predictive_indicators.py b/tools/predictive_indicators.py
index e90c197..b8c78f4 100644
--- a/tools/predictive_indicators.py
+++ b/tools/predictive_indicators.py
@@ -25,7 +25,8 @@ COMPUTED_COLUMS = [
     "Class",
     "Date",
     "Axis",
-    "RMS", "KMeans", "PeakFactor", "MeanTemperature"
+    "RMS", "KMeans", "PeakFactor", "MeanTemperature", 
+    "Health"
 ]
 # for m in range(1,7):
 #     for v in [ "RMS", "KMeans", "PeakFactor", "MeanTemperature" ]:
@@ -44,26 +45,7 @@ def compute_run (DB: Database, robot: int, run: int, t0: int, date: str, next: C
 
     data = DB.robot(robot).by_run(run).run()
 
-    # Compute sub-arrays
-    subs: List[pd.DataFrame] = [ 
-        data[data["MovingMotor"] == m] for m in range(1,7)
-    ]
-
     runTime = t0 + mktime(datetime.strptime(date, "%Y-%m-%d").timetuple())
-    # Compute for whole experiment
-    # line = [ t0, 0 ]
-    for m in range(1,7):
-        sub = subs[m - 1]
-        c = sub[f"Current_A{m}"].to_numpy()
-        temp = sub[f"Temperature_A{m}"].to_numpy()
-        line = [ 
-            # *line,
-            runTime, runTime, 0, data["Class"][0], date, 
-            f"A{m}", RMS(c), kmeans(c), peak_factor(c), np.mean(temp)
-        ]
-        out.append(line)
-
-    # out.append(line)
 
     # Compute for each speed
     speeds = data['Speed'].unique()
@@ -72,21 +54,23 @@ def compute_run (DB: Database, robot: int, run: int, t0: int, date: str, next: C
     ]
     for i, s in enumerate(speeds):
         d = speed_data[i]
-        # time = d["Sample_time"].to_numpy()[0] + t0
-        # line = [ time, s ]
         for m in range(1,7):
             sub = d[d["MovingMotor"] == m] 
             time = d["Sample_time"].to_numpy()[0] + runTime
             c = sub[f"Current_A{m}"].to_numpy()
             temp = sub[f"Temperature_A{m}"].to_numpy()
 
+            rms, km, pf = RMS(c), kmeans(c), peak_factor(c)
+
+            # THE HEALTH INDEX IS COMPUTED HERE
+            health = rms - km - pf
+
             line = [ 
-                # *line,
                 time, runTime, s, data["Class"][0], date,
-                f"A{m}", RMS(c), kmeans(c), peak_factor(c), np.mean(temp)
+                f"A{m}", rms, km, pf, np.mean(temp),
+                health
             ]
             out.append(line)
-        # out.append(line)
 
     return out
 
-- 
GitLab