Skip to content

Commit 734b512

Browse files
committed
Added live 3D display of experiment spectras.
1 parent 25bfd88 commit 734b512

File tree

1 file changed

+38
-12
lines changed

1 file changed

+38
-12
lines changed

application.py

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,19 @@ def __init__(self, master, nameList, stop_event):
7373
for name in nameList:
7474
figure = Figure(figsize=(6, 5.5), dpi=100) # The scope figure
7575

76-
plot = figure.add_subplot(111) # Set-up axis and get plotting area
76+
plot = figure.add_subplot(111)
7777

7878
frame = tk.Frame(self.globalPwnd)
7979

8080
canvas = FigureCanvasTkAgg(figure,
8181
master=frame) # Get the tkinter canvas
8282

8383
# Add the canvas to global NoteBook
84-
self.globalPwnd.add(frame, text=name)
84+
self.globalPwnd.add(frame, text=name[0])
8585

8686
canvas.get_tk_widget().pack(fill=tk.BOTH) # Pack the canvas
8787

88-
self.panelsList.append([plot, canvas])
88+
self.panelsList.append([plot, canvas, name[1]])
8989
self.bind(self.SCOPE_UPDATE_SEQUENCE, self.reactUpdate)
9090

9191
self.globalPwnd.pack(fill=tk.BOTH) # Pack the Global Notebook
@@ -103,10 +103,26 @@ def reactUpdate(self, event):
103103
with main_lock:
104104
plotting_area = self.panelsList[tp_instruction[0]][0]
105105
canvas = self.panelsList[tp_instruction[0]][1]
106+
plot_type = self.panelsList[tp_instruction[0]][2]
106107
plotting_area.clear()
107108
plotting_area.grid()
108-
for spectrum in tp_instruction[1]:
109-
plotting_area.plot(spectrum.lambdas, spectrum.values)
109+
if plot_type == "2D":
110+
for spectrum in tp_instruction[1]:
111+
plotting_area.plot(spectrum.lambdas, spectrum.values)
112+
else:
113+
for i, spectra in enumerate(tp_instruction[1]):
114+
if i == len(tp_instruction[1])-1:
115+
for spectrum in spectra:
116+
plotting_area.plot(
117+
spectrum.lambdas,
118+
spectrum.values,
119+
(1,0,0))
120+
else:
121+
for spectrum in spectra:
122+
plotting_area.plot(
123+
spectrum.lambdas,
124+
spectrum.values,
125+
3*(i/len(tp_instruction[1]),))
110126
canvas.draw()
111127

112128
# %% Application Object, true application is happening here
@@ -421,8 +437,11 @@ def createWidgetsSimple(self, master):
421437
self.pause_live_display = Event()
422438
self.stop_live_display = Event()
423439
self.liveDisplay = Scope_Display(scope_fen,
424-
["Scopes", "Absorbance",
425-
"Black", "White"],
440+
[("Scopes", "2D"),
441+
("Black", "2D"),
442+
("White", "2D"),
443+
("Experiment raw", "Superp"),
444+
("Experiment abs.", "Superp")],
426445
self.stop_live_display)
427446
self.liveDisplay.pack(fill=tk.BOTH)
428447
self.after(0, self.routine_data_sender)
@@ -475,7 +494,7 @@ def set_black(self):
475494
self._bnc.stop()
476495
self.black_spectra = self.avh.getScopes()
477496
experiment_logger.info("Black set.")
478-
self.liveDisplay.putSpectrasAndUpdate(2, self.black_spectra)
497+
self.liveDisplay.putSpectrasAndUpdate(1, self.black_spectra)
479498
self.avh.stopAll()
480499
self.avh.release()
481500
self.pause_live_display.clear()
@@ -514,7 +533,7 @@ def set_white(self):
514533
self._bnc.stop()
515534
self.white_spectra = self.avh.getScopes()
516535
experiment_logger.info("White set.")
517-
self.liveDisplay.putSpectrasAndUpdate(3, self.white_spectra)
536+
self.liveDisplay.putSpectrasAndUpdate(2, self.white_spectra)
518537
self.avh.stopAll()
519538
self.avh.release()
520539
self.pause_live_display.clear()
@@ -551,6 +570,7 @@ def experiment(self):
551570

552571
self.avh.prepareAll(p_T, True, p_N_c)
553572
totalSpectras = []
573+
totalAbsorbanceSpectras = []
554574

555575
try:
556576
self.black_spectra
@@ -566,6 +586,8 @@ def experiment(self):
566586
self.experiment_on = False
567587
abort = True
568588

589+
correction_spectrum = self.get_selected_absorbance(self.white_spectra)
590+
569591
experiment_logger.info("Starting observation.")
570592
if not abort and tMsg.\
571593
askokcancel("Ready", "Ready to start experiment ?"):
@@ -611,11 +633,15 @@ def experiment(self):
611633
tp_scopes = self.avh.getScopes()
612634
self.avh.stopAll()
613635
totalSpectras.append(tp_scopes)
614-
self.liveDisplay.putSpectrasAndUpdate(0, tp_scopes)
636+
self.liveDisplay.putSpectrasAndUpdate(3, totalSpectras)
615637

616638
if self.referenceChannel.get() != "":
617-
self.liveDisplay.putSpectrasAndUpdate(
618-
1, self.get_selected_absorbance(tp_scopes))
639+
totalAbsorbanceSpectras.append(
640+
self.get_selected_absorbance(tp_scopes)
641+
- correction_spectrum)
642+
643+
self.liveDisplay.putSpectrasAndUpdate(
644+
4, totalAbsorbanceSpectras)
619645

620646
pop_up.destroy()
621647

0 commit comments

Comments
 (0)