Auto detect varying angle in h5 viewer
This commit is contained in:
parent
6a341e5001
commit
ea41301605
@ -94,7 +94,7 @@ def create():
|
|||||||
temperature_spinner.value = None
|
temperature_spinner.value = None
|
||||||
|
|
||||||
gamma, nu = calculate_pol(det_data, index)
|
gamma, nu = calculate_pol(det_data, index)
|
||||||
omega = np.ones((IMAGE_H, IMAGE_W)) * det_data["rot_angle"][index]
|
omega = np.ones((IMAGE_H, IMAGE_W)) * det_data["variable"][index]
|
||||||
image_source.data.update(gamma=[gamma], nu=[nu], omega=[omega])
|
image_source.data.update(gamma=[gamma], nu=[nu], omega=[omega])
|
||||||
|
|
||||||
def update_overview_plot():
|
def update_overview_plot():
|
||||||
@ -126,10 +126,10 @@ def create():
|
|||||||
overview_plot_y_image_source.data.update(y=[0], dh=[n_im])
|
overview_plot_y_image_source.data.update(y=[0], dh=[n_im])
|
||||||
|
|
||||||
elif frame_button_group.active == 1: # Omega
|
elif frame_button_group.active == 1: # Omega
|
||||||
overview_plot_x.axis[1].axis_label = "Omega"
|
overview_plot_x.axis[1].axis_label = det_data["variable_name"]
|
||||||
overview_plot_y.axis[1].axis_label = "Omega"
|
overview_plot_y.axis[1].axis_label = det_data["variable_name"]
|
||||||
|
|
||||||
om = det_data["rot_angle"]
|
om = det_data["variable"]
|
||||||
om_start = om[0]
|
om_start = om[0]
|
||||||
om_end = (om[-1] - om[0]) * n_im / (n_im - 1)
|
om_end = (om[-1] - om[0]) * n_im / (n_im - 1)
|
||||||
overview_plot_x_image_source.data.update(y=[om_start], dh=[om_end])
|
overview_plot_x_image_source.data.update(y=[om_start], dh=[om_end])
|
||||||
@ -363,7 +363,7 @@ def create():
|
|||||||
def frame_button_group_callback(_active):
|
def frame_button_group_callback(_active):
|
||||||
update_overview_plot()
|
update_overview_plot()
|
||||||
|
|
||||||
frame_button_group = RadioButtonGroup(labels=["Frames", "Omega"], active=0)
|
frame_button_group = RadioButtonGroup(labels=["Frames", "Variable Angle"], active=0)
|
||||||
frame_button_group.on_click(frame_button_group_callback)
|
frame_button_group.on_click(frame_button_group_callback)
|
||||||
|
|
||||||
roi_avg_plot = Plot(
|
roi_avg_plot = Plot(
|
||||||
|
@ -52,7 +52,14 @@ def read_detector_data(filepath):
|
|||||||
|
|
||||||
det_data = {"data": data}
|
det_data = {"data": data}
|
||||||
|
|
||||||
det_data["rot_angle"] = h5f["/entry1/area_detector2/rotation_angle"][:] # om, sometimes ph
|
det_data["zebra_mode"] = h5f.get("/entry1/zebra_mode", "nb")
|
||||||
|
|
||||||
|
# om, sometimes ph
|
||||||
|
if det_data["zebra_mode"] == "nb":
|
||||||
|
det_data["rot_angle"] = h5f["/entry1/area_detector2/rotation_angle"][:]
|
||||||
|
else: # bi
|
||||||
|
det_data["rot_angle"] = h5f["/entry1/sample/rotation_angle"][:]
|
||||||
|
|
||||||
det_data["pol_angle"] = h5f["/entry1/ZEBRA/area_detector2/polar_angle"][:] # gammad
|
det_data["pol_angle"] = h5f["/entry1/ZEBRA/area_detector2/polar_angle"][:] # gammad
|
||||||
det_data["tlt_angle"] = h5f["/entry1/ZEBRA/area_detector2/tilt_angle"][:] # nud
|
det_data["tlt_angle"] = h5f["/entry1/ZEBRA/area_detector2/tilt_angle"][:] # nud
|
||||||
det_data["ddist"] = h5f["/entry1/ZEBRA/area_detector2/distance"][:]
|
det_data["ddist"] = h5f["/entry1/ZEBRA/area_detector2/distance"][:]
|
||||||
@ -61,6 +68,14 @@ def read_detector_data(filepath):
|
|||||||
det_data["phi_angle"] = h5f["/entry1/sample/phi"][:] # ph
|
det_data["phi_angle"] = h5f["/entry1/sample/phi"][:] # ph
|
||||||
det_data["UB"] = h5f["/entry1/sample/UB"][:].reshape(3, 3)
|
det_data["UB"] = h5f["/entry1/sample/UB"][:].reshape(3, 3)
|
||||||
|
|
||||||
|
for var in ("rot_angle", "pol_angle", "tlt_angle", "chi_angle", "phi_angle"):
|
||||||
|
if abs(det_data[var][0] - det_data[var][-1]) > 0.1:
|
||||||
|
det_data["variable"] = det_data[var]
|
||||||
|
det_data["variable_name"] = var
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
raise ValueError("No angles that vary")
|
||||||
|
|
||||||
# optional parameters
|
# optional parameters
|
||||||
if "/entry1/sample/magnetic_field" in h5f:
|
if "/entry1/sample/magnetic_field" in h5f:
|
||||||
det_data["magnetic_field"] = h5f["/entry1/sample/magnetic_field"][:]
|
det_data["magnetic_field"] = h5f["/entry1/sample/magnetic_field"][:]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user