diff --git a/pyzebra/comm_export.py b/pyzebra/comm_export.py index a3fe998..73d100d 100644 --- a/pyzebra/comm_export.py +++ b/pyzebra/comm_export.py @@ -31,49 +31,51 @@ def export_comm(data, path, lorentz=False): with open(str(path + extension), "w") as out_file: for keys, meas in data["Measurements"].items(): - try: - meas_number_str = f"{keys[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"].value) - sigma_str = f'{"{:8.2f}".format(float(meas["fit"]["g_amp"].stderr)):{align}{padding[2]}}' - else: - area = float(meas["fit"]["int_area"].n) - sigma_str = ( - f'{"{:8.2f}".format(float(meas["fit"]["int_area"].s)):{align}{padding[2]}}' - ) - - if zebra_mode == "bi": - area = correction(area, lorentz, zebra_mode, meas["twotheta_angle"]) - int_str = f'{"{:8.2f}".format(area):{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 zebra_mode == "nb": - area = correction(area, lorentz, zebra_mode, meas["gamma_angle"], meas["nu_angle"]) - int_str = f'{"{:8.2f}".format(area):{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]}}' - - line = ( - meas_number_str - + h_str - + l_str - + k_str - + int_str - + sigma_str - + angle_str1 - + angle_str2 - + angle_str3 - + angle_str4 - + "\n" - ) - out_file.write(line) - - except KeyError: + if "fit" not in meas: print("Measurement skipped - no fit value for:", keys) + continue + + meas_number_str = f"{keys[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"].value) + sigma_str = ( + f'{"{:8.2f}".format(float(meas["fit"]["g_amp"].stderr)):{align}{padding[2]}}' + ) + else: + area = float(meas["fit"]["int_area"].n) + sigma_str = ( + f'{"{:8.2f}".format(float(meas["fit"]["int_area"].s)):{align}{padding[2]}}' + ) + + if zebra_mode == "bi": + area = correction(area, lorentz, zebra_mode, meas["twotheta_angle"]) + int_str = f'{"{:8.2f}".format(area):{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 zebra_mode == "nb": + area = correction(area, lorentz, zebra_mode, meas["gamma_angle"], meas["nu_angle"]) + int_str = f'{"{:8.2f}".format(area):{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]}}' + + line = ( + meas_number_str + + h_str + + l_str + + k_str + + int_str + + sigma_str + + angle_str1 + + angle_str2 + + angle_str3 + + angle_str4 + + "\n" + ) + out_file.write(line)