Implement angular limit updates from geom files
This commit is contained in:
parent
d36686177d
commit
eb3cc99aeb
@ -1,3 +1,6 @@
|
|||||||
|
import base64
|
||||||
|
import io
|
||||||
|
|
||||||
from bokeh.layouts import column, row
|
from bokeh.layouts import column, row
|
||||||
from bokeh.models import (
|
from bokeh.models import (
|
||||||
Button,
|
Button,
|
||||||
@ -16,10 +19,36 @@ from bokeh.models import (
|
|||||||
TextInput,
|
TextInput,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
import pyzebra
|
||||||
|
|
||||||
|
|
||||||
def create():
|
def create():
|
||||||
|
def _update_ang_lims(ang_lims):
|
||||||
|
sttgamma_min.value, sttgamma_max.value, _ = ang_lims["gamma"]
|
||||||
|
omega_min.value, omega_max.value, _ = ang_lims["omega"]
|
||||||
|
chinu_min.value, chinu_max.value, _ = ang_lims.get("chi") or ang_lims.get("nu")
|
||||||
|
phi_min.value, phi_max.value, _ = ang_lims["phi"]
|
||||||
|
|
||||||
|
def geom_radiogroup_callback(_attr, _old, new):
|
||||||
|
if new == 0:
|
||||||
|
geom_file = pyzebra.get_zebraBI_default_geom_file()
|
||||||
|
else:
|
||||||
|
geom_file = pyzebra.get_zebraNB_default_geom_file()
|
||||||
|
|
||||||
|
_update_ang_lims(pyzebra.read_ang_limits(geom_file))
|
||||||
|
|
||||||
geom_radiogroup_div = Div(text="Geometry:")
|
geom_radiogroup_div = Div(text="Geometry:")
|
||||||
geom_radiogroup = RadioGroup(labels=["bisecting", "normal beam"], width=150)
|
geom_radiogroup = RadioGroup(labels=["bisecting", "normal beam"], width=150)
|
||||||
|
geom_radiogroup.on_change("active", geom_radiogroup_callback)
|
||||||
|
|
||||||
|
def open_geom_callback(_attr, _old, new):
|
||||||
|
with io.StringIO(base64.b64decode(new).decode()) as geom_file:
|
||||||
|
_update_ang_lims(pyzebra.read_ang_limits(geom_file))
|
||||||
|
|
||||||
|
open_geom_div = Div(text="or open GEOM:")
|
||||||
|
open_geom = FileInput(accept=".geom", width=200)
|
||||||
|
open_geom.on_change("value", open_geom_callback)
|
||||||
|
|
||||||
open_cfl_div = Div(text="or open CFL:")
|
open_cfl_div = Div(text="or open CFL:")
|
||||||
open_cfl = FileInput(accept=".cfl", width=200)
|
open_cfl = FileInput(accept=".cfl", width=200)
|
||||||
|
|
||||||
@ -36,8 +65,6 @@ def create():
|
|||||||
phi_min = NumericInput(title="phi", width=50, mode="float")
|
phi_min = NumericInput(title="phi", width=50, mode="float")
|
||||||
phi_max = NumericInput(title="\u200B", width=50, mode="float")
|
phi_max = NumericInput(title="\u200B", width=50, mode="float")
|
||||||
|
|
||||||
open_geom_div = Div(text="or open GEOM:")
|
|
||||||
open_geom = FileInput(accept=".geom", width=200)
|
|
||||||
open_cif_div = Div(text="or open CIF:")
|
open_cif_div = Div(text="or open CIF:")
|
||||||
open_cif = FileInput(accept=".cif", width=200)
|
open_cif = FileInput(accept=".cif", width=200)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user