diff --git a/pyzebra/app/panel_hdf_viewer.py b/pyzebra/app/panel_hdf_viewer.py index cec30cb..1f8549f 100644 --- a/pyzebra/app/panel_hdf_viewer.py +++ b/pyzebra/app/panel_hdf_viewer.py @@ -144,10 +144,11 @@ def create(): overview_plot_y_image_source.data.update(y=[0], dh=[n_im]) elif frame_button_group.active == 1: # Variable angle - overview_plot_x.axis[1].axis_label = det_data["variable_name"] - overview_plot_y.axis[1].axis_label = det_data["variable_name"] + scan_motor = det_data["scan_motor"] + overview_plot_x.axis[1].axis_label = scan_motor + overview_plot_y.axis[1].axis_label = scan_motor - var = det_data["variable"] + var = det_data[scan_motor] var_start = var[0] var_end = (var[-1] - var[0]) * n_im / (n_im - 1) overview_plot_x_image_source.data.update(y=[var_start], dh=[var_end]) diff --git a/pyzebra/app/panel_spind.py b/pyzebra/app/panel_spind.py index 27b8021..5e27897 100644 --- a/pyzebra/app/panel_spind.py +++ b/pyzebra/app/panel_spind.py @@ -189,8 +189,8 @@ def prepare_event_file(export_filename, roi_dict, path_prefix=""): chi = dat["chi"][0] phi = dat["phi"][0] - var_angle = dat["variable"] - var_angle_name = dat["variable_name"] + scan_motor = dat["scan_motor"] + var_angle = dat[scan_motor] for roi in rois: x0, xN, y0, yN, fr0, frN = roi @@ -210,15 +210,15 @@ def prepare_event_file(export_filename, roi_dict, path_prefix=""): var_step = var_C - var_F var_p = var_F + var_step * frStep - if var_angle_name == "gamma": + if scan_motor == "gamma": gamma = var_p - elif var_angle_name == "omega": + elif scan_motor == "omega": omega = var_p - elif var_angle_name == "nu": + elif scan_motor == "nu": nu = var_p - elif var_angle_name == "chi": + elif scan_motor == "chi": chi = var_p - elif var_angle_name == "phi": + elif scan_motor == "phi": phi = var_p intensity = coeff[1] * abs(coeff[2] * var_step) * math.sqrt(2) * math.sqrt(np.pi) diff --git a/pyzebra/ccl_io.py b/pyzebra/ccl_io.py index ac08e1c..b42289c 100644 --- a/pyzebra/ccl_io.py +++ b/pyzebra/ccl_io.py @@ -73,7 +73,7 @@ CCL_SECOND_LINE = ( ("mf", float), ("date", str), ("time", str), - ("variable_name", str), + ("scan_motor", str), ) AREA_METHODS = ("fit_area", "int_area") @@ -154,18 +154,17 @@ def parse_1D(fileobj, data_type): for param, (param_name, param_type) in zip(next_line.split(), ccl_second_line): s[param_name] = param_type(param) - if s["variable_name"] != "om": + if s["scan_motor"] != "om": raise Exception("Unsupported variable name in ccl file.") # "om" -> "omega" - s["variable_name"] = "omega" - s["variable"] = np.linspace( + s["scan_motor"] = "omega" + # overwrite metadata, because it only refers to the scan center + s["omega"] = np.linspace( s["omega"] - (s["n_points"] / 2) * s["angle_step"], s["omega"] + (s["n_points"] / 2) * s["angle_step"], s["n_points"], ) - # overwrite metadata, because it only refers to the scan center - s["omega"] = s["variable"] # subsequent lines with counts counts = [] @@ -183,7 +182,7 @@ def parse_1D(fileobj, data_type): s = defaultdict(list) match = re.search("Scanning Variables: (.*), Steps: (.*)", next(fileobj)) - s["variable_name"] = match.group(1) + s["scan_motor"] = match.group(1) match = re.search("(.*) Points, Mode: (.*), Preset (.*)", next(fileobj)) if match.group(2) != "Monitor": @@ -204,13 +203,10 @@ def parse_1D(fileobj, data_type): s[name] = np.array(s[name]) # "om" -> "omega" - if s["variable_name"] == "om": - s["variable_name"] = "omega" - s["variable"] = s["om"] + if s["scan_motor"] == "om": + s["scan_motor"] = "omega" s["omega"] = s["om"] del s["om"] - else: - s["variable"] = s[s["variable_name"]] s["h"] = s["k"] = s["l"] = float("nan") @@ -274,7 +270,7 @@ def export_1D(data, path, area_method=AREA_METHODS[0], lorentz=False, hkl_precis ang_str = "" for angle, _ in CCL_ANGLES[zebra_mode]: - if angle == scan["variable_name"]: + if angle == scan["scan_motor"]: angle_center = (np.min(scan[angle]) + np.max(scan[angle])) / 2 else: angle_center = scan[angle] diff --git a/pyzebra/ccl_process.py b/pyzebra/ccl_process.py index c92be2d..c6c4ea8 100644 --- a/pyzebra/ccl_process.py +++ b/pyzebra/ccl_process.py @@ -44,10 +44,10 @@ def _parameters_match(scan1, scan2): # ignore skip parameters, like the last angle in 'nb' zebra mode continue - if param == scan1["variable_name"] == scan2["variable_name"]: + if param == scan1["scan_motor"] == scan2["scan_motor"]: # check if ranges of variable parameter overlap - range1 = scan1["variable"] - range2 = scan2["variable"] + range1 = scan1[param] + range2 = scan2[param] # maximum gap between ranges of the scanning parameter (default 0) max_range_gap = MAX_RANGE_GAP.get(param, 0) if max(range1[0] - range2[-1], range2[0] - range1[-1]) > max_range_gap: diff --git a/pyzebra/h5.py b/pyzebra/h5.py index 821f152..23d2cff 100644 --- a/pyzebra/h5.py +++ b/pyzebra/h5.py @@ -73,8 +73,7 @@ def read_detector_data(filepath): for var in ("omega", "gamma", "nu", "chi", "phi"): if abs(det_data[var][0] - det_data[var][-1]) > 0.1: - det_data["variable"] = det_data[var] - det_data["variable_name"] = var + det_data["scan_motor"] = var break else: raise ValueError("No angles that vary")