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

Function update_param_from_element

pyxrf/model/parameters.py:1540–1586  ·  view source on GitHub ↗

Clean up or extend param according to new element list. Parameters ---------- param : dict fitting parameters element_list : list list of elemental lines Returns ------- dict

(param, element_list)

Source from the content-addressed store, hash-verified

1538
1539
1540def update_param_from_element(param, element_list):
1541 """
1542 Clean up or extend param according to new element list.
1543
1544 Parameters
1545 ----------
1546 param : dict
1547 fitting parameters
1548 element_list : list
1549 list of elemental lines
1550
1551 Returns
1552 -------
1553 dict
1554 """
1555 param_new = copy.deepcopy(param)
1556
1557 for eline in element_list:
1558 _add_element_to_list(eline, param_new)
1559
1560 # first remove some items not included in element_list
1561 param_new = param_dict_cleaner(param_new, element_list)
1562
1563 # second add some elements to a full parameter dict
1564 # create full parameter list including elements
1565 PC = ParamController(param_new, element_list)
1566 # parameter values not updated based on param_new, so redo it
1567 param_temp = PC.params
1568
1569 # enforce adjust_element area to be fixed,
1570 # while bound_type in xrf_model is defined as none for area
1571 # for k, v in param_temp.items():
1572 # if '_area' in k:
1573 # v['bound_type'] = 'fixed'
1574
1575 for k, v in param_temp.items():
1576 if k == "non_fitting_values":
1577 continue
1578 if k in param_new:
1579 param_temp[k] = param_new[k]
1580 # for k1 in v.keys():
1581 # v[k1] = param_new[k][k1]
1582 param_new = param_temp
1583
1584 # to create full param dict, for GUI only
1585 param_new = create_full_dict(param_new, fit_strategy_list)
1586 return param_new

Callers 1

create_full_paramMethod · 0.85

Calls 4

_add_element_to_listFunction · 0.85
param_dict_cleanerFunction · 0.85
create_full_dictFunction · 0.85
itemsMethod · 0.80

Tested by

no test coverage detected