Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
pname = param.name
try:
val = gformat(param.value)
except (TypeError, ValueError):
val = ' ??? '
serr = ' N/A '
if param.stderr is not None:
serr = gformat(param.stderr, 10)
extra = ' '
if param.expr is not None:
extra = ' = %s ' % param.expr
elif not param.vary:
extra = ' (fixed)'
elif param.init_value is not None:
extra = ' (init=%s)' % gformat(param.init_value, 11)
wids['params'].AppendItem((pname, val, serr, extra))
wids['paramsdata'].append(pname)
self.Refresh()
self.owids['data_title'].SetLabel("%s: %.3f sec" % (self.mca.label, result.count_time))
self.owids['data_title2'].SetLabel("%s: %.3f sec" % (self.mca.label, result.count_time))
self.result = result
self.owids['fitlabel_txt'].SetValue(result.label)
self.owids['params'].DeleteAllItems()
self.owids['paramsdata'] = []
for param in reversed(result.params.values()):
pname = param.name
try:
val = gformat(param.value, 10)
except (TypeError, ValueError):
val = ' ??? '
serr, perr = ' N/A ', ' N/A '
if param.stderr is not None:
serr = gformat(param.stderr, 10)
try:
perr = ' {:.2%}'.format(abs(param.stderr/param.value))
except ZeroDivisionError:
perr = '?'
extra = ' '
if param.expr is not None:
extra = ' = %s ' % param.expr
elif not param.vary:
extra = ' (fixed)'
elif param.init_value is not None:
extra = gformat(param.init_value, 10)
self.owids['params'].AppendItem((pname, val, serr, perr, extra))
self.owids['paramsdata'].append(pname)
self.Refresh()
desc = desc[tlen+i:]
parts.append(desc)
wids['model_desc'].SetLabel('\n'.join(parts))
wids['params'].DeleteAllItems()
wids['paramsdata'] = []
for param in reversed(result.params.values()):
pname = param.name
try:
val = gformat(param.value)
except (TypeError, ValueError):
val = ' ??? '
serr = ' N/A '
if param.stderr is not None:
serr = gformat(param.stderr, 10)
extra = ' '
if param.expr is not None:
extra = ' = %s ' % param.expr
elif not param.vary:
extra = ' (fixed)'
elif param.init_value is not None:
extra = ' (init=%s)' % gformat(param.init_value, 11)
wids['params'].AppendItem((pname, val, serr, extra))
wids['paramsdata'].append(pname)
self.Refresh()
def show_fitresult(self, nfit=0, mca=None):
if mca is not None:
self.mca = mca
result = self.get_fitresult(nfit=nfit)
self.owids['data_title'].SetLabel("%s: %.3f sec" % (self.mca.label, result.count_time))
self.owids['data_title2'].SetLabel("%s: %.3f sec" % (self.mca.label, result.count_time))
self.result = result
self.owids['fitlabel_txt'].SetValue(result.label)
self.owids['params'].DeleteAllItems()
self.owids['paramsdata'] = []
for param in reversed(result.params.values()):
pname = param.name
try:
val = gformat(param.value, 10)
except (TypeError, ValueError):
val = ' ??? '
serr, perr = ' N/A ', ' N/A '
if param.stderr is not None:
serr = gformat(param.stderr, 10)
try:
perr = ' {:.2%}'.format(abs(param.stderr/param.value))
except ZeroDivisionError:
perr = '?'
extra = ' '
if param.expr is not None:
extra = ' = %s ' % param.expr
elif not param.vary:
extra = ' (fixed)'
elif param.init_value is not None:
def show_results(self):
cur = self.get_fitresult()
wids = self.wids
wids['stats'].DeleteAllItems()
for i, res in enumerate(self.peakfit_history):
args = ['%2.2d' % (i+1)]
for attr in ('ndata', 'nvarys', 'nfev', 'chisqr', 'redchi', 'aic', 'bic'):
val = getattr(res.result, attr)
if isinstance(val, int):
val = '%d' % val
else:
val = gformat(val, 11)
args.append(val)
wids['stats'].AppendItem(tuple(args))
wids['data_title'].SetLabel(self.datagroup.filename)
self.show_fitresult(nfit=0)
return
topline = '=================== FEFFIT RESULTS ===================='
header = '[[%s]]'
varformat = ' %12s = %s +/-%s (init= %s)'
fixformat = ' %12s = %s (fixed)'
exprformat = ' %12s = %s +/-%s = \'%s\''
out = [topline, header % 'Statistics']
out.append(' nvarys, npts = %i, %i' % (result.nvarys,
result.ndata))
out.append(' n_independent = %.3f' % (result.n_independent))
out.append(' chi_square = %s' % gformat(result.chi_square))
out.append(' reduced chi_square = %s' % gformat(result.chi_reduced))
out.append(' r-factor = %s' % gformat(result.rfactor))
out.append(' Akaike info crit = %s' % gformat(result.aic))
out.append(' Bayesian info crit = %s' % gformat(result.bic))
out.append(' ')
if len(datasets) == 1:
out.append(header % 'Data')
else:
out.append(header % 'Datasets (%i)' % len(datasets))
for i, ds in enumerate(datasets):
tr = ds.transform
if len(datasets) > 1:
out.append(' dataset %i:' % (i+1))
if isinstance(tr.kweight, Iterable):
if isinstance(ds.epsilon_k[0], np.ndarray):
msg = []
for eps in ds.epsilon_k:
msg.append('Array(mean=%s, std=%s)' % (gformat(eps.mean()).strip(),
val = ' ??? '
serr, perr = ' N/A ', ' N/A '
if param.stderr is not None:
serr = gformat(param.stderr, 10)
try:
perr = ' {:.2%}'.format(abs(param.stderr/param.value))
except ZeroDivisionError:
perr = '?'
extra = ' '
if param.expr is not None:
extra = ' = %s ' % param.expr
elif not param.vary:
extra = ' (fixed)'
elif param.init_value is not None:
extra = gformat(param.init_value, 10)
self.owids['params'].AppendItem((pname, val, serr, perr, extra))
self.owids['paramsdata'].append(pname)
self.Refresh()
# wids['show_e0'].SetValue(form['show_e0'])
wids['show_fitrange'].SetValue(form['show_fitrange'])
wids['stats'].DeleteAllItems()
results = self.datagroup.lcf_result[:20]
self.nresults = len(results)
wids['nfits_title'].SetLabel('showing %i best results' % self.nresults)
for i, res in enumerate(results):
args = ['%2.2d' % (i+1)]
for attr in ('nvarys', 'nfev', 'chisqr', 'redchi', 'aic', 'bic'):
val = getattr(res.result, attr)
if isinstance(val, int):
val = '%d' % val
else:
val = gformat(val, 12)
args.append(val)
wids['stats'].AppendItem(tuple(args))
wpan = self.wids['weightspanel']
wpan.DestroyChildren()
wview = self.wids['weights'] = dv.DataViewListCtrl(wpan, style=DVSTYLE)
wview.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.onSelectFitParam)
wview.AppendTextColumn(' Fit #', width=50)
for i, cname in enumerate(form['comp_names']):
wview.AppendTextColumn(cname, width=100)
wview.AppendTextColumn('Total', width=100)
for col in range(len(form['comp_names'])+2):
this = wview.Columns[col]