diff --git a/tools/database.py b/tools/database.py index 0b8a8c07d9f0ef5df60e27e984fd3c76f0dc95af..dd44de8c2b698092829941eb52f14a089d47cad2 100644 --- a/tools/database.py +++ b/tools/database.py @@ -317,7 +317,7 @@ class Database: # Adds the file description to the database try: - md = pd.read_sql_query(f"SELECT `index` FROM {_DB_METADATA_TABLE}") + md = pd.read_sql_query(f"SELECT `index` FROM {_DB_METADATA_TABLE}", self.db) index = md["index"].to_numpy()[-1] + 1 except: index = 0 diff --git a/tools/predictive_indicators.py b/tools/predictive_indicators.py index 0fcd990b9ae8e64e301b9919deb1eab238e74f3a..c0a0c27836b9746a3fa556332f63859096365874 100644 --- a/tools/predictive_indicators.py +++ b/tools/predictive_indicators.py @@ -16,11 +16,13 @@ from time import time # %% - Constants QUERY_DROP_TABLE = lambda r: f"drop table if exists Robot{r}_indicators;" -QUERY_RUNS = lambda r: f'SELECT `index`, `Name` FROM DataFiles WHERE `Robot` = "Robot_{r}";' +QUERY_RUNS = lambda r: f'SELECT `index`, `Name`, `Year`, `Month`, `Day` FROM DataFiles WHERE `Robot` = "Robot_{r}";' COMPUTED_COLUMS = [ "Time", "RunTime", "Speed", + "Class", + "Date", "Axis", "RMS", "KMeans", "PeakFactor", "MeanTemperature" ] @@ -30,7 +32,7 @@ COMPUTED_COLUMS = [ QUERY_INDICATORS = lambda r: f"SELECT * FROM Robot{r}_indicators;" # %% - Computation for one run -def compute_run (DB: Database, robot: int, run: int, t0: int): +def compute_run (DB: Database, robot: int, run: int, t0: int, date: str): out = [] @@ -49,7 +51,7 @@ def compute_run (DB: Database, robot: int, run: int, t0: int): temp = sub[f"Temperature_A{m}"].to_numpy() line = [ # *line, - t0, t0, 0, + t0, t0, 0, data["Class"][0], date, f"A{m}", RMS(c), kmeans(c), peak_factor(c), np.mean(temp) ] out.append(line) @@ -72,8 +74,8 @@ def compute_run (DB: Database, robot: int, run: int, t0: int): temp = sub[f"Temperature_A{m}"].to_numpy() line = [ # *line, - time, t0, s, f"A{m}", - RMS(c), kmeans(c), peak_factor(c), np.mean(temp) + time, t0, s, data["Class"][0], date, + f"A{m}", RMS(c), kmeans(c), peak_factor(c), np.mean(temp) ] out.append(line) # out.append(line) @@ -96,12 +98,13 @@ def compute_indicators (DB: Database, robot: int): times = [ name.split(" ")[0] for name in files["Name"] ] times = [ t.split("h") for t in times ] times = [ 3600 * int(t[0]) + 60 * int(t[1]) for t in times ] + dates = (files["Year"].astype(str) + "-" + files["Month"].astype(str) + "-" + files["Day"].astype(str)).to_numpy() # Compute out = [] for i, run in enumerate(runs): print("Robot", robot, "run n°", run) - out = [ *out, *compute_run(DB, robot, run, times[i]) ] + out = [ *out, *compute_run(DB, robot, run, times[i], dates[i]) ] # Save df = pd.DataFrame(out, columns=COMPUTED_COLUMS)