arcan3 commited on
Commit
df766c6
·
1 Parent(s): 7a91765

added slice part

Browse files
Files changed (3) hide show
  1. app.py +2 -2
  2. funcs/plot_func.py +7 -14
  3. funcs/processor.py +2 -2
app.py CHANGED
@@ -108,11 +108,11 @@ with gr.Blocks(title='Cabasus') as cabasus_sensor:
108
  csv_file_box.change(process_data, inputs=[csv_file_box, slice_size_slider, sample_rate, window_size_slider],
109
  outputs=[processed_file_box, json_file_box, slices_per_leg, plot_box_leg, plot_box_overlay, slice_slider, plot_slice_leg, get_all_slice, slice_json_box])
110
  leg_dropdown.change(plot_sensor_data_from_json, inputs=[json_file_box, leg_dropdown, slice_slider],
111
- outputs=[plot_box_leg, plot_slice_leg, get_all_slice, slice_json_box])
112
  repeat_process.click(process_data, inputs=[csv_file_box, slice_size_slider, sample_rate, window_size_slider],
113
  outputs=[processed_file_box, json_file_box, slices_per_leg, plot_box_leg, plot_box_overlay, slice_slider, plot_slice_leg, get_all_slice, slice_json_box])
114
  slice_slider.change(plot_sensor_data_from_json, inputs=[json_file_box, leg_dropdown, slice_slider],
115
- outputs=[plot_box_leg, plot_slice_leg, get_all_slice, slice_json_box])
116
 
117
  som_create.click(get_som_mp4, inputs=[json_file_box, slice_slider], outputs=[som_figures])
118
  button_label_Add.click(attach_label_to_json, inputs=[slice_json_box, label_name], outputs=[slice_json_label_box])
 
108
  csv_file_box.change(process_data, inputs=[csv_file_box, slice_size_slider, sample_rate, window_size_slider],
109
  outputs=[processed_file_box, json_file_box, slices_per_leg, plot_box_leg, plot_box_overlay, slice_slider, plot_slice_leg, get_all_slice, slice_json_box])
110
  leg_dropdown.change(plot_sensor_data_from_json, inputs=[json_file_box, leg_dropdown, slice_slider],
111
+ outputs=[plot_box_leg, plot_slice_leg, get_all_slice, slice_json_box, plot_box_overlay])
112
  repeat_process.click(process_data, inputs=[csv_file_box, slice_size_slider, sample_rate, window_size_slider],
113
  outputs=[processed_file_box, json_file_box, slices_per_leg, plot_box_leg, plot_box_overlay, slice_slider, plot_slice_leg, get_all_slice, slice_json_box])
114
  slice_slider.change(plot_sensor_data_from_json, inputs=[json_file_box, leg_dropdown, slice_slider],
115
+ outputs=[plot_box_leg, plot_slice_leg, get_all_slice, slice_json_box, plot_box_overlay])
116
 
117
  som_create.click(get_som_mp4, inputs=[json_file_box, slice_slider], outputs=[som_figures])
118
  button_label_Add.click(attach_label_to_json, inputs=[slice_json_box, label_name], outputs=[slice_json_label_box])
funcs/plot_func.py CHANGED
@@ -62,17 +62,15 @@ def plot_sensor_data_from_json(json_file, sensor, slice_select=1):
62
  plt.tight_layout()
63
 
64
  fig2, file = plot_other_sensor_with_same_timestamp(json_file, sensor, slice_select)
 
65
 
66
- return fig, fig1, fig2, file
67
 
68
- def plot_overlay_data_from_json(json_file, sensors, use_precise_timestamp=False):
69
  # Read the JSON file
70
  with open(json_file, "r") as f:
71
  slices = json.load(f)
72
 
73
- # Set up the colormap
74
- cmap = plt.get_cmap('viridis')
75
-
76
  # Create subplots for each sensor
77
  fig, axs = plt.subplots(len(sensors), 1, figsize=(12, 2 * len(sensors)), sharex=True)
78
 
@@ -86,9 +84,11 @@ def plot_overlay_data_from_json(json_file, sensors, use_precise_timestamp=False)
86
  sensor_data = slice_dict[sensor]
87
 
88
  data = pd.DataFrame({sensor: sensor_data}, index=slice_timestamps)
89
- color = cmap(slice_idx / len(slices))
90
 
91
- axs[idx].plot(data[sensor], color=color, label=f'Slice {slice_idx + 1}')
 
 
 
92
 
93
  axs[idx].set_ylabel(sensor)
94
 
@@ -174,13 +174,6 @@ def plot_other_sensor_with_same_timestamp(json_file, sensor, slice_select):
174
  json_dict = {}
175
  for tkeys in total_keys:
176
  json_dict[tkeys] = slice_dict[tkeys]
177
- # json_dict = {'data': sensor_data, 'sensor': slice_item, 'time': timestamps,
178
- # f"{sensor}_precise_time_diff": slice_dict[f"{sensor}_precise_time_diff"],
179
- # "precise_timestamp": slice_dict["precise_timestamp"],
180
- # "timestamp": slice_dict["timestamp"],
181
- # "time_diff": slice_dict["time_diff"],
182
- # "precise_time_diff": slice_dict["precise_time_diff"],
183
- # "label": 'unknown'}
184
 
185
  with open(f'slice_{slice_select}.json', "w") as f:
186
  json.dump(numpy_to_native(json_dict), f, indent=2)
 
62
  plt.tight_layout()
63
 
64
  fig2, file = plot_other_sensor_with_same_timestamp(json_file, sensor, slice_select)
65
+ fig3 = plot_overlay_data_from_json(json_file, slice_select=slice_select)
66
 
67
+ return fig, fig1, fig2, file, fig3
68
 
69
+ def plot_overlay_data_from_json(json_file, slice_select, sensors=['GZ1', 'GZ2', 'GZ3', 'GZ4']):
70
  # Read the JSON file
71
  with open(json_file, "r") as f:
72
  slices = json.load(f)
73
 
 
 
 
74
  # Create subplots for each sensor
75
  fig, axs = plt.subplots(len(sensors), 1, figsize=(12, 2 * len(sensors)), sharex=True)
76
 
 
84
  sensor_data = slice_dict[sensor]
85
 
86
  data = pd.DataFrame({sensor: sensor_data}, index=slice_timestamps)
 
87
 
88
+ if slice_idx+1 == slice_select:
89
+ axs[idx].plot(data[sensor], '-r', label=f'Slice {slice_idx + 1}')
90
+ else:
91
+ axs[idx].plot(data[sensor], '-c')
92
 
93
  axs[idx].set_ylabel(sensor)
94
 
 
174
  json_dict = {}
175
  for tkeys in total_keys:
176
  json_dict[tkeys] = slice_dict[tkeys]
 
 
 
 
 
 
 
177
 
178
  with open(f'slice_{slice_select}.json', "w") as f:
179
  json.dump(numpy_to_native(json_dict), f, indent=2)
funcs/processor.py CHANGED
@@ -78,7 +78,7 @@ def process_data(input_file, slice_size=64, min_slice_size=16, sample_rate=20, w
78
  file, len_ = slice_csv_to_json('output.csv', slice_size, min_slice_size, sample_rate, window_size=window_size)
79
 
80
  # get the plot automatically
81
- sensor_fig, slice_fig, get_all_slice, slice_json = plot_sensor_data_from_json(file, "GZ1")
82
- overlay_fig = plot_overlay_data_from_json(file, ["GZ1", "GZ2", "GZ3", "GZ4"], use_precise_timestamp=True)
83
 
84
  return 'output.csv', file, f'num of slices found: {len_}', sensor_fig, overlay_fig, gr.Slider.update(interactive=True, maximum=len_, minimum=1, value=1), slice_fig, get_all_slice, slice_json
 
78
  file, len_ = slice_csv_to_json('output.csv', slice_size, min_slice_size, sample_rate, window_size=window_size)
79
 
80
  # get the plot automatically
81
+ sensor_fig, slice_fig, get_all_slice, slice_json, overlay_fig = plot_sensor_data_from_json(file, "GZ1")
82
+ # overlay_fig = plot_overlay_data_from_json(file, ["GZ1", "GZ2", "GZ3", "GZ4"])
83
 
84
  return 'output.csv', file, f'num of slices found: {len_}', sensor_fig, overlay_fig, gr.Slider.update(interactive=True, maximum=len_, minimum=1, value=1), slice_fig, get_all_slice, slice_json