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