def analyze_session(session_spec, session_df, df_mode, plot=True): '''Analyze session and save data, then return metrics. Note there are 2 types of session_df: body.eval_df and body.train_df''' info_prepath = session_spec['meta']['info_prepath'] session_df = session_df.copy() assert len(session_df) > 2, f'Need more than 2 datapoint to calculate metrics' # first datapoint at frame 0 is empty util.write(session_df, f'{info_prepath}_session_df_{df_mode}.csv') # calculate metrics session_metrics = calc_session_metrics(session_df, ps.get(session_spec, 'env.0.name'), info_prepath, df_mode) if plot: # plot graph viz.plot_session(session_spec, session_metrics, session_df, df_mode) viz.plot_session(session_spec, session_metrics, session_df, df_mode, ma=True) return session_metrics
def analyze_session(session_spec, session_df, df_mode, plot=True): '''Analyze session and save data, then return metrics. Note there are 2 types of session_df: body.eval_df and body.train_df''' info_prepath = session_spec['meta']['info_prepath'] session_df = session_df.copy() # prevent modification assert len(session_df) > 2, f'Need more than 2 datapoint to calculate metrics' # first datapoint at frame 0 is empty util.write(session_df, util.get_session_df_path(session_spec, df_mode)) # calculate metrics session_metrics = calc_session_metrics(session_df, ps.get(session_spec, 'env.0.name'), info_prepath, df_mode) if plot: # plot graph viz.plot_session(session_spec, session_metrics, session_df, df_mode) viz.plot_session(session_spec, session_metrics, session_df, df_mode, ma=True) # manually shut down orca server to avoid zombie processes viz.pio.orca.shutdown_server() return session_metrics