def plot_example(missed, acknowledged): sensor_miss = import_sensorfile(missed) sensor_ack = import_sensorfile(acknowledged) # Window data mag_miss = window_data(process_input(sensor_miss)) mag_ack = window_data(process_input(sensor_ack)) # Window data mag_miss = window_data(process_input(sensor_miss)) mag_ack = window_data(process_input(sensor_ack)) # Filter setup kernel = 15 # apply filter mag_miss_filter = sci.medfilt(mag_miss, kernel) mag_ack_filter = sci.medfilt(mag_ack, kernel) # calibrate data mag_miss_cal = mf.calibrate_median(mag_miss) mag_miss_cal_filter = mf.calibrate_median(mag_miss_filter) mag_ack_cal = mf.calibrate_median(mag_ack) mag_ack_cal_filter = mf.calibrate_median(mag_ack_filter) # PLOT sns.set_style("white") current_palette = sns.color_palette('muted') sns.set_palette(current_palette) plt.figure(0) # Plot RAW missed and acknowledged reminders ax1 = plt.subplot2grid((2, 1), (0, 0)) plt.ylim([-1.5, 1.5]) plt.ylabel('Acceleration (g)') plt.plot(mag_miss_cal, label='Recording 1') plt.legend(loc='lower left') ax2 = plt.subplot2grid((2, 1), (1, 0)) # Plot Missed Reminder RAW plt.ylim([-1.5, 1.5]) plt.ylabel('Acceleration (g)') plt.xlabel('t (ms)') plt.plot(mag_ack_cal, linestyle='-', label='Recording 2') plt.legend(loc='lower left') # CALC AND SAVE STATS stats_one = sp.calc_stats_for_data_stream_as_dictionary(mag_miss_cal) stats_two = sp.calc_stats_for_data_stream_as_dictionary(mag_ack_cal) data = [stats_one, stats_two] write_to_csv(data, 'example_waves') plt.show()
def plot_kernal_length_experiment(missed, acknowledged): sensor_miss = import_sensorfile(missed) sensor_ack = import_sensorfile(acknowledged) # Window data mag_miss = window_data(process_input(sensor_miss)) mag_ack = window_data(process_input(sensor_ack)) # Filter setup difference = [] stats_output = [] for num in range(3, 63): # check if odd if num % 2 != 0: kernel = num # apply filter mag_miss_filter = sci.medfilt(mag_miss, kernel) mag_ack_filter = sci.medfilt(mag_ack, kernel) # calibrate data mag_miss_cal = mf.calibrate_median(mag_miss) mag_miss_cal_filter = mf.calibrate_median(mag_miss_filter) mag_ack_cal = mf.calibrate_median(mag_ack) mag_ack_cal_filter = mf.calibrate_median(mag_ack_filter) # STATS # Calculate the stats for raw and windowed for each stats_miss = sp.calc_stats_for_data_stream_as_dictionary(mag_miss_cal) stats_miss_filter = sp.calc_stats_for_data_stream_as_dictionary(mag_miss_cal_filter) stats_ack = sp.calc_stats_for_data_stream_as_dictionary(mag_ack_cal) stats_ack_filter = sp.calc_stats_for_data_stream_as_dictionary(mag_ack_cal_filter) stats_data = [stats_miss, stats_miss_filter, stats_ack, stats_ack_filter] [data.pop("med", None) for data in stats_data] print('Stats Missed:' + str(stats_miss)) print('Stats Acknowledged: ' + str(stats_ack)) print('Stats Missed Filtered: ' + str(stats_miss_filter)) print('Stats Acknowledged Filtered:' + str(stats_ack_filter)) # Calculate the percentage difference between the values dif_stats_raw = calculate_difference(stats_miss, stats_ack) dif_stats_filtered = calculate_difference(stats_miss_filter, stats_ack_filter) print('Difference in RAW as percentage:' + str(dif_stats_raw)) print('Difference in FILTERED as percentage:' + str(dif_stats_filtered)) dif_stats_raw_overall = calcualate_meanfordictionary(dif_stats_raw) dif_stats_filtered_overall = calcualate_meanfordictionary(dif_stats_filtered) print('Avg. Difference RAW: ' + str(dif_stats_raw_overall)) print('Avg. Difference Filtered: ' + str(dif_stats_filtered_overall)) difference.append((kernel, dif_stats_filtered_overall)) if kernel == 15: stats_output.append(stats_miss) stats_output.append(stats_ack) stats_output.append(stats_miss_filter) stats_output.append(stats_ack_filter) stats_output.append(dif_stats_raw) stats_output.append(dif_stats_filtered) write_to_csv(stats_output) x_val = [x[0] for x in difference] y_val = [x[1] for x in difference] xticks = [str(x) for x in x_val] base_val = [54] * 63 plt.xticks(x_val, xticks) plt.xlabel('Window Length (k)') plt.ylabel('Percentage Difference (%)') plt.ylim([40, 140]) plt.plot(x_val, y_val, label='Median Filter') plt.plot(base_val, linestyle='--', label='Baseline (Unfiltered)') plt.legend(loc='lower right') plt.show()