COMPASS  5.0.0
End-to-end AO simulation tool using GPU acceleration
roket_widget.html_display Class Reference
Collaboration diagram for roket_widget.html_display:

Public Member Functions

def __del__ (self)
 
def __init__ (self)
 
def loadDB (self)
 
def update (self, attrname, old, new)
 
def gamora_call (self)
 
def update_psf (self)
 
def rescale_matrix (self)
 
def get_diag (self)
 
def cut_matrix (self)
 
def update_matrix2 (self)
 
def update_mode (self)
 
def mode_increment (self)
 
def mode_desincrement (self)
 
def plot_sum (self)
 
def cov_cor (self)
 
def createDataTables (self)
 
def updateDataTables (self)
 

Public Attributes

 datapath
 
 covmat
 
 files
 
 f_list
 
 f
 
 Lambda_tar
 
 Btt
 
 IF
 
 P
 
 indx_pup
 
 pup
 
 niter
 
 nactus
 
 nmodes
 
 swap
 
 plot_type
 
 coms_list
 
 cov
 
 cor
 
 psf_compass
 
 psf_fitting
 
 psf
 
 otftel
 
 otf2
 
 gamora
 
 basis
 
 url
 
 old
 
 dialog
 
 comsTags
 
 coms
 
 DB_select
 
 DB_button
 
 plot_select
 
 basis_select1
 
 iter_select
 
 plusTag
 
 plus_select
 
 moinsTag
 
 moins_select
 
 diff_button
 
 A
 
 B
 
 basis_select2
 
 power
 
 cmin
 
 cmax
 
 rescale
 
 draw
 
 diag
 
 cut
 
 axiscut
 
 XY
 
 DataTableItems
 
 ParamTableItems
 
 table_cov_source
 
 table_cor_source
 
 table_param_source
 
 param_table
 
 pcov_source
 
 pcor_source
 
 xdr4
 
 ydr4
 
 pcov
 
 pcor
 
 basis_select3
 
 modes_select
 
 draw_mode
 
 inc_mode
 
 desinc_mode
 
 independence
 
 psf_display_select
 
 psf_rec_methods_select
 
 gamora_tag
 
 psf_display_tag
 
 error_select
 
 gamora_comp
 
 psf_display
 
 colors
 
 source1
 
 source2
 
 source3
 
 sourcepsf
 
 hover
 
 hoverlog
 
 plog
 
 psum
 
 xdr
 
 ydr
 
 p2
 
 p3
 
 xdr2
 
 ydr2
 
 pmodes
 
 control_plot
 
 xdr3
 
 ydr3
 
 ppsf
 
 pcutpsf
 
 buttons
 
 inputs
 
 inputs2
 
 inputs3
 
 inputs4
 
 tab1
 
 tab2
 
 tab3
 
 tab4
 
 tab5
 
 tabs
 

Detailed Description


(_)_ _ (_) |_ ___ | | ' | | _(-< ||_||_|_|__/__/

Definition at line 45 of file roket_widget.py.

Constructor & Destructor Documentation

◆ __del__()

def roket_widget.html_display.__del__ (   self)

Definition at line 47 of file roket_widget.py.

47  def __del__(self):
48  files = glob.glob("/home/fferreira/public_html/roket_display*")
49  for f in files:
50  os.remove(f)
51 

◆ __init__()

def roket_widget.html_display.__init__ (   self)

Definition at line 52 of file roket_widget.py.

52  def __init__(self):
53 
54  self.datapath = "/home/fferreira/Data/correlation/"
55  self.covmat = None
56  self.files = glob.glob(self.datapath + "roket_*.h5")
57  self.files.sort()
58  self.f_list = []
59  for f in self.files:
60  self.f_list.append(f.split('/')[-1])
61 
62  self.f = h5py.File(self.files[0], mode='r+')
63 
64  self.Lambda_tar = self.f.attrs["target.Lambda"][0]
65  self.Btt = self.f["Btt"][:]
66 
67  self.IF = csr_matrix((self.f["IF.data"][:], self.f["IF.indices"][:],
68  self.f["IF.indptr"][:]))
69  self.IF = self.IF.T
70  #self.TT = self.f["TT"][:]
71  self.P = self.f["P"][:] #/np.sqrt(self.IF.shape[0])
72 
73  self.indx_pup = self.f["indx_pup"][:]
74  self.pup = np.zeros((self.f["dm_dim"].value, self.f["dm_dim"].value))
75 
76  self.niter = self.f["noise"][:].shape[1]
77  self.nactus = self.f["noise"][:].shape[0]
78  self.nmodes = self.P.shape[0]
79  self.swap = np.arange(self.nmodes) - 2
80  self.swap[0:2] = [self.nmodes - 2, self.nmodes - 1]
81 
82  self.plot_type = ["Commands", "Variance"]
83  self.coms_list = [
84  "noise", "aliasing", "tomography", "filtered modes", "bandwidth",
85  "non linearity"
86  ]
87 
88  self.cov = self.f["cov"][:]
89  self.cor = self.f["cor"][:]
90  self.psf_compass = np.fft.fftshift(self.f["psf"][:])
91  self.psf_fitting = np.fft.fftshift(self.f["psfortho"][:])
92  self.psf = None
93  self.otftel = None
94  self.otf2 = None
95  self.gamora = None
96  self.basis = ["Actuators", "Btt"]
97  self.url = "http://hippo6.obspm.fr/~fferreira/roket_display"
98  self.old = None
99 
100 
107  self.dialog = Dialog(closable=False, visible=False, title="Dialog Box",
108  content="")
109 
110  # Tab 1
111  self.comsTags = Paragraph(text="Commands type", height=25)
112  self.coms = CheckboxButtonGroup(labels=self.coms_list, active=[0])
113  self.DB_select = Select(title="Database", value=self.f_list[0],
114  options=self.f_list)
115  self.DB_button = Button(label="Load DB", type="success")
116  self.plot_select = Select(title="Plot type", value=self.plot_type[1],
117  options=self.plot_type)
118  self.basis_select1 = Select(title="Basis", value=self.basis[0],
119  options=self.basis)
120  self.iter_select = Slider(title="Iteration number", start=1, end=self.niter,
121  step=1)
122  self.plusTag = Paragraph(text="Add :", height=25)
123  self.plus_select = CheckboxButtonGroup(
124  labels=self.coms_list + ["fitting", "CORRECT"],
125  active=[0, 1, 2, 3, 4, 5, 6])
126  self.moinsTag = Paragraph(text="Substract :", height=25)
127  self.moins_select = CheckboxButtonGroup(labels=self.coms_list + ["fitting"],
128  active=[])
129  self.diff_button = Button(label="Sum !", type="success")
130  # Tab 2
131  self.A = Select(title="Commands A", value=self.coms_list[0],
132  options=self.coms_list)
133  self.B = Select(title="Commands B", value=self.coms_list[0],
134  options=self.coms_list)
135  self.basis_select2 = Select(title="Basis", value=self.basis[0],
136  options=self.basis)
137  self.power = Slider(title="Abs(covmat)**X", start=0.1, end=1., step=0.1,
138  value=1.)
139  self.cmin = Slider(title="vmin", start=1, end=10, step=1)
140  self.cmax = Slider(title="vmax", start=1, end=10, step=1)
141  self.rescale = Button(label="Rescale !", type="primary")
142  self.draw = Button(label="Draw !", type="success")
143  self.diag = Button(label="Plot diag !", type="primary")
144  self.cut = Button(label="Cut !", type="primary")
145  self.axiscut = Slider(title="X/Y cut", start=0, end=1, step=1)
146  self.XY = RadioButtonGroup(labels=["X", "Y"], active=0)
147  self.DataTableItems = [
148  "Type", "Noise", "Truncature", "Aliasing", "FilteredModes", "Bandwidth",
149  "Tomography"
150  ]
151  self.ParamTableItems = list(self.f.attrs.keys())
152 
153  self.table_cov_source = ColumnDataSource(
154  data=dict(Type=[], Noise=[], Truncature=[], Aliasing=[],
155  FilteredModes=[], Bandwidth=[], Tomography=[]))
156  self.table_cor_source = ColumnDataSource(
157  data=dict(Type=[], Noise=[], Truncature=[], Aliasing=[],
158  FilteredModes=[], Bandwidth=[], Tomography=[]))
159 
160  self.table_param_source = ColumnDataSource(data=dict(Parameter=[], Value=[]))
161 
162  self.cov_table, self.cor_table, self.param_table = self.createDataTables()
163  self.pcov_source = ColumnDataSource(
164  data=dict(image=[], x=[], y=[], dw=[], dh=[]))
165  self.pcor_source = ColumnDataSource(
166  data=dict(image=[], x=[], y=[], dw=[], dh=[]))
167  self.xdr4 = Range1d(start=0, end=6)
168  self.ydr4 = Range1d(start=0, end=6)
169  self.pcov = figure(x_range=self.xdr4, y_range=self.ydr4, x_axis_location="above")
170  self.pcov.image("image", "x", "y", "dw", "dh", palette="Spectral11",
171  source=self.pcov_source)
172  self.pcor = figure(x_range=self.xdr4, y_range=self.ydr4, x_axis_location="above")
173  self.pcor.image("image", "x", "y", "dw", "dh", palette="Spectral11",
174  source=self.pcor_source)
175 
176  self.updateDataTables()
177  # Tab 3
178  self.basis_select3 = Select(title="Basis", value=self.basis[0],
179  options=self.basis)
180  self.modes_select = Slider(title="Mode #", value=0, start=0, end=self.nmodes,
181  step=1)
182  #self.modes_select = TextInput(value="0:"+str(self.nmodes-1),title="Enter a mode to display")
183  self.draw_mode = Button(label="Draw !", type="success")
184  self.inc_mode = Button(label="+", type="primary")
185  self.desinc_mode = Button(label="-", type="primary")
186  # Tab 4
187  self.independence = CheckboxButtonGroup(labels=["Independence"], active=[])
188  self.psf_display_select = Select(
189  title="PSF display", value="COMPASS", options=[
190  "COMPASS", "ROKET", "Vii", "Fitting", "OTF Telescope", "OTF res"
191  ])
192  self.psf_rec_methods_select = Select(title="Reconstruction method", value="Vii",
193  options=["Vii", "ROKET"])
194  self.gamora_tag = Paragraph(text="PSF reconstruction :", height=25)
195  self.psf_display_tag = Paragraph(text="PSF display :", height=25)
196  self.error_select = CheckboxButtonGroup(labels=self.coms_list + ["fitting"],
197  active=[0, 1, 2, 3, 4, 5, 6])
198  self.gamora_comp = Button(label="Reconstruct !", type="primary")
199  self.psf_display = Button(label="Display", type="primary")
200  self.colors = {
201  "filtered modes": "green",
202  "bandwidth": "orange",
203  "noise": "red",
204  "tomography": "purple",
205  "non linearity": "cyan",
206  "aliasing": "blue"
207  }
208 
209  self.source1 = ColumnDataSource(data=dict(x=[], y=[], color=[], typec=[]))
210  self.source2 = ColumnDataSource(data=dict(x=[], y=[], color=[]))
211  self.source3 = ColumnDataSource(data=dict(x=[], y=[], color=[]))
212  self.sourcepsf = ColumnDataSource(data=dict(x=[], y=[], color=[]))
213 
214  self.hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y"), ("type", "@typec")])
215  self.hoverlog = HoverTool(tooltips=[("x", "@x"), ("y", "@y"), ("type",
216  "@typec")])
217  TOOLS = "resize,save,pan,box_zoom,tap, box_select, wheel_zoom, lasso_select,reset"
218 
219  self.plog = Figure(plot_height=600, plot_width=800, y_range=[1e-6, 10],
220  y_axis_type="log", tools=[TOOLS, self.hoverlog])
221  self.psum = Figure(plot_height=600, plot_width=800)
222  for c in self.colors:
223  self.plog.line(legend=c, line_color=self.colors[c])
224 
225  self.plog.multi_line("x", "y", color="color", source=self.source1)
226  self.psum.line(legend="Image SR", line_color="red")
227  self.psum.line(legend="Phase SR ", line_color="purple")
228  self.psum.line(legend="Var(X+Y)", line_color="blue")
229  self.psum.line(legend="Var(X)+var(Y)", line_color="green")
230 
231  self.psum.multi_line("x", "y", color="color", source=self.source3)
232  self.psum.yaxis.axis_label = "Strehl Ratio"
233 
234  self.xdr = Range1d(start=0, end=self.nactus)
235  self.ydr = Range1d(start=self.nactus, end=0)
236  self.p2 = figure(x_range=self.xdr, y_range=self.ydr, x_axis_location="above")
237  self.p2.image_url(url=[], x=0, y=0, w=self.nactus, h=self.nactus)
238  self.p3 = Figure(plot_height=600, plot_width=800)
239  self.p3.line(x="x", y="y", source=self.source2)
240 
241  self.xdr2 = Range1d(start=0, end=self.pup.shape[0])
242  self.ydr2 = Range1d(start=self.pup.shape[1], end=0)
243  self.pmodes = figure(x_range=self.xdr2, y_range=self.ydr2,
244  x_axis_location="above")
245  self.pmodes.image_url(url=[], x=0, y=0, w=self.pup.shape[0], h=self.pup.shape[1])
246 
247  self.control_plot = [self.plot_select, self.iter_select, self.basis_select1]
248 
249  self.xdr3 = Range1d(start=0, end=self.psf_compass.shape[0])
250  self.ydr3 = Range1d(start=self.psf_compass.shape[1], end=0)
251  self.ppsf = figure(x_range=self.xdr3, y_range=self.ydr3, x_axis_location="above")
252  self.ppsf.image_url(url=[], x=0, y=0, w=self.psf_compass.shape[0],
253  h=self.psf_compass.shape[1])
254  self.pcutpsf = Figure(plot_height=600, plot_width=800, y_range=[1e-9, 1],
255  y_axis_type="log")
256  self.pcutpsf.line(legend="COMPASS", line_color="blue")
257  self.pcutpsf.line(legend="PSF rec", line_color="red")
258  self.pcutpsf.multi_line("x", "y", color="color", source=self.sourcepsf)
259 
260  self.buttons = [self.coms]
261  for control in self.control_plot:
262  control.on_change('value', self.update)
263  for button in self.buttons:
264  button.on_change('active', self.update)
265 
266  self.draw.on_click(self.update_matrix2)
267  self.draw_mode.on_click(self.update_mode)
268  self.rescale.on_click(self.rescale_matrix)
269  self.diag.on_click(self.get_diag)
270  self.cut.on_click(self.cut_matrix)
271  self.inc_mode.on_click(self.mode_increment)
272  self.desinc_mode.on_click(self.mode_desincrement)
273  self.diff_button.on_click(self.plot_sum)
274  self.DB_button.on_click(self.loadDB)
275  self.gamora_comp.on_click(self.gamora_call)
276  self.psf_display.on_click(self.update_psf)
277 
278  self.inputs = HBox(
279  VBox(self.DB_select, self.DB_button, self.comsTags, self.coms,
280  self.plot_select, self.basis_select1, self.iter_select,
281  self.plusTag, self.plus_select, self.moinsTag, self.moins_select,
282  self.diff_button), width=350)
283  self.inputs2 = HBox(
284  VBox(self.DB_select, self.DB_button, self.basis_select2, self.A, self.B,
285  self.power, self.draw, self.cmax, self.cmin, self.rescale,
286  self.axiscut, self.XY, self.cut, self.diag)) #, width=350)
287  self.inputs3 = HBox(
288  VBox(
289  self.DB_select, self.DB_button, self.basis_select3,
290  VBox(
291  VBox(
292  HBox(
293  self.modes_select,
294  HBox(self.desinc_mode, self.inc_mode,
295  height=40))), self.draw_mode)))
296  self.inputs4 = HBox(
297  VBox(
298  HBox(self.DB_select, self.DB_button), self.gamora_tag,
299  self.psf_rec_methods_select, self.error_select,
300  self.independence, self.gamora_comp, self.psf_display_tag,
301  self.psf_display_select, self.psf_display), width=350)
302  self.tab1 = Panel(
303  child=HBox(self.inputs, VBox(self.plog, self.psum)), title="Breakdown")
304  self.tab2 = Panel(
305  child=HBox(
306  VBox(
307  HBox(self.inputs2, self.p2, self.p3),
308  HBox(self.cov_table, self.pcov),
309  HBox(self.cor_table, self.pcor))), title="Cov/cor")
310  self.tab3 = Panel(child=HBox(self.inputs3, self.pmodes), title="Basis")
311  self.tab4 = Panel(
312  child=HBox(self.inputs4, VBox(self.ppsf, self.pcutpsf)), title="PSF")
313  self.tab5 = Panel(
314  child=HBox(VBox(HBox(self.DB_select, self.DB_button), self.param_table)),
315  title="Parameters")
316  self.tabs = Tabs(tabs=[self.tab1, self.tab2, self.tab4, self.tab3, self.tab5])
317 
318  curdoc().clear()
319  self.update(None, None, None)
320 
321  curdoc().add_root(self.tabs) #hplot(inputs,p))#, p, p2)
322  curdoc().add_root(self.dialog)
323 

Member Function Documentation

◆ cov_cor()

def roket_widget.html_display.cov_cor (   self)

Definition at line 731 of file roket_widget.py.

731  def cov_cor(self):
732  cov = np.zeros((6, 6))
733  bufdict = {
734  "0": self.f["noise"][:],
735  "1": self.f["non linearity"][:],
736  "2": self.f["aliasing"][:],
737  "3": self.f["filtered modes"][:],
738  "4": self.f["bandwidth"][:],
739  "5": self.f["tomography"][:]
740  }
741  for i in range(cov.shape[0]):
742  for j in range(cov.shape[1]):
743  if (j >= i):
744  tmpi = self.P.dot(bufdict[str(i)])
745  tmpj = self.P.dot(bufdict[str(j)])
746  cov[i, j] = np.sum(
747  np.mean(tmpi * tmpj, axis=1) -
748  np.mean(tmpi, axis=1) * np.mean(tmpj, axis=1))
749  else:
750  cov[i, j] = cov[j, i]
751 
752  s = np.reshape(np.diag(cov), (cov.shape[0], 1))
753  sst = np.dot(s, s.T)
754  cor = cov / np.sqrt(sst)
755 
756  return cov, cor
757 
Here is the caller graph for this function:

◆ createDataTables()

def roket_widget.html_display.createDataTables (   self)

Definition at line 758 of file roket_widget.py.

758  def createDataTables(self):
759 
760  tmp = [TableColumn(field="Type", title="Covariance")]
761  for item in self.DataTableItems[1:]:
762  tmp.append(TableColumn(field=item, title=item))
763  columns = tmp
764 
765  cov_table = DataTable(source=self.table_cov_source, columns=columns, width=1200,
766  height=280)
767  tmp[0] = TableColumn(field="Type", title="Correlation")
768  cor_table = DataTable(source=self.table_cor_source, columns=columns, width=1200,
769  height=280)
770 
771  tmp = [
772  TableColumn(field="Parameter", title="Parameter"),
773  TableColumn(field="Value", title="Value")
774  ]
775  param_table = DataTable(source=self.table_param_source, columns=tmp, width=700,
776  height=500)
777 
778  return cov_table, cor_table, param_table
779 

◆ cut_matrix()

def roket_widget.html_display.cut_matrix (   self)

Definition at line 518 of file roket_widget.py.

518  def cut_matrix(self):
519  XorY = self.XY.labels[self.XY.active]
520  ax = self.axiscut.value
521  if (XorY == b"X"):
522  data = self.covmat[ax, :]
523  else:
524  data = self.covmat[:, ax]
525  x = np.arange(data.size)
526  self.source2.data = dict(x=x, y=data)
527 

◆ gamora_call()

def roket_widget.html_display.gamora_call (   self)

Definition at line 416 of file roket_widget.py.

416  def gamora_call(self):
417  self.dialog.visible = False
418  psf_type = self.psf_rec_methods_select.value
419  err_active = self.error_select.active
420  err = self.f["noise"][:] * 0.
421  covmodes = err.dot(err.T)
422  independence = self.independence.active
423  fiterr = False
424  self.dialog.content = "Computing covariance matrix..."
425  self.dialog.visible = True
426  for k in err_active:
427  if (self.error_select.labels[k] == b"fitting"):
428  fiterr = True
429  else:
430  if (independence):
431  data = self.f[self.error_select.labels[k]][:]
432  covmodes += data.dot(data.T) / err.shape[1]
433  else:
434  err += self.f[self.error_select.labels[k]][:]
435 
436  if (psf_type == b"Vii"):
437  self.dialog.content = "Reconstructing PSF with Vii (may take a while)..."
438 
439  if (independence):
440  self.otftel, self.otf2, self.psf, self.gamora = gamora.psf_rec_Vii(
441  self.datapath + str(self.DB_select.value), fitting=fiterr,
442  covmodes=covmodes)
443  else:
444  self.otftel, self.otf2, self.psf, self.gamora = gamora.psf_rec_Vii(
445  self.datapath + str(self.DB_select.value), err=err,
446  fitting=fiterr)
447  if (psf_type == b"ROKET"):
448  self.dialog.content = "Reconstructing PSF from ROKET file (may take a while)..."
449  self.dialog.visible = True
450  self.psf, self.gamora = gamora.psf_rec_roket_file(
451  self.datapath + str(self.DB_select.value), err=err)
452  else:
453  self.dialog.content = "PSF reconstruction is available with Vii or ROKET methods only"
454  self.dialog.visible = True
455 
456  self.update_psf()
457  self.sourcepsf.data = dict(
458  x=[
459  list(range(self.psf_compass.shape[0])),
460  list(range(self.psf.shape[0]))
461  ], y=[
462  self.psf_compass[self.psf_compass.shape[0] / 2, :],
463  self.psf[self.psf.shape[0] / 2, :]
464  ], color=["blue", "red"])
465  self.dialog.visible = False
466 
Here is the call graph for this function:

◆ get_diag()

def roket_widget.html_display.get_diag (   self)

Definition at line 513 of file roket_widget.py.

513  def get_diag(self):
514  x = np.arange(self.covmat.shape[0])
515  y = np.diag(self.covmat)
516  self.source2.data = dict(x=x, y=y)
517 

◆ loadDB()

def roket_widget.html_display.loadDB (   self)

/ __|__ _| | | |__ __ _ __| |__ ___ | (__/ _‘ | | | ’_ \/ _` / _| / /(-< ____,_|_|_|_.__/__,___|__\/__/

Definition at line 331 of file roket_widget.py.

331  def loadDB(self):
332  self.dialog.visible = False
333  self.dialog.content = "Loading database..."
334  self.dialog.visible = True
335 
336  self.f = h5py.File(self.datapath + str(self.DB_select.value), mode='r+')
337  self.Lambda_tar = self.f.attrs["target.Lambda"][0]
338  self.Btt = self.f["Btt"][:]
339 
340  self.IF = csr_matrix((self.f["IF.data"][:], self.f["IF.indices"][:],
341  self.f["IF.indptr"][:]))
342  self.IF = self.IF.T
343  #self.TT = self.f["TT"][:]
344  self.P = self.f["P"][:] #/np.sqrt(self.IF.shape[0])
345  #self.modes = self.IF.dot(self.Btt)#np.dot(self.f["IF"][:],self.Btt)
346  # self.modes = self.modes[:,self.swap]
347 
348  self.indx_pup = self.f["indx_pup"][:]
349  self.pup = np.zeros((self.f["dm_dim"].value, self.f["dm_dim"].value))
350 
351  self.niter = self.f["noise"][:].shape[1]
352  self.nactus = self.f["noise"][:].shape[0]
353  self.nmodes = self.P.shape[0]
354  self.cov = self.f["cov"][:]
355  self.cor = self.f["cor"][:]
356  self.psf_compass = np.fft.fftshift(self.f["psf"][:])
357  self.psf_fitting = np.fft.fftshift(self.f["psfortho"][:])
358  self.psf = None
359  self.otftel = None
360  self.otf2 = None
361  self.gamora = None
362 
363  self.plot_type = ["Commands", "Variance"]
364 
365  #self.cov_table, self.cor_table = self.createDataTables()
366  self.updateDataTables()
367  self.update(None, None, None)
368 
369  print("DB loaded")
370  self.dialog.visible = False
371 
Here is the call graph for this function:

◆ mode_desincrement()

def roket_widget.html_display.mode_desincrement (   self)

Definition at line 612 of file roket_widget.py.

612  def mode_desincrement(self):
613  if (self.modes_select.value > 0):
614  self.modes_select.value = self.modes_select.value - 1
615  else:
616  self.modes_select.value = 0
617 

◆ mode_increment()

def roket_widget.html_display.mode_increment (   self)

Definition at line 606 of file roket_widget.py.

606  def mode_increment(self):
607  if (self.modes_select.value < self.nmodes - 1):
608  self.modes_select.value = self.modes_select.value + 1
609  else:
610  self.modes_select.value = self.nmodes - 1
611 

◆ plot_sum()

def roket_widget.html_display.plot_sum (   self)

Definition at line 618 of file roket_widget.py.

618  def plot_sum(self):
619 
620  self.dialog.visible = False
621  self.dialog.content = "Computing..."
622  self.dialog.visible = True
623 
624  plus = self.plus_select.active
625  moins = self.moins_select.active
626  basis_val = self.basis_select1.value
627  plot_val = self.plot_select.value
628  iteration = int(self.iter_select.value)
629 
630  if (plot_val == b"Commands"):
631  data = np.zeros(self.nactus)
632  x = list(range(self.nactus))
633  elif (plot_val == b"Variance"):
634  data = np.zeros((self.nmodes, self.niter)) #self.nmodes)
635  data2 = np.zeros(self.nmodes)
636  x = list(range(self.nmodes))
637  fitp = False
638  fitm = False
639  for i in plus:
640  self.dialog.content = "Computing " + self.plus_select.labels[i]
641  if (self.plus_select.labels[i] != "CORRECT"):
642  if (self.plus_select.labels[i] == b"fitting"):
643  fitp = True
644  else:
645  if (plot_val == b"Commands"):
646  data += np.dot(self.P,
647  self.f[self.coms_list[i]][:][:, iteration])
648  elif (plot_val == b"Variance"):
649  data += np.dot(self.P, self.f[self.coms_list[i]][:])
650  data2 += np.var(
651  np.dot(self.P, self.f[self.coms_list[i]][:]), axis=1)
652  else:
653  theta = np.arctan(
654  self.f.attrs["wfs.ypos"][0] / self.f.attrs["wfs.xpos"][0])
655  theta -= (self.f.attrs["winddir"][0] * np.pi / 180.)
656  r0 = self.f.attrs["r0"] * (self.f.attrs["target.Lambda"][0] /
657  self.f.attrs["wfs.Lambda"][0])**(6. / 5.)
658  RASC = 180 / np.pi * 3600.
659  Dtomo = 0
660  Dbp = 0
661  Dcov = 0
662  dt = self.f.attrs["ittime"]
663  g = self.f.attrs["gain"][0]
664  for k in range(self.f.attrs["nscreens"]):
665  H = self.f.attrs["atm.alt"][k]
666  v = self.f.attrs["windspeed"][k]
667  frac = self.f.attrs["frac"][k]
668  htheta = np.sqrt(self.f.attrs["wfs.xpos"][0]**2 +
669  self.f.attrs["wfs.ypos"][0]**2) / RASC * H
670  Dtomo += 6.88 * (htheta / r0)**(5. / 3.)
671  Dbp += 6.88 * (v * dt / g / r0)**(5. / 3.)
672  rho = np.sqrt(htheta**2 + (v * dt / g)**2 -
673  2 * htheta * v * dt / g * np.cos(np.pi - theta))
674  Dcov += 6.88 * (rho / r0)**(5. / 3.)
675  covar = (Dbp + Dtomo - Dcov) * 0.5 * frac
676 
677  data2 += 2 * covar / (2 * np.pi / self.Lambda_tar)**2 / self.nmodes
678  #data2 += 2*np.sqrt(np.var(np.dot(self.P,self.f["tomography"]),axis=1))*np.sqrt(np.var(np.dot(self.P,self.f["bandwidth"]),axis=1))*np.cos(theta)
679  for i in moins:
680  if (self.plus_select.labels[i] == b"fitting"):
681  fitm = True
682  else:
683  if (plot_val == b"Commands"):
684  data -= np.dot(self.P, self.f[self.coms_list[i]][:][:, iteration])
685  elif (plot_val == b"Variance"):
686  data -= np.dot(self.P, self.f[self.coms_list[i]][:])
687  data2 -= np.var(np.dot(self.P, self.f[self.coms_list[i]][:]), axis=1)
688 
689 
690 # if(basis_val == b"Btt"):
691 # data = np.dot(self.P,data)
692 # data2 = np.dot(self.P,data2)
693  if (plot_val == b"Variance"):
694  data = np.var(data, axis=1)
695  data = np.cumsum(data[self.swap])
696  # theta = np.arctan(self.f.attrs["wfs.ypos"][0]/self.f.attrs["wfs.xpos"][0])
697  # if(np.sign(self.f.attrs["wfs.ypos"][0])<0):
698  # theta += np.pi*0.
699  # theta -= (self.f.attrs["winddir"][0] * np.pi/180.)
700  # data2 += 2*np.sqrt(np.var(np.dot(self.P,self.f["tomography"]),axis=1))*np.sqrt(np.var(np.dot(self.P,self.f["bandwidth"]),axis=1))*np.cos(theta)
701  data2 = np.cumsum(data2[self.swap])
702  data2 = np.exp(-data2 * (2 * np.pi / self.Lambda_tar)**2)
703  print("data2 : ", data2)
704  data = np.exp(-data * (2 * np.pi / self.Lambda_tar)**2)
705  if (fitp and list(self.f.keys()).count("fitting")):
706  data *= np.exp(-self.f["fitting"].value)
707  data2 *= np.exp(-self.f["fitting"].value)
708  print("data2 : ", data2)
709  if (fitm and list(self.f.keys()).count("fitting")):
710  data /= np.exp(-self.f["fitting"].value)
711  data2 /= np.exp(-self.f["fitting"].value)
712  if (list(self.f.keys()).count("SR2")):
713  self.source3.data = dict(
714  x=[x, x, x, x], y=[
715  data,
716  np.ones(len(x)) * self.f["SR"].value,
717  np.ones(len(x)) * self.f["SR2"].value, data2
718  ], color=["blue", "red", "purple", "green"])
719  else:
720  if (list(self.f.keys()).count("SR")):
721  self.source3.data = dict(
722  x=[x, x,
723  x], y=[data,
724  np.ones(len(x)) * self.f["SR"].value, data2],
725  color=["blue", "red", "green"])
726  else:
727  self.source3.data = dict(x=x, y=data)
728  print("Sum plotted")
729  self.dialog.visible = False
730 

◆ rescale_matrix()

def roket_widget.html_display.rescale_matrix (   self)

Definition at line 497 of file roket_widget.py.

497  def rescale_matrix(self):
498  self.dialog.visible = False
499  vmin = self.cmin.value
500  vmax = self.cmax.value
501  self.dialog.content = "Updating matrix..."
502  self.dialog.visible = True
503  if (self.old):
504  os.remove(self.old)
505  time = str(datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%f'))
506  self.old = "/home/fferreira/public_html/roket_display" + time + ".png"
507  mpl.image.imsave(self.old, self.covmat, vmin=vmin, vmax=vmax)
508  self.p2.image_url(
509  url=dict(value=self.url + time + ".png"), x=0, y=0,
510  w=self.covmat.shape[0], h=self.covmat.shape[0])
511  self.dialog.visible = False
512 

◆ update()

def roket_widget.html_display.update (   self,
  attrname,
  old,
  new 
)

Definition at line 372 of file roket_widget.py.

372  def update(self, attrname, old, new):
373  # plot_val = plot_type.value
374  self.source1.data = dict(x=[], y=[], color=[], typec=[])
375 
376  coms_active = self.coms.active
377  plot_val = self.plot_select.value
378  basis_val = self.basis_select1.value
379  iteration = int(self.iter_select.value)
380 
381  yi = []
382  xi = []
383  typec = []
384  coloris = []
385  for jj in coms_active:
386  j = self.coms_list[jj]
387  data = self.f[j][:]
388  if (plot_val == b"Commands"):
389  if (basis_val == b"Actuators"):
390  yi.append(data[:, iteration].tolist())
391  self.plog.xaxis.axis_label = "Actuators"
392  elif (basis_val == b"Btt"):
393  yi.append(np.dot(self.P, data[:, iteration])[self.swap].tolist())
394  self.plog.xaxis.axis_label = "Modes"
395  xi.append(list(range(len(data[:, iteration]))))
396  typec.append([j] * len(data[:, iteration]))
397  coloris.append(self.colors[j])
398  self.plog.yaxis.axis_label = "Volts"
399 
400  elif (plot_val == b"Variance"):
401  if (basis_val == b"Actuators"):
402  yi.append(np.var(data, axis=1).tolist())
403  self.plog.xaxis.axis_label = "Actuators"
404  elif (basis_val == b"Btt"):
405  yi.append(np.var(np.dot(self.P, data), axis=1)[self.swap].tolist())
406  self.plog.xaxis.axis_label = "Modes"
407  xi.append(list(range(len(np.var(data, axis=1)))))
408  typec.append([j] * len(np.var(data, axis=1)))
409  coloris.append(self.colors[j])
410  self.plog.yaxis.axis_label = "Variance"
411 
412  self.source1.data = dict(x=xi, y=yi, color=coloris, typec=typec)
413 
414  print("Plots updated")
415 
Here is the caller graph for this function:

◆ update_matrix2()

def roket_widget.html_display.update_matrix2 (   self)

Definition at line 528 of file roket_widget.py.

528  def update_matrix2(self):
529  self.dialog.visible = False
530  if (self.old):
531  os.remove(self.old)
532  #self.draw.disabled = True
533  A_val = self.A.value
534  B_val = self.B.value
535  basis = self.basis_select2.value
536  powa = self.power.value
537  self.dialog.content = "Computing and loading matrix..."
538  self.dialog.visible = True
539 
540  A_cov = self.f[A_val][:]
541  B_cov = self.f[B_val][:]
542  A_cov -= np.tile(np.mean(A_cov, axis=1), (A_cov.shape[1], 1)).T
543  B_cov -= np.tile(np.mean(B_cov, axis=1), (B_cov.shape[1], 1)).T
544  if (basis == b"Btt"):
545  A_cov = np.dot(self.P, A_cov)
546  B_cov = np.dot(self.P, B_cov)
547  print("Values ok")
548  self.covmat = (np.dot(A_cov, B_cov.T) / B_cov.shape[1])
549  print("dot product ok")
550  if (powa != 1):
551  self.covmat = np.abs(self.covmat)**powa * np.sign(self.covmat)
552  print("scale adjusted")
553  self.cmin.start = self.covmat.min()
554  self.cmin.end = self.covmat.max()
555  self.cmin.value = self.cmin.start
556  self.cmin.step = (self.cmin.end - self.cmin.start) / 100.
557  self.cmax.start = self.covmat.min()
558  self.cmax.end = self.covmat.max()
559  self.cmax.value = self.cmax.end
560  self.cmax.step = self.cmin.step
561  self.axiscut.end = self.covmat.shape[0]
562  time = str(datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%f'))
563  self.old = "/home/fferreira/public_html/roket_display" + time + ".png"
564  mpl.image.imsave(self.old, self.covmat)
565  self.p2.image_url(
566  url=dict(value=self.url + time + ".png"), x=0, y=0,
567  w=self.covmat.shape[0], h=self.covmat.shape[0])
568 
569  #self.sourceC.data = dict(url=[self.url],x=0,y=covmat.shape[0],dw=covmat.shape[0],dh=covmat.shape[0])
570  #self.draw.disabled = False
571  print("Matrix updated2")
572  self.dialog.visible = False
573 

◆ update_mode()

def roket_widget.html_display.update_mode (   self)

Definition at line 574 of file roket_widget.py.

574  def update_mode(self):
575  self.dialog.visible = False
576  if (self.old):
577  os.remove(self.old)
578  N = self.modes_select.value
579  if (N >= self.nmodes):
580  N = self.nmodes - 1
581  self.modes_select.value = N
582  basis = self.basis_select3.value
583  self.dialog.content = "Loading..."
584  self.dialog.visible = True
585 
586  if (basis == b"Actuators"):
587  pup = self.pup.flatten()
588  pup[self.indx_pup] = self.IF[:, N].toarray() #self.f["IF"][:][:,N]
589  self.pup = pup.reshape(self.pup.shape)
590  elif (basis == b"Btt"):
591  pup = self.pup.flatten()
592  pup[self.indx_pup] = self.IF[:, N - 2].dot(self.Btt)
593  self.pup = pup.reshape(self.pup.shape)
594  time = str(datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%f'))
595  self.old = "/home/fferreira/public_html/roket_display" + time + ".png"
596  mpl.image.imsave(self.old, self.pup)
597  self.pmodes.image_url(
598  url=dict(value=self.url + time + ".png"), x=0, y=0, w=self.pup.shape[0],
599  h=self.pup.shape[0])
600 
601  #self.sourceC.data = dict(url=[self.url],x=0,y=covmat.shape[0],dw=covmat.shape[0],dh=covmat.shape[0])
602  #self.draw.disabled = False
603  print("Mode updated")
604  self.dialog.visible = False
605 

◆ update_psf()

def roket_widget.html_display.update_psf (   self)

Definition at line 467 of file roket_widget.py.

467  def update_psf(self):
468  self.dialog.visible = False
469  self.dialog.content = "Updating PSF display..."
470  self.dialog.visible = True
471  psf_type = self.psf_display_select.value
472  image = None
473  if (psf_type == b"COMPASS"):
474  image = np.log10(self.psf_compass)
475  if (psf_type == b"Vii" or psf_type == b"ROKET"):
476  image = np.log10(self.psf)
477  if (psf_type == b"Fitting"):
478  image = np.log10(self.psf_fitting)
479  if (psf_type == b"OTF Telescope"):
480  image = np.fft.fftshift(self.otftel)
481  if (psf_type == b"OTF res"):
482  image = np.fft.fftshift(self.otf2)
483 
484  if (image is not None):
485  if (self.old):
486  os.remove(self.old)
487 
488  time = str(datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%f'))
489  self.old = "/home/fferreira/public_html/roket_display" + time + ".png"
490  mpl.image.imsave(self.old, image)
491  self.ppsf.image_url(
492  url=dict(value=self.url + time + ".png"), x=0, y=0, w=image.shape[0],
493  h=image.shape[0])
494 
495  self.dialog.visible = False
496 
Here is the caller graph for this function:

◆ updateDataTables()

def roket_widget.html_display.updateDataTables (   self)

Definition at line 780 of file roket_widget.py.

780  def updateDataTables(self):
781  self.table_cov_source.data = dict(
782  Type=self.DataTableItems[1:], Noise=self.cov[:, 0],
783  Truncature=self.cov[:, 1], Aliasing=self.cov[:, 2],
784  FilteredModes=self.cov[:, 3], Bandwidth=self.cov[:, 4],
785  Tomography=self.cov[:, 5])
786  self.table_cor_source.data = dict(
787  Type=self.DataTableItems[1:], Noise=self.cor[:, 0],
788  Truncature=self.cor[:, 1], Aliasing=self.cor[:, 2],
789  FilteredModes=self.cor[:, 3], Bandwidth=self.cor[:, 4],
790  Tomography=self.cor[:, 5])
791  params = list(self.f.attrs.keys())
792  params.sort()
793  values = []
794  for k in params:
795  values.append(self.f.attrs[k])
796  self.table_param_source.data = dict(Parameter=params, Value=values)
797 
798  self.pcov_source.data = dict(image=[self.cov], x=[0], y=[0], dw=[6], dh=[6],
799  palette="Spectral11")
800  self.pcor_source.data = dict(image=[self.cor], x=[0], y=[0], dw=[6], dh=[6],
801  palette="Spectral11")
802 
Here is the caller graph for this function:

Member Data Documentation

◆ A

roket_widget.html_display.A

Definition at line 131 of file roket_widget.py.

◆ axiscut

roket_widget.html_display.axiscut

Definition at line 145 of file roket_widget.py.

◆ B

roket_widget.html_display.B

Definition at line 133 of file roket_widget.py.

◆ basis

roket_widget.html_display.basis

Definition at line 96 of file roket_widget.py.

◆ basis_select1

roket_widget.html_display.basis_select1

Definition at line 118 of file roket_widget.py.

◆ basis_select2

roket_widget.html_display.basis_select2

Definition at line 135 of file roket_widget.py.

◆ basis_select3

roket_widget.html_display.basis_select3

Definition at line 178 of file roket_widget.py.

◆ Btt

roket_widget.html_display.Btt

Definition at line 65 of file roket_widget.py.

◆ buttons

roket_widget.html_display.buttons

Definition at line 260 of file roket_widget.py.

◆ cmax

roket_widget.html_display.cmax

Definition at line 140 of file roket_widget.py.

◆ cmin

roket_widget.html_display.cmin

Definition at line 139 of file roket_widget.py.

◆ colors

roket_widget.html_display.colors

Definition at line 200 of file roket_widget.py.

◆ coms

roket_widget.html_display.coms

Definition at line 112 of file roket_widget.py.

◆ coms_list

roket_widget.html_display.coms_list

Definition at line 83 of file roket_widget.py.

◆ comsTags

roket_widget.html_display.comsTags

Definition at line 111 of file roket_widget.py.

◆ control_plot

roket_widget.html_display.control_plot

Definition at line 247 of file roket_widget.py.

◆ cor

roket_widget.html_display.cor

Definition at line 89 of file roket_widget.py.

◆ cov

roket_widget.html_display.cov

Definition at line 88 of file roket_widget.py.

◆ covmat

roket_widget.html_display.covmat

Definition at line 55 of file roket_widget.py.

◆ cut

roket_widget.html_display.cut

Definition at line 144 of file roket_widget.py.

◆ datapath

roket_widget.html_display.datapath

Definition at line 54 of file roket_widget.py.

◆ DataTableItems

roket_widget.html_display.DataTableItems

Definition at line 147 of file roket_widget.py.

◆ DB_button

roket_widget.html_display.DB_button

Definition at line 115 of file roket_widget.py.

◆ DB_select

roket_widget.html_display.DB_select

Definition at line 113 of file roket_widget.py.

◆ desinc_mode

roket_widget.html_display.desinc_mode

Definition at line 185 of file roket_widget.py.

◆ diag

roket_widget.html_display.diag

Definition at line 143 of file roket_widget.py.

◆ dialog

roket_widget.html_display.dialog
    _    _          _

__ __ _(_)__| |__ _ ___| |_ ___ \ V V / / _/ _ / -_) _(-< _/_/|__,___, ___|__/__/ |___/

Definition at line 107 of file roket_widget.py.

◆ diff_button

roket_widget.html_display.diff_button

Definition at line 129 of file roket_widget.py.

◆ draw

roket_widget.html_display.draw

Definition at line 142 of file roket_widget.py.

◆ draw_mode

roket_widget.html_display.draw_mode

Definition at line 183 of file roket_widget.py.

◆ error_select

roket_widget.html_display.error_select

Definition at line 196 of file roket_widget.py.

◆ f

roket_widget.html_display.f

Definition at line 62 of file roket_widget.py.

◆ f_list

roket_widget.html_display.f_list

Definition at line 58 of file roket_widget.py.

◆ files

roket_widget.html_display.files

Definition at line 56 of file roket_widget.py.

◆ gamora

roket_widget.html_display.gamora

Definition at line 95 of file roket_widget.py.

◆ gamora_comp

roket_widget.html_display.gamora_comp

Definition at line 198 of file roket_widget.py.

◆ gamora_tag

roket_widget.html_display.gamora_tag

Definition at line 194 of file roket_widget.py.

◆ hover

roket_widget.html_display.hover

Definition at line 214 of file roket_widget.py.

◆ hoverlog

roket_widget.html_display.hoverlog

Definition at line 215 of file roket_widget.py.

◆ IF

roket_widget.html_display.IF

Definition at line 67 of file roket_widget.py.

◆ inc_mode

roket_widget.html_display.inc_mode

Definition at line 184 of file roket_widget.py.

◆ independence

roket_widget.html_display.independence

Definition at line 187 of file roket_widget.py.

◆ indx_pup

roket_widget.html_display.indx_pup

Definition at line 73 of file roket_widget.py.

◆ inputs

roket_widget.html_display.inputs

Definition at line 278 of file roket_widget.py.

◆ inputs2

roket_widget.html_display.inputs2

Definition at line 283 of file roket_widget.py.

◆ inputs3

roket_widget.html_display.inputs3

Definition at line 287 of file roket_widget.py.

◆ inputs4

roket_widget.html_display.inputs4

Definition at line 296 of file roket_widget.py.

◆ iter_select

roket_widget.html_display.iter_select

Definition at line 120 of file roket_widget.py.

◆ Lambda_tar

roket_widget.html_display.Lambda_tar

Definition at line 64 of file roket_widget.py.

◆ modes_select

roket_widget.html_display.modes_select

Definition at line 180 of file roket_widget.py.

◆ moins_select

roket_widget.html_display.moins_select

Definition at line 127 of file roket_widget.py.

◆ moinsTag

roket_widget.html_display.moinsTag

Definition at line 126 of file roket_widget.py.

◆ nactus

roket_widget.html_display.nactus

Definition at line 77 of file roket_widget.py.

◆ niter

roket_widget.html_display.niter

Definition at line 76 of file roket_widget.py.

◆ nmodes

roket_widget.html_display.nmodes

Definition at line 78 of file roket_widget.py.

◆ old

roket_widget.html_display.old

Definition at line 98 of file roket_widget.py.

◆ otf2

roket_widget.html_display.otf2

Definition at line 94 of file roket_widget.py.

◆ otftel

roket_widget.html_display.otftel

Definition at line 93 of file roket_widget.py.

◆ P

roket_widget.html_display.P

Definition at line 71 of file roket_widget.py.

◆ p2

roket_widget.html_display.p2

Definition at line 236 of file roket_widget.py.

◆ p3

roket_widget.html_display.p3

Definition at line 238 of file roket_widget.py.

◆ param_table

roket_widget.html_display.param_table

Definition at line 162 of file roket_widget.py.

◆ ParamTableItems

roket_widget.html_display.ParamTableItems

Definition at line 151 of file roket_widget.py.

◆ pcor

roket_widget.html_display.pcor

Definition at line 172 of file roket_widget.py.

◆ pcor_source

roket_widget.html_display.pcor_source

Definition at line 165 of file roket_widget.py.

◆ pcov

roket_widget.html_display.pcov

Definition at line 169 of file roket_widget.py.

◆ pcov_source

roket_widget.html_display.pcov_source

Definition at line 163 of file roket_widget.py.

◆ pcutpsf

roket_widget.html_display.pcutpsf

Definition at line 254 of file roket_widget.py.

◆ plog

roket_widget.html_display.plog

Definition at line 219 of file roket_widget.py.

◆ plot_select

roket_widget.html_display.plot_select

Definition at line 116 of file roket_widget.py.

◆ plot_type

roket_widget.html_display.plot_type

Definition at line 82 of file roket_widget.py.

◆ plus_select

roket_widget.html_display.plus_select

Definition at line 123 of file roket_widget.py.

◆ plusTag

roket_widget.html_display.plusTag

Definition at line 122 of file roket_widget.py.

◆ pmodes

roket_widget.html_display.pmodes

Definition at line 243 of file roket_widget.py.

◆ power

roket_widget.html_display.power

Definition at line 137 of file roket_widget.py.

◆ ppsf

roket_widget.html_display.ppsf

Definition at line 251 of file roket_widget.py.

◆ psf

roket_widget.html_display.psf

Definition at line 92 of file roket_widget.py.

◆ psf_compass

roket_widget.html_display.psf_compass

Definition at line 90 of file roket_widget.py.

◆ psf_display

roket_widget.html_display.psf_display

Definition at line 199 of file roket_widget.py.

◆ psf_display_select

roket_widget.html_display.psf_display_select

Definition at line 188 of file roket_widget.py.

◆ psf_display_tag

roket_widget.html_display.psf_display_tag

Definition at line 195 of file roket_widget.py.

◆ psf_fitting

roket_widget.html_display.psf_fitting

Definition at line 91 of file roket_widget.py.

◆ psf_rec_methods_select

roket_widget.html_display.psf_rec_methods_select

Definition at line 192 of file roket_widget.py.

◆ psum

roket_widget.html_display.psum

Definition at line 221 of file roket_widget.py.

◆ pup

roket_widget.html_display.pup

Definition at line 74 of file roket_widget.py.

◆ rescale

roket_widget.html_display.rescale

Definition at line 141 of file roket_widget.py.

◆ source1

roket_widget.html_display.source1

Definition at line 209 of file roket_widget.py.

◆ source2

roket_widget.html_display.source2

Definition at line 210 of file roket_widget.py.

◆ source3

roket_widget.html_display.source3

Definition at line 211 of file roket_widget.py.

◆ sourcepsf

roket_widget.html_display.sourcepsf

Definition at line 212 of file roket_widget.py.

◆ swap

roket_widget.html_display.swap

Definition at line 79 of file roket_widget.py.

◆ tab1

roket_widget.html_display.tab1

Definition at line 302 of file roket_widget.py.

◆ tab2

roket_widget.html_display.tab2

Definition at line 304 of file roket_widget.py.

◆ tab3

roket_widget.html_display.tab3

Definition at line 310 of file roket_widget.py.

◆ tab4

roket_widget.html_display.tab4

Definition at line 311 of file roket_widget.py.

◆ tab5

roket_widget.html_display.tab5

Definition at line 313 of file roket_widget.py.

◆ table_cor_source

roket_widget.html_display.table_cor_source

Definition at line 156 of file roket_widget.py.

◆ table_cov_source

roket_widget.html_display.table_cov_source

Definition at line 153 of file roket_widget.py.

◆ table_param_source

roket_widget.html_display.table_param_source

Definition at line 160 of file roket_widget.py.

◆ tabs

roket_widget.html_display.tabs

Definition at line 316 of file roket_widget.py.

◆ url

roket_widget.html_display.url

Definition at line 97 of file roket_widget.py.

◆ xdr

roket_widget.html_display.xdr

Definition at line 234 of file roket_widget.py.

◆ xdr2

roket_widget.html_display.xdr2

Definition at line 241 of file roket_widget.py.

◆ xdr3

roket_widget.html_display.xdr3

Definition at line 249 of file roket_widget.py.

◆ xdr4

roket_widget.html_display.xdr4

Definition at line 167 of file roket_widget.py.

◆ XY

roket_widget.html_display.XY

Definition at line 146 of file roket_widget.py.

◆ ydr

roket_widget.html_display.ydr

Definition at line 235 of file roket_widget.py.

◆ ydr2

roket_widget.html_display.ydr2

Definition at line 242 of file roket_widget.py.

◆ ydr3

roket_widget.html_display.ydr3

Definition at line 250 of file roket_widget.py.

◆ ydr4

roket_widget.html_display.ydr4

Definition at line 168 of file roket_widget.py.


The documentation for this class was generated from the following file: