From 3c69c39e16fe82083e8047a801042851fab1b050 Mon Sep 17 00:00:00 2001
From: Raymond Chia <rqchia@janus0.ihpc.uts.edu.au>
Date: Fri, 20 Sep 2024 21:02:13 +1000
Subject: [PATCH] animation support

---
 S01cal.png                 | Bin 246233 -> 245552 bytes
 modules/datapipeline.py    |   1 -
 regress_rr.py              |   2 +
 single_subject_cal_plot.py | 181 ++++++++++++++++++++++++++++++++++++-
 4 files changed, 180 insertions(+), 4 deletions(-)

diff --git a/S01cal.png b/S01cal.png
index 8cde599e24528f83cbc125db36a91a808b3b1ddc..2afbe6b9d355a0f194d880ee2c92a8f80a21dd86 100644
GIT binary patch
delta 26636
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

delta 27316
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
RNw)OU?2TJDq?zqL^&e4YO`8A!

diff --git a/modules/datapipeline.py b/modules/datapipeline.py
index a05ec34..47d7985 100644
--- a/modules/datapipeline.py
+++ b/modules/datapipeline.py
@@ -2,7 +2,6 @@ import matplotlib.pyplot as plt
 from datetime import datetime, timedelta
 import pytz
 import pandas as pd
-import dask.dataframe as dd
 import tensorflow as tf
 from os import environ, mkdir, makedirs, listdir, stat, walk
 from sys import platform
diff --git a/regress_rr.py b/regress_rr.py
index c6c560e..c566abc 100644
--- a/regress_rr.py
+++ b/regress_rr.py
@@ -1286,6 +1286,8 @@ def sens_rr_model(subject,
     test_df_tmp = get_test_data(cal_df, activity_df, xsens_df, test_standing)
     test_df = pd.concat([df for df in test_df_tmp['data']], axis=0)
 
+    ipdb.set_trace()
+
     y_cols = ['sec', 'br', 'pss', 'cpm']
     if use_tsfresh:
         cal_df_list = []
diff --git a/single_subject_cal_plot.py b/single_subject_cal_plot.py
index c5017ab..c261bde 100644
--- a/single_subject_cal_plot.py
+++ b/single_subject_cal_plot.py
@@ -7,15 +7,22 @@ from os.path import join
 from os import makedirs
 import ipdb
 import joblib
+from cycler import cycler
 
 import pandas as pd
 
 from config import *
-from regress_rr import get_activity_log
+from regress_rr import (
+    get_activity_log, load_and_sync_xsens, get_respiration_log,
+    get_cal_data
+)
+from regress_rr import get_test_data as get_raw_test_data
 from modules.evaluations import Evaluation
 from modules.digitalsignalprocessing import (
     movingaverage, butter_lowpass_filter)
-from sklearn.preprocessing import PolynomialFeatures, LabelEncoder
+from sklearn.preprocessing import (
+    PolynomialFeatures, LabelEncoder, StandardScaler
+)
 
 plt.close('all')
 plt.rcParams.update({'figure.titlesize'              : 8,
@@ -56,6 +63,172 @@ tsfresh_dir = join(
 
 combi_strs = ['combi7.0-10.0-12.0-15.0-17.0']*3
 
+from matplotlib.animation import FuncAnimation
+cm = 1/2.54
+
+class AnimationPlotter():
+    def __init__(self, x, data:list, duration:int, buff_len:int,
+                 vname='test.mp4'):
+        self.data = data
+        self.fig, self.axs = plt.subplots(3, 1, dpi=200,
+                                          figsize=(8*(4/3)*cm, 8*cm))
+        self.duration = duration
+        self.buff_len = buff_len
+        self.x0 = x[0]
+        self.x = x - x[0]
+        self.vname = vname
+
+        self.cm = [
+            cycler('color', sns.color_palette('dark')),
+            cycler('color', sns.color_palette('muted')),
+            cycler('color', sns.color_palette('pastel')),
+        ]
+
+        self.lines=[]
+        for i, ax in enumerate(self.axs):
+            ax.set_prop_cycle(self.cm[i])
+            ndim = self.data[i].shape[-1]
+            l = ax.plot(np.arange(0, buff_len), np.zeros((buff_len, ndim)))
+            self.lines.append(l)
+
+            ax.set_xlabel('Time (s)')
+            if i == 0:
+                # twin = ax.twinx()
+                ax.set_ylabel('Pressure')
+                # twin.set_ylabel('BR')
+            elif i == 1:
+                ax.set_ylabel('Accelerometer')
+            elif i == 2:
+                ax.set_ylabel('Gyroscope')
+        self.axs[1].legend(['x', 'y', 'z'], prop={'size': 6}, loc='upper left')
+        self.axs[0].set_xticklabels({})
+        self.axs[1].set_xticklabels({})
+
+    def animate(self, frame):
+        for i, m_line in enumerate(self.lines):
+            data = self.data[i]
+            sect = np.arange(frame, frame+self.buff_len)
+            if isinstance(m_line, list):
+                for j, m_l in enumerate(m_line):
+                    m_l.set_data(self.x[sect], data[sect, j])
+            else:
+                m_line.set_data(self.x[sect], data[sect])
+        for ax in self.axs: ax.relim(); ax.autoscale_view(True, True, True);
+        plt.draw()
+        # return self.lines
+
+    def run(self):
+        ani = FuncAnimation(self.fig, self.animate, frames=self.duration,
+                            repeat=False, interval=9)
+        ani.save(self.vname, writer='ffmpeg', codec='h264')
+        # plt.show()
+        return ani
+
+def do_animation(sect_duration, buffer_duration, sens_list=['imu', 'bvp']):
+    xsens_df    = load_and_sync_xsens(sbj, sens_list=sens_list)
+    activity_df = get_activity_log(sbj).reset_index(drop=True)
+    event_df    = get_respiration_log(sbj)
+
+    cal_df = get_cal_data(event_df, xsens_df)
+
+    # include standing or not
+    test_df_tmp = get_raw_test_data(cal_df, activity_df, xsens_df, 1)
+    test_df = pd.concat([df for df in test_df_tmp['data']], axis=0)
+
+    # cmap = sns.color_palette('Paired')
+
+    plot_strs = ['PSS']
+    acc_cols = ['acc_x', 'acc_y', 'acc_z']
+    gyro_cols = ['gyro_x', 'gyro_y', 'gyro_z']
+
+    def run_anim(df, vname):
+        df['PSS'] = StandardScaler().fit_transform(
+            df.PSS.values.reshape(-1, 1)).flatten()
+        df[acc_cols] = StandardScaler().fit_transform(df[acc_cols])
+        df[gyro_cols] = StandardScaler().fit_transform(df[gyro_cols])
+        x = df.sec.values
+
+        data = (df[plot_strs].values,
+                df[acc_cols].values,
+                df[gyro_cols].values,
+               )
+        
+        anim = AnimationPlotter(x, data, duration, buff_len, vname=vname)
+        anim.run()
+
+    start_idx = 20*IMU_FS
+    buff_len = buffer_duration*IMU_FS
+    duration = sect_duration*IMU_FS
+
+    end_idx = start_idx + buff_len + duration
+
+    # get 3 calibration steps, 5, 10, 20
+    muted = sns.color_palette('muted')
+    pastel = sns.color_palette('pastel')
+    deep = sns.color_palette('deep')
+    m_figs, m_axs = [], []
+    # for i in [0, 2, 3, 4, 6]:
+    for i in [3]:
+        cpm = cal_df.cpm.iloc[i]
+        df = cal_df.data.iloc[i].iloc[start_idx:end_idx, :]
+        df['PSS'] = StandardScaler().fit_transform(
+            df.PSS.values.reshape(-1, 1)).flatten()
+        df[acc_cols] = StandardScaler().fit_transform(df[acc_cols])
+        df[gyro_cols] = StandardScaler().fit_transform(df[gyro_cols])
+        x = df.sec.values
+
+        data = (df[plot_strs].values,
+                df[acc_cols].values,
+                df[gyro_cols].values,
+               )
+        
+        anim = AnimationPlotter(x, data, duration, buff_len,
+                                vname='cal'+str(int(cpm))+'.mp4')
+        # anim.animate(1); plt.show()
+        # ipdb.set_trace()
+
+        '''
+        fig, ax = plt.subplots(3, 1)
+        ax[0].plot(df['PSS'], c='k', alpha=0.4)
+        twin = ax[0].twinx()
+        twin.plot(df['BR'], c='k')
+        ax[1].set_prop_cycle(cycler('color', deep))
+        ax[1].plot(StandardScaler().fit_transform(
+            df[['acc_x', 'acc_y', 'acc_z']]))
+
+        ax[2].set_prop_cycle(cycler('color', pastel))
+        ax[2].plot(
+            StandardScaler().fit_transform(df[['gyro_x', 'gyro_y', 'gyro_z']]),
+        )
+        m_figs.append(fig)
+        m_axs.append(ax)
+        '''
+        anim.run()
+
+    fmt = "%d/%m/%Y %H:%M:%S"
+    activity_sec = activity_df.Timestamps.map(
+        lambda x: datetime.strptime(x, fmt).timestamp()
+    )
+    seated_start, seated_end = activity_sec.iloc[2], activity_sec.iloc[3]
+    standing_start, standing_end = activity_sec.iloc[4], activity_sec.iloc[5]
+
+    # get seated no2, 7s
+    seated_df = test_df[
+        (test_df.sec > seated_start) & (test_df.sec < seated_end)
+    ]
+    seated_df = seated_df.iloc[start_idx:end_idx, :]
+    ipdb.set_trace()
+    run_anim(seated_df, 'seated.mp4')
+
+    # get standing no2, 7s
+    standing_df = test_df[
+        (test_df.sec > standing_start) & (test_df.sec < standing_end)
+    ]
+    standing_df = standing_df.iloc[start_idx:end_idx, :]
+    run_anim(standing_df, 'standing.mp4')
+
+    ipdb.set_trace()
+
 def get_model(sens, sbj, cfg_id, combi):
     m_dir = f'linreg_{sens}_rr_{sbj}_id{cfg_id}_{combi}'
     mdl_fname = join(mdl_dir, sens+'_rr', str(cfg_id).zfill(2), m_dir, mdl_file)
@@ -77,6 +250,8 @@ if __name__ == '__main__':
     standing_mask = activity_log['Activity'] == 'standing'
     standing_log = activity_log[standing_mask]
 
+    do_animation(20, 15)
+
     x_test, y_test, time = get_test_data()
     y_out = {}
     metrics_dict = {}
@@ -138,7 +313,7 @@ if __name__ == '__main__':
     axs.set_title("Multi-Modal RR Predictions during Rest Standing and Sitting")
     # axs[1].set_title("Absolute Error over Time")
 
-    axs.set_xlabel("Time (indices)")
+    axs.set_xlabel("Time (sec)")
     axs.set_ylabel("Respiration Rate (CPM)")
     # axs[1].set_ylabel("Abs. Error")
     fig.savefig('S01cal.png')
-- 
GitLab