def errorCorrectHSData(self, hsdatacls):
temp_spectra = hsdatacls._get_rand_spectra_real(10, pt_sz=3, quads=True)
plugin = widgetSG()
result = DialogPlotEffect.dialogPlotEffect(temp_spectra, x=hsdatacls.freqvec,
plugin=plugin, xlabel='Wavenumber (cm$^{-1}$)',
ylabel='Real {$\chi_R$} (au)', show_difference=True)
if result is not None:
win_size = result.win_size
order = result.order
detrend_ct = 0
detrend_tot = hsdatacls.mlen * hsdatacls.nlen
# Most efficient system
if len(hsdatacls.pixrange) != 0:
data_out = hsdatacls.spectrafull[:,:, hsdatacls.pixrange[0]:hsdatacls.pixrange[1]+1]
else:
data_out = hsdatacls.spectrafull
start = _ti.default_timer()
correction = (1/_sg(data_out.real, window_length=win_size, polyorder=order, axis=-1))
data_out = data_out*correction
stop = _ti.default_timer()
# print('2: {}'.format(stop2-start2))
# print('3: {}'.format(stop3-start3))
# print('4: {}'.format(stop4-start4))
# print('5: {}'.format(stop5-start5))
#
print('Scaled {} spectra ({:.5f} sec/spect)'.format(detrend_tot, (stop-start)/(hsdatacls.mlen*hsdatacls.nlen)))
hsdatacls.spectra = data_out
return ['Scaling','Type', 'SG', 'win_size', win_size, 'order', order]
else:
return None
评论列表
文章目录