|
11 | 11 | 'periodic' : {'cf' : None, 'pw' : 'log_sub', 'bw' : 'full_width'}, |
12 | 12 | } |
13 | 13 |
|
| 14 | +################################################################################################### |
| 15 | +## APERIODIC PARAMETER CONVERTERS |
| 16 | + |
| 17 | +# Null converter for aperiodic parameters |
| 18 | +ap_null = AperiodicParamConverter( |
| 19 | + parameter=None, |
| 20 | + name='ap_null', |
| 21 | + description='Null converter for aperiodic converter - return fit param.', |
| 22 | + function=lambda param, model : \ |
| 23 | + model.results.params.aperiodic._fit[model.modes.aperiodic.params.indices[param]] |
| 24 | +) |
| 25 | + |
| 26 | +################################################################################################### |
| 27 | +## PERIODIC PARAMETER CONVERTERS |
| 28 | + |
| 29 | +# Null converter for periodic parameters |
| 30 | +pe_null = PeriodicParamConverter( |
| 31 | + parameter=None, |
| 32 | + name='pe_null', |
| 33 | + description='Null converter for aperiodic converter - return fit param.', |
| 34 | + function=lambda param, model, peak_ind : \ |
| 35 | + model.results.params.periodic._fit[peak_ind, model.modes.periodic.params.indices[param]] |
| 36 | +) |
| 37 | + |
14 | 38 | ################################################################################################### |
15 | 39 | ## PRE-DEFINED CONVERTERS |
16 | 40 |
|
|
86 | 110 | } |
87 | 111 |
|
88 | 112 | ################################################################################################### |
89 | | -## NULL CONVERTERS: extract the fit parameter, with no conversion applied |
| 113 | +## COLLECT ALL CONVERTERS |
90 | 114 |
|
| 115 | +# Null converters: extract the fit parameter, with no conversion applied |
91 | 116 | NULL_CONVERTERS = { |
92 | | - |
93 | | - 'aperiodic' : AperiodicParamConverter( |
94 | | - parameter=None, |
95 | | - name='ap_null', |
96 | | - description='Null converter for aperiodic converter - return fit param', |
97 | | - function=lambda param, model : \ |
98 | | - model.results.params.aperiodic._fit[model.modes.aperiodic.params.indices[param]] |
99 | | - ), |
100 | | - |
101 | | - 'periodic' : PeriodicParamConverter( |
102 | | - parameter=None, |
103 | | - name='pe_null', |
104 | | - description='Null converter for aperiodic converter - return fit param', |
105 | | - function=lambda param, model, peak_ind : \ |
106 | | - model.results.params.periodic._fit[peak_ind, model.modes.periodic.params.indices[param]] |
107 | | - ) |
108 | | - |
| 117 | + 'aperiodic' : ap_null, |
| 118 | + 'periodic' : pe_null, |
109 | 119 | } |
110 | 120 |
|
111 | 121 | ################################################################################################### |
112 | | -## SELECTOR |
| 122 | +## SELECTOR & CHECKER FUNCTIONS |
113 | 123 |
|
114 | 124 | def get_converter(component, parameter, converter): |
115 | 125 | """Get a specified parameter converter function. |
@@ -146,3 +156,19 @@ def get_converter(component, parameter, converter): |
146 | 156 | converter = NULL_CONVERTERS[component] |
147 | 157 |
|
148 | 158 | return converter |
| 159 | + |
| 160 | + |
| 161 | +def check_converters(component): |
| 162 | + """Check the set of parameter converters that are available. |
| 163 | +
|
| 164 | + Parameters |
| 165 | + ---------- |
| 166 | + component : {'aperiodic', 'periodic'} |
| 167 | + Which component to check available parameter converters for. |
| 168 | + """ |
| 169 | + |
| 170 | + print('Available {:s} converters:'.format(component)) |
| 171 | + for param, convs in CONVERTERS[component].items(): |
| 172 | + print(param) |
| 173 | + for label, converter in convs.items(): |
| 174 | + print(' {:10s} {:s}'.format(converter.name, converter.description)) |
0 commit comments