MCPcopy Create free account
hub / github.com/NSLS2/PyXRF / create_full_param

Method create_full_param

pyxrf/model/parameters.py:1085–1130  ·  view source on GitHub ↗

Update current ``self.param_new`` with elements from ``self.EC`` (delete elements that are not in ``self.EC`` and update the existing elements.

(self)

Source from the content-addressed store, hash-verified

1083 self.create_full_param()
1084
1085 def create_full_param(self):
1086 """
1087 Update current ``self.param_new`` with elements from ``self.EC`` (delete elements that
1088 are not in ``self.EC`` and update the existing elements.
1089 """
1090 self.define_range()
1091 # We set 'self.element_list' from 'EC' (because we want to set elements of 'self.param_new'
1092 # from 'EC.element_dict'
1093 self.element_list = self.EC.get_element_list()
1094
1095 self.param_new = update_param_from_element(self.param_new, self.element_list)
1096 element_temp = [e for e in self.element_list if len(e) <= 4]
1097 pileup_temp = [e for e in self.element_list if "-" in e]
1098 userpeak_temp = [e for e in self.element_list if "user" in e.lower()]
1099
1100 # update area values in param_new according to results saved in ElementController
1101 if len(self.EC.element_dict):
1102 for k, v in self.param_new.items():
1103 if "area" in k:
1104 if "pileup" in k:
1105 name_cut = k[7:-5] # remove pileup_ and _area
1106 for p in pileup_temp:
1107 if name_cut == p.replace("-", "_"):
1108 v["value"] = self.EC.element_dict[p].area
1109 elif "user" in k.lower():
1110 for p in userpeak_temp:
1111 if p in k:
1112 v["value"] = self.EC.element_dict[p].area
1113 else:
1114 for e in element_temp:
1115 k_name, k_line, _ = k.split("_")
1116 e_name, e_line = e.split("_")
1117 if k_name == e_name and e_line.lower() == k_line[0]: # attention: S_k and As_k
1118 v["value"] = self.EC.element_dict[e].area
1119
1120 if "compton" in self.EC.element_dict:
1121 self.param_new["compton_amplitude"]["value"] = self.EC.element_dict["compton"].area
1122 if "coherent_sct_amplitude" in self.EC.element_dict:
1123 self.param_new["coherent_sct_amplitude"]["value"] = self.EC.element_dict["elastic"].area
1124
1125 if "escape" in self.EC.element_dict:
1126 self.param_new["non_fitting_values"]["escape_ratio"] = self.EC.element_dict[
1127 "escape"
1128 ].maxv / np.max(self.y0)
1129 else:
1130 self.param_new["non_fitting_values"]["escape_ratio"] = 0.0
1131
1132 def data_for_plot(self):
1133 """

Callers 4

find_peakMethod · 0.95
autofind_emission_linesFunction · 0.95
apply_to_fitMethod · 0.80

Calls 4

define_rangeMethod · 0.95
get_element_listMethod · 0.80
itemsMethod · 0.80

Tested by

no test coverage detected