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)
| 1538 | |
| 1539 | |
| 1540 | def 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 |
no test coverage detected