Exemplo n.º 1
0
    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()
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    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]
Exemplo n.º 4
0
    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]
Exemplo n.º 5
0
    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()
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
 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)
Exemplo n.º 9
0
 def get_closest_freq(self, in_freqs):
     """
     Return frequency(-ies) in freq closest to in_freqs
     """
     return _find_nearest(self.data, in_freqs)[0]
Exemplo n.º 10
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]
Exemplo n.º 11
0
    #                  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)
#
Exemplo n.º 12
0
    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
Exemplo n.º 13
0
    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
##