def weightspinboxchanged(self): """ Weight parameter-related values have changed """ n_rows = self.ui.tableWidgetWeights.rowCount() # * Currently, fix_rng (weight parameters) in ALS is in the rng vector space x = self.x self.sub_w_list = [] if n_rows == 0: self.parameters['fix_rng'] = None else: self.parameters['fix_rng'] = [] for rc in range(n_rows): xstart_pix = _find_nearest( x, self.ui.tableWidgetWeights.cellWidget(rc, 0).value())[1] xstop_pix = _find_nearest( x, self.ui.tableWidgetWeights.cellWidget(rc, 1).value())[1] weight = self.ui.spinBoxWeight.value() # self.parameters['fix_rng'].extend(_np.arange(xstart_pix, xstop_pix+1).tolist()) self.parameters['fix_rng'].extend( _np.arange(xstart_pix, xstop_pix).tolist()) # No +1 # self.parameters['asym_param'][xstart_pix:xstop_pix+1] = 1*asym # print('XStart: {}, XStop: {}, ASym: {}'.format(xstart_pix, xstop_pix, asym)) self.sub_w_list.append([xstart_pix, xstop_pix, weight]) self.parameters['fix_rng'] = _np.array(self.parameters['fix_rng']) self.parameters['fix_const'] = self.ui.spinBoxWeight.value() print('---------') self.changed.emit()
def asymspinboxchanged(self): """ Asymetry parameter-related values have changed """ n_rows = self.ui.tableWidgetAsym.rowCount() # * Currently, asym_param in ALS is in the full vector space x = self._x self.sub_asym_list = [] if n_rows == 0: self.parameters['asym_param'] = self.ui.spinBoxP.value() else: self.parameters['asym_param'] = self.ui.spinBoxP.value() + 0 * x for rc in range(n_rows): xstart_pix = _find_nearest( x, self.ui.tableWidgetAsym.cellWidget(rc, 0).value())[1] xstop_pix = _find_nearest( x, self.ui.tableWidgetAsym.cellWidget(rc, 1).value())[1] asym = self.ui.tableWidgetAsym.cellWidget(rc, 2).value() self.parameters['asym_param'][xstart_pix:xstop_pix + 1] = 1 * asym print('XStart: {}, XStop: {}, ASym: {}'.format( xstart_pix, xstop_pix, asym)) self.sub_asym_list.append([xstart_pix, xstop_pix, asym]) print('---------') self.changed.emit()
def fcn(self, data_in): """ If return list, [0] goes to original, [1] goes to affected """ inst_nrb_merge = _MergeNRBs( nrb_left=self.nrb_left, nrb_right=self.nrb_right, pix=self.parameters['pix_switchpt'], left_side_scale=self.parameters['scale_left']) if self.fullRange: pix = _np.arange(self.wn.size, dtype=_np.integer) else: list_rng_pix = _find_nearest(self.wn, self.rng)[1] pix = _np.arange(list_rng_pix[0], list_rng_pix[1] + 1, dtype=_np.integer) nrb_merged = inst_nrb_merge.calculate() kkd = _np.zeros(data_in.shape) # Note: kk_widget.fcn return imag part kkd[..., pix] = self.kk_widget.fcn([nrb_merged[pix], data_in[..., pix]]) return [_np.vstack((self.nrb_left, self.nrb_right, nrb_merged)), kkd]
def fcn(self, data_in): """ If return list, [0] goes to original, [1] goes to affected """ inst_nrb_merge = _MergeNRBs(nrb_left=self.nrb_left, nrb_right=self.nrb_right, pix=self.parameters['pix_switchpt'], left_side_scale=self.parameters['scale_left']) if self.fullRange: pix = _np.arange(self.wn.size, dtype=_np.integer) else: list_rng_pix = _find_nearest(self.wn, self.rng)[1] pix = _np.arange(list_rng_pix[0],list_rng_pix[1]+1, dtype=_np.integer) nrb_merged = inst_nrb_merge.calculate() kkd = _np.zeros(data_in.shape) # Note: kk_widget.fcn return imag part kkd[..., pix] = self.kk_widget.fcn([nrb_merged[pix], data_in[..., pix]]) return [_np.vstack((self.nrb_left, self.nrb_right, nrb_merged)), kkd]
def wnChanged(self): # print('WN Changed') self.parameters['wn_switchpt'], self.parameters['pix_switchpt'] = \ _find_nearest(self.wn, self.ui.spinBoxWN.value()) self.ui.spinBoxWN.setValue(self.parameters['wn_switchpt']) self.ui.spinBoxPix.setValue(self.parameters['pix_switchpt']) self.changed.emit()
def __init__(self, wn_vec, nrb_left, nrb_right, scale_left=False, wn_switchpt=2800.0, parent=None): super(widgetMergeNRBs, self).__init__(parent) self.ui = _Ui_Form() self.ui.setupUi(self) self.wn = wn_vec self.nrb_left = nrb_left self.nrb_right = nrb_right # Update parameter dict self.parameters['scale_left'] = scale_left self.parameters['wn_switchpt'] = wn_switchpt self.parameters['pix_switchpt'] = \ _find_nearest(self.wn, self.parameters['wn_switchpt'])[1] self.kk_widget = _widgetKK() self.ui.horizontalLayoutKK.insertWidget(0, self.kk_widget) self.ui.spinBoxWN.setMinimum(self.wn.min()) self.ui.spinBoxWN.setMaximum(self.wn.max()) self.ui.spinBoxPix.setMinimum(0) self.ui.spinBoxPix.setMaximum(self.wn.size - 1) # Set range self.ui.spinBoxLowRange.setValue(self.wn.min()) self.ui.spinBoxHighRange.setValue(self.wn.max()) self.rng = None self.rangeChanged() if self.parameters['scale_left']: self.ui.comboBoxScaleLeftRight.setCurrentIndex(0) elif self.parameters['scale_left'] == False: self.ui.comboBoxScaleLeftRight.setCurrentIndex(1) elif self.parameters['scale_left'] is None: self.ui.comboBoxScaleLeftRight.setCurrentIndex(2) self.ui.spinBoxWN.setValue(self.parameters['wn_switchpt']) self.ui.spinBoxPix.setValue(self.parameters['pix_switchpt']) # SIGNALS & SLOTS self.kk_widget.changed.connect(self.kkChanged) self.ui.comboBoxScaleLeftRight.currentIndexChanged.connect( self.scaleChanged) self.ui.spinBoxWN.editingFinished.connect(self.wnChanged) self.ui.spinBoxPix.editingFinished.connect(self.pixChanged) self.ui.spinBoxLowRange.editingFinished.connect(self.rangeChanged) self.ui.spinBoxHighRange.editingFinished.connect(self.rangeChanged)
def __init__(self, wn_vec, nrb_left, nrb_right, scale_left=False, wn_switchpt=2800.0, parent = None): super(widgetMergeNRBs, self).__init__(parent) self.ui = _Ui_Form() self.ui.setupUi(self) self.wn = wn_vec self.nrb_left = nrb_left self.nrb_right = nrb_right # Update parameter dict self.parameters['scale_left'] = scale_left self.parameters['wn_switchpt'] = wn_switchpt self.parameters['pix_switchpt'] = \ _find_nearest(self.wn, self.parameters['wn_switchpt'])[1] self.kk_widget = _widgetKK() self.ui.horizontalLayoutKK.insertWidget(0, self.kk_widget) self.ui.spinBoxWN.setMinimum(self.wn.min()) self.ui.spinBoxWN.setMaximum(self.wn.max()) self.ui.spinBoxPix.setMinimum(0) self.ui.spinBoxPix.setMaximum(self.wn.size-1) # Set range self.ui.spinBoxLowRange.setValue(self.wn.min()) self.ui.spinBoxHighRange.setValue(self.wn.max()) self.rng = None self.rangeChanged() if self.parameters['scale_left']: self.ui.comboBoxScaleLeftRight.setCurrentIndex(0) elif self.parameters['scale_left'] == False: self.ui.comboBoxScaleLeftRight.setCurrentIndex(1) elif self.parameters['scale_left'] is None: self.ui.comboBoxScaleLeftRight.setCurrentIndex(2) self.ui.spinBoxWN.setValue(self.parameters['wn_switchpt']) self.ui.spinBoxPix.setValue(self.parameters['pix_switchpt']) # SIGNALS & SLOTS self.kk_widget.changed.connect(self.kkChanged) self.ui.comboBoxScaleLeftRight.currentIndexChanged.connect(self.scaleChanged) self.ui.spinBoxWN.editingFinished.connect(self.wnChanged) self.ui.spinBoxPix.editingFinished.connect(self.pixChanged) self.ui.spinBoxLowRange.editingFinished.connect(self.rangeChanged) self.ui.spinBoxHighRange.editingFinished.connect(self.rangeChanged)
def get_closest_freq(self, in_freqs): """ Return frequency(-ies) in freq closest to in_freqs """ return _find_nearest(self.data, in_freqs)[0]
def get_index_of_closest_freq(self, in_freqs): """ Return index(-es) of frequency(-ies) in freq closest to in_freqs """ return _find_nearest(self.data, in_freqs)[1]
# left_side_scale=False).calculate() # CARS2 = _np.abs(500*(1/(1000-WN-1j*20) + 1/(2700-WN-1j*20)) + NRB2**0.5)**2 # CARS2 = _np.dot(_np.ones((3,1), dtype=_np.double),CARS2[None,:]) # # Demo # plugin = widgetDemoPlotEffectPlugin() # winPlotEffect = DialogPlotEffect.dialogPlotEffect(CARS, x=WN, # plugin=plugin) # if winPlotEffect is not None: # print(winPlotEffect.parameters) # ## # ALS from crikit.ui.widget_ALS import widgetALS as _widgetALS rng = _np.arange(*_find_nearest(WN, [500, 3800])[1]) plugin = _widgetALS(x=WN, rng=rng) winPlotEffect = DialogPlotEffect.dialogPlotEffect(CARS, x=WN, plugin=plugin) if winPlotEffect is not None: print(winPlotEffect.parameters) # # # ArPLS # from crikit.ui.widget_ArPLS import widgetArPLS as _widgetArPLS # plugin = _widgetArPLS() # winPlotEffect = DialogPlotEffect.dialogPlotEffect(CARS, x=WN, # plugin=plugin) # if winPlotEffect is not None: # print(winPlotEffect.parameters) #
NRB = 0 * WN + .055 CARS = _np.dot(_np.ones((5, 1)), CARS[None, :]) NRB_LEFT = 20e3 * _np.exp(-(WN)**2 / (1000**2)) + 500 NRB_RIGHT = 6e3 * _np.exp(-(WN - 2500)**2 / (400**2)) + 500 NRB_LEFT[WN < 500] *= 0 NRB_LEFT[WN < 500] += 1e-6 NRB_RIGHT[WN < 500] *= 0 NRB_RIGHT[WN < 500] += 1e-6 from crikit.cri.merge_nrbs import MergeNRBs as _MergeNRBs from crikit.utils.general import find_nearest as _find_nearest NRB2 = _MergeNRBs(nrb_left=NRB_LEFT, nrb_right=NRB_RIGHT, pix=_find_nearest(WN, 1885.0)[1], left_side_scale=False).calculate() CARS2 = _np.abs(500 * (1 / (1000 - WN - 1j * 20) + 1 / (2700 - WN - 1j * 20)) + NRB2**0.5)**2 CARS2 = _np.dot(_np.ones((10, 1), dtype=_np.double), CARS2[None, :]) # # Demo # plugin = widgetDemoPlotEffectPlugin() # winPlotEffect = DialogPlotEffectFuture.dialogPlotEffect(CARS, x=WN, # plugin=plugin) # if winPlotEffect is not None: # print(winPlotEffect.parameters) # ## # ALS ## from crikit.ui.widget_ALS import widgetALS as _widgetALS
CARS = _np.dot(_np.ones((5,1)),CARS[None,:]) NRB_LEFT = 20e3*_np.exp(-(WN)**2/(1000**2)) + 500 NRB_RIGHT = 6e3*_np.exp(-(WN-2500)**2/(400**2)) + 500 NRB_LEFT[WN<500] *= 0 NRB_LEFT[WN<500] += 1e-6 NRB_RIGHT[WN<500] *= 0 NRB_RIGHT[WN<500] += 1e-6 from crikit.cri.merge_nrbs import MergeNRBs as _MergeNRBs from crikit.utils.general import find_nearest as _find_nearest NRB2 = _MergeNRBs(nrb_left=NRB_LEFT, nrb_right=NRB_RIGHT, pix=_find_nearest(WN, 1885.0)[1], left_side_scale=False).calculate() CARS2 = _np.abs(500*(1/(1000-WN-1j*20) + 1/(2700-WN-1j*20)) + NRB2**0.5)**2 CARS2 = _np.dot(_np.ones((10,1), dtype=_np.double),CARS2[None,:]) # # Demo # plugin = widgetDemoPlotEffectPlugin() # winPlotEffect = DialogPlotEffectFuture.dialogPlotEffect(CARS, x=WN, # plugin=plugin) # if winPlotEffect is not None: # print(winPlotEffect.parameters) # ## # ALS ## from crikit.ui.widget_ALS import widgetALS as _widgetALS ##