def analyze_pixel(ibw_file, param_file): ''' Analyzes a single pixel Parameters ---------- ibw_file : str path to \*.ibw file param_file : str path to parameters.cfg file Returns ------- pixel : Pixel The pixel object read and analyzed ''' signal_array = signal(ibw_file) n_pixels, params = configuration(param_file) pixel = Pixel(signal_array, params=params) pixel.analyze() pixel.plot() plt.xlabel('Time Step') plt.ylabel('Freq Shift (Hz)') print('tFP is', pixel.tfp, 's') return pixel.tfp
def test(self, pixel_ind=[0, 0]): """ Test the Pixel analysis of a single pixel :param pixel_ind: Index of the pixel in the dataset that the process needs to be tested on. If a list it is read as [row, column] :type pixel_ind: uint or list :returns: List [inst_freq, tfp, shift] WHERE array inst_freq is the instantaneous frequency array for that pixel float tfp is the time to first peak float shift the frequency shift at time t=tfp (i.e. maximum frequency shift) """ # First read the HDF5 dataset to get the deflection for this pixel if type(pixel_ind) is not list: col = int(pixel_ind % self.parm_dict['num_rows']) row = int(np.floor(pixel_ind % self.parm_dict['num_rows'])) pixel_ind = [row, col] # as an array, not an ffta.Pixel defl = get_utils.get_pixel(self.h5_main, pixel_ind, array_form=True) pix = Pixel(defl, self.parm_dict, **self.pixel_params) tfp, shift, inst_freq = pix.analyze() pix.plot() return self._map_function(defl, self.parm_dict, self.pixel_params, self.impulse)