Display experiment conditions in DataTable

This commit is contained in:
usov_i 2021-04-12 18:18:59 +02:00
parent ccc075975f
commit 2a60c86b48

View File

@ -12,10 +12,12 @@ from bokeh.models import (
CheckboxGroup, CheckboxGroup,
ColumnDataSource, ColumnDataSource,
DataRange1d, DataRange1d,
DataTable,
Div, Div,
FileInput, FileInput,
Grid, Grid,
MultiSelect, MultiSelect,
NumberFormatter,
HoverTool, HoverTool,
Image, Image,
Line, Line,
@ -28,8 +30,8 @@ from bokeh.models import (
Rect, Rect,
ResetTool, ResetTool,
Select, Select,
Spacer,
Spinner, Spinner,
TableColumn,
TextAreaInput, TextAreaInput,
TextInput, TextInput,
Title, Title,
@ -100,14 +102,14 @@ def create():
image_glyph.color_mapper.high = im_max image_glyph.color_mapper.high = im_max
if "mf" in det_data: if "mf" in det_data:
mf_spinner.value = det_data["mf"][index] metadata_table_source.data.update(mf=[det_data["mf"][index]])
else: else:
mf_spinner.value = None metadata_table_source.data.update(mf=[None])
if "temp" in det_data: if "temp" in det_data:
temp_spinner.value = det_data["temp"][index] metadata_table_source.data.update(temp=[det_data["temp"][index]])
else: else:
temp_spinner.value = None metadata_table_source.data.update(temp=[None])
gamma, nu = calculate_pol(det_data, index) gamma, nu = calculate_pol(det_data, index)
omega = np.ones((IMAGE_H, IMAGE_W)) * det_data["omega"][index] omega = np.ones((IMAGE_H, IMAGE_W)) * det_data["omega"][index]
@ -176,9 +178,9 @@ def create():
zebra_mode = det_data["zebra_mode"] zebra_mode = det_data["zebra_mode"]
if zebra_mode == "nb": if zebra_mode == "nb":
geometry_textinput.value = "normal beam" metadata_table_source.data.update(geom=["normal beam"])
else: # zebra_mode == "bi" else: # zebra_mode == "bi"
geometry_textinput.value = "bisecting" metadata_table_source.data.update(geom=["bisecting"])
update_image(0) update_image(0)
update_overview_plot() update_overview_plot()
@ -572,9 +574,20 @@ def create():
selection_button = Button(label="Add selection") selection_button = Button(label="Add selection")
selection_button.on_click(selection_button_callback) selection_button.on_click(selection_button_callback)
mf_spinner = Spinner(title="Magnetic field:", format="0.00", width=100, disabled=True) metadata_table_source = ColumnDataSource(dict(geom=[""], temp=[None], mf=[None]))
temp_spinner = Spinner(title="Temperature:", format="0.00", width=100, disabled=True) num_formatter = NumberFormatter(format="0.00", nan_format="")
geometry_textinput = TextInput(title="Geometry:", width=120, disabled=True) metadata_table = DataTable(
source=metadata_table_source,
columns=[
TableColumn(field="geom", title="Geometry", width=100),
TableColumn(field="temp", title="Temperature", formatter=num_formatter, width=100),
TableColumn(field="mf", title="Magnetic Field", formatter=num_formatter, width=100),
],
width=300,
height=50,
autosize_mode="none",
index_position=None,
)
# Final layout # Final layout
import_layout = column(proposal_textinput, upload_div, upload_button, file_select) import_layout = column(proposal_textinput, upload_div, upload_button, file_select)
@ -588,8 +601,7 @@ def create():
) )
layout_controls = row( layout_controls = row(
column(selection_button, selection_list), column(selection_button, selection_list), column(metadata_table, index_spinner, hkl_button),
column(row(mf_spinner, temp_spinner), row(geometry_textinput, index_spinner), hkl_button),
) )
layout_overview = column( layout_overview = column(