Exemplo n.º 1
0
    def _calc(self, cars, nrb, ret_obj):

        # Assume that an nD nrb should be averaged to be 1D
        nrb = _mean_nd_to_1d(nrb)

        shp = cars.shape[0:-2]

        #  Step row-by-row through image
        for idx in _np.ndindex(shp):
            if self.rng is None:
                kkd = _kkrelation(bg=nrb + self.nrb_amp_offset,
                                  cri=cars[idx] + self.cars_amp_offset,
                                  phase_offset=self.phase_offset,
                                  norm_by_bg=self.norm_to_nrb,
                                  pad_factor=self.pad_factor)
            else:
                kkd = _kkrelation(bg=nrb[self.rng] + self.nrb_amp_offset,
                                      cri=cars[idx][..., self.rng] + self.cars_amp_offset,
                                      phase_offset=self.phase_offset,
                                      norm_by_bg=self.norm_to_nrb,
                                      pad_factor=self.pad_factor)

            try:
                ret_obj[idx] *= 0
                if self.rng is None:
                    ret_obj[idx] += kkd
                elif ret_obj[idx].size == kkd.size:
                    ret_obj[idx] += kkd
                else:
                    ret_obj[idx][..., self.rng] += kkd
            except:
                return False
            else:
                pass
        return True
Exemplo n.º 2
0
    def _calc(self, cars, nrb, ret_obj):

        try:
            # Assume that an nD nrb should be averaged to be 1D
            # TODO: Change this in the future to accept matching NRB's
            nrb = _mean_nd_to_1d(nrb)
            
            if self.rng is None:
                kkd = _kkrelation(bg=nrb + self.nrb_amp_offset,
                                cri=cars + self.cars_amp_offset,
                                hilb_kwargs=self.hilb_kwargs, **self.kk_kwargs)
                ret_obj *= 0
                ret_obj += kkd
            else:
                slice_cars_rng = cars.ndim*[slice(None)]
                slice_cars_rng[self.kk_kwargs['axis']] = self.rng
                slice_cars_rng = tuple(slice_cars_rng)

                slice_ret_obj = ret_obj.ndim*[slice(None)]
                slice_ret_obj[self.kk_kwargs['axis']] = self.rng
                slice_ret_obj = tuple(slice_ret_obj)

                kkd = _kkrelation(bg=nrb[self.rng] + self.nrb_amp_offset,
                                        cri=cars[slice_cars_rng] + self.cars_amp_offset,
                                        hilb_kwargs=self.hilb_kwargs, **self.kk_kwargs)
                ret_obj *= 0
                ret_obj[slice_ret_obj] += kkd
        except Exception as e:
            print('Error: {}'.format(e))
            return False
        else:
            return True
Exemplo n.º 3
0
    # Simulated spectrum
    CARS = _np.abs(E + X)**2
    NRB = _np.abs(E + XNR)**2
    nrb.data = NRB

    # Copies of spectrum
    temp = _np.dot(_np.ones((30, 30, 1)), CARS[None, :])

    # Create an HSData class instance
    hsi.data = temp
    num_spectra = int(hsi.size / WN.size)

    hsi.freq.data = WN

    start = _timeit.default_timer()
    kkd = _kkrelation(NRB, CARS)
    stop = _timeit.default_timer()
    print('Single spectrum -- Total time: {:.6f} sec'.format(stop - start))
    _timeit.time.sleep(2)

    start = _timeit.default_timer()
    kkd = _kkrelation(NRB, temp)
    stop = _timeit.default_timer()
    print('Data-based -- Total time: {:.6f} sec ({:.6f} sec/spectrum)'.format(
        stop - start, (stop - start) / num_spectra))
    _timeit.time.sleep(2)

    kk = KramersKronig(cars_amp_offset=0,
                       nrb_amp_offset=0,
                       norm_to_nrb=False,
                       pad_factor=1)
Exemplo n.º 4
0
    # Simulated spectrum
    CARS = _np.abs(E+X)**2
    NRB = _np.abs(E+XNR)**2
    nrb.data = NRB

    # Copies of spectrum
    temp = _np.dot(_np.ones((30,30,1)),CARS[None,:])

    # Create an HSData class instance
    hsi.data = temp
    num_spectra = int(hsi.size/WN.size)

    hsi.freq.data = WN

    start = _timeit.default_timer()
    kkd = _kkrelation(NRB,CARS)
    stop = _timeit.default_timer()
    print('Single spectrum -- Total time: {:.6f} sec'.format(stop-start))
    _timeit.time.sleep(2)

    start = _timeit.default_timer()
    kkd = _kkrelation(NRB,temp)
    stop = _timeit.default_timer()
    print('Data-based -- Total time: {:.6f} sec ({:.6f} sec/spectrum)'.format(stop-start,
          (stop-start)/num_spectra))
    _timeit.time.sleep(2)


    kk = KramersKronig(cars_amp_offset=0, nrb_amp_offset=0, norm_to_nrb=False, pad_factor=1)
    start = _timeit.default_timer()
    kk.calculate(hsi.data, nrb.data)