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
|
||||
|
||||
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])
|
||||
|
||||
def update_overview_plot():
|
||||
@ -126,10 +126,10 @@ def create():
|
||||
overview_plot_y_image_source.data.update(y=[0], dh=[n_im])
|
||||
|
||||
elif frame_button_group.active == 1: # Omega
|
||||
overview_plot_x.axis[1].axis_label = "Omega"
|
||||
overview_plot_y.axis[1].axis_label = "Omega"
|
||||
overview_plot_x.axis[1].axis_label = det_data["variable_name"]
|
||||
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_end = (om[-1] - om[0]) * n_im / (n_im - 1)
|
||||
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):
|
||||
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)
|
||||
|
||||
roi_avg_plot = Plot(
|
||||
|
@ -52,7 +52,14 @@ def read_detector_data(filepath):
|
||||
|
||||
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["tlt_angle"] = h5f["/entry1/ZEBRA/area_detector2/tilt_angle"][:] # nud
|
||||
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["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
|
||||
if "/entry1/sample/magnetic_field" in h5f:
|
||||
det_data["magnetic_field"] = h5f["/entry1/sample/magnetic_field"][:]
|
||||
|
Loading…
x
Reference in New Issue
Block a user