diff --git a/pyzebra/ccl_findpeaks.py b/pyzebra/ccl_findpeaks.py index e141f95..adcd614 100644 --- a/pyzebra/ccl_findpeaks.py +++ b/pyzebra/ccl_findpeaks.py @@ -29,6 +29,7 @@ def ccl_findpeaks( 'peak_heights': [90.], # height of the peaks (if data vere smoothed its the heigh of the peaks in smoothed data) """ + meas = data["Measurements"][keys] if type(data) is not dict and data["file_type"] != "ccl": print("Data is not a dictionary or was not made from ccl file") @@ -44,7 +45,8 @@ def ccl_findpeaks( window_size = 7 print( "Invalid value for window_size, select positive odd integer, new value set to!:", - window_size) + window_size, + ) if isinstance(poly_order, int) is False or window_size < poly_order: poly_order = 3 @@ -57,9 +59,8 @@ def ccl_findpeaks( prominence = 50 print("Invalid value for prominence, select positive number, new value set to:", prominence) - - omega = data["Measurements"][str(keys)]["om"] - counts = np.array(data["Measurements"][str(keys)]["Counts"]) + omega = meas["om"] + counts = np.array(meas["Counts"]) if smooth is True: itp = interp1d(omega, counts, kind="linear") absintensity = [abs(number) for number in counts] @@ -73,9 +74,9 @@ def ccl_findpeaks( indexes = sc.signal.find_peaks( smooth_peaks, height=int_threshold * max(smooth_peaks), prominence=prominence ) - data["Measurements"][str(keys)]["num_of_peaks"] = len(indexes[0]) - data["Measurements"][str(keys)]["peak_indexes"] = indexes[0] - data["Measurements"][str(keys)]["peak_heights"] = indexes[1]["peak_heights"] - data["Measurements"][str(keys)]["smooth_peaks"] = smooth_peaks # smoothed curve + meas["num_of_peaks"] = len(indexes[0]) + meas["peak_indexes"] = indexes[0] + meas["peak_heights"] = indexes[1]["peak_heights"] + meas["smooth_peaks"] = smooth_peaks # smoothed curve return data diff --git a/pyzebra/comm_export.py b/pyzebra/comm_export.py index eac4c8b..3209821 100644 --- a/pyzebra/comm_export.py +++ b/pyzebra/comm_export.py @@ -30,36 +30,34 @@ def export_comm(data, path, lorentz=False): padding = [4, 6, 10, 8] with open(str(path + extension), "w") as out_file: - for keys in data["Measurements"]: - print(keys) + for meas_num, meas in data["Measurements"].items(): + print(meas_num) try: - meas_number_str = f"{keys[1:]:{align}{padding[0]}}" - h_str = f'{int(data["Measurements"][str(keys)]["h_index"]):{padding[1]}}' - k_str = f'{int(data["Measurements"][str(keys)]["k_index"]):{padding[1]}}' - l_str = f'{int(data["Measurements"][str(keys)]["l_index"]):{padding[1]}}' - if data["Measurements"][str(keys)]["fit"]["export_fit"] is True: - area = float(data["Measurements"][str(keys)]["fit"]["g_amp"][0]) + float( - data["Measurements"][str(keys)]["fit"]["l_amp"][0] - ) + meas_number_str = f"{meas_num[1:]:{align}{padding[0]}}" + h_str = f'{int(meas["h_index"]):{padding[1]}}' + k_str = f'{int(meas["k_index"]):{padding[1]}}' + l_str = f'{int(meas["l_index"]):{padding[1]}}' + if meas["fit"]["export_fit"] is True: + area = float(meas["fit"]["g_amp"][0]) + float(meas["fit"]["l_amp"][0]) else: - area = float(data["Measurements"][str(keys)]["fit"]["int_area"]) - float( - data["Measurements"][str(keys)]["fit"]["int_background"][0] - ) + area = float(meas["fit"]["int_area"]) - float(meas["fit"]["int_background"][0]) if data["meta"]["zebra_mode"] == "bi": - int_str = f'{"{:8.2f}".format(correction(area, lorentz, data["meta"]["zebra_mode"], data["Measurements"][str(keys)]["twotheta_angle"])):{align}{padding[2]}}' - angle_str1 = f'{data["Measurements"][str(keys)]["twotheta_angle"]:{padding[3]}}' - angle_str2 = f'{data["Measurements"][str(keys)]["omega_angle"]:{padding[3]}}' - angle_str3 = f'{data["Measurements"][str(keys)]["chi_angle"]:{padding[3]}}' - angle_str4 = f'{data["Measurements"][str(keys)]["phi_angle"]:{padding[3]}}' + int_str = f'{"{:8.2f}".format(correction(area, lorentz, data["meta"]["zebra_mode"], meas["twotheta_angle"])):{align}{padding[2]}}' + angle_str1 = f'{meas["twotheta_angle"]:{padding[3]}}' + angle_str2 = f'{meas["omega_angle"]:{padding[3]}}' + angle_str3 = f'{meas["chi_angle"]:{padding[3]}}' + angle_str4 = f'{meas["phi_angle"]:{padding[3]}}' elif data["meta"]["zebra_mode"] == "nb": - int_str = f'{"{:8.2f}".format(correction(area, lorentz, data["meta"]["zebra_mode"], data["Measurements"][str(keys)]["gamma_angle"],data["Measurements"][str(keys)]["nu_angle"])):{align}{padding[2]}}' - angle_str1 = f'{data["Measurements"][str(keys)]["gamma_angle"]:{padding[3]}}' - angle_str2 = f'{data["Measurements"][str(keys)]["omega_angle"]:{padding[3]}}' - angle_str3 = f'{data["Measurements"][str(keys)]["nu_angle"]:{padding[3]}}' - angle_str4 = f'{data["Measurements"][str(keys)]["unkwn_angle"]:{padding[3]}}' + int_str = f'{"{:8.2f}".format(correction(area, lorentz, data["meta"]["zebra_mode"], meas["gamma_angle"],meas["nu_angle"])):{align}{padding[2]}}' + angle_str1 = f'{meas["gamma_angle"]:{padding[3]}}' + angle_str2 = f'{meas["omega_angle"]:{padding[3]}}' + angle_str3 = f'{meas["nu_angle"]:{padding[3]}}' + angle_str4 = f'{meas["unkwn_angle"]:{padding[3]}}' - sigma_str = f'{"{:8.2f}".format(float(data["Measurements"][str(keys)]["fit"]["g_width"][0])):{align}{padding[2]}}' + sigma_str = ( + f'{"{:8.2f}".format(float(meas["fit"]["g_width"][0])):{align}{padding[2]}}' + ) line = ( meas_number_str + h_str @@ -76,5 +74,4 @@ def export_comm(data, path, lorentz=False): out_file.write(line) except KeyError: - print("Measurement skipped - no fit value for:", keys) - + print("Measurement skipped - no fit value for:", meas_num) diff --git a/pyzebra/fit2.py b/pyzebra/fit2.py index be5fc22..c86d74b 100644 --- a/pyzebra/fit2.py +++ b/pyzebra/fit2.py @@ -35,15 +35,16 @@ def fitccl( constraints_min = [23, None, 50, None, None, None, 0, 0] constraints_min = [80, None, 1000, None, None, None, 0, 100] """ + meas = data["Measurements"][keys] - if len(data["Measurements"][str(keys)]["peak_indexes"]) != 1: + if len(meas["peak_indexes"]) != 1: print("NO PEAK or more than 1 peak") return - x = list(data["Measurements"][str(keys)]["om"]) - y = list(data["Measurements"][str(keys)]["Counts"]) - peak_index = data["Measurements"][str(keys)]["peak_indexes"] - peak_height = data["Measurements"][str(keys)]["peak_heights"] + x = list(meas["om"]) + y = list(meas["Counts"]) + peak_index = meas["peak_indexes"] + peak_height = meas["peak_heights"] print("before", constraints_min) guess[0] = x[int(peak_index)] if guess[0] is None else guess[0] guess[1] = 0.1 if guess[1] is None else guess[1] @@ -151,6 +152,6 @@ def fitccl( d["int_area"] = num_int_area d["int_background"] = num_int_bacground d["full_report"] = result.fit_report() - data["Measurements"][str(keys)]["fit"] = d + meas["fit"] = d return data