Spaces:
Build error
Build error
added slice part
Browse files- app.py +2 -2
- funcs/plot_func.py +7 -14
- 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,
|
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 |
-
|
|
|
|
|
|
|
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"]
|
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
|