Example #1
0
 def fft_worker(self):
     if _fft_worker_cache[0] != self.viewer.data.shape:
         timeit = TimeIt(self.viewer, 'creating FFT worker')
         _fft_worker_cache[0] = self.viewer.data.shape
         _fft_worker_cache[1] = FFTTasks(self.viewer.data.shape,
                                         options=Options(fftw_threads=4))
         timeit.stop()
     return _fft_worker_cache[1]
Example #2
0
class FFTViewerTask(BaseViewerTask):


    compute_button = Button('Compute Fourier Transform')
    inverse = Bool(False)

    traits_view = View (
            Item('compute_button', show_label = False),
            Item('inverse'),
            )

    _fft_worker = Any

    def startup(self):
        # import fftw routines
        from iocbio.ops.fft_tasks import FFTTasks
        self._fft_worker = FFTTasks(self.viewer.data.shape)

    def _compute_button_fired(self):
        data = self.viewer.data
        if not isinstance (data, numpy.ndarray) or 1:
            data = data[:] # tiffarray
        # compute fft of data
        if self.inverse:
            fdata = self._fft_worker.ifft(data)
            self.viewer.add_data('IFFT', fdata)
        else:
            fdata = self._fft_worker.fft(data)
            self.viewer.add_data('FFT', fdata)
        #fdata[0,0,0] = 0
        #fdata = numpy.fft.fftshift (fdata)
        return
        
        fdata_source = ArrayDataSource(original_source = self.viewer.data_source,
                                       kind = self.viewer.data_source.kind,
                                       data = fdata)
        viewer = self.viewer.__class__(data_source = fdata_source)
        self.viewer.add_result(viewer)
        viewer.copy_tasks(self.viewer)
Example #3
0
 def startup(self):
     # import fftw routines
     from iocbio.ops.fft_tasks import FFTTasks
     self._fft_worker = FFTTasks(self.viewer.data.shape)