def integrate_spectra(self, xlims=None, ylims=None, polarisation=1, axslice=None, return_patch=False): wavelength, spectra = self.get_spectra(polarisation) if spectra.ndim > 3: assert axslice is not None, 'slice argument required for 3d images' if xlims is None: x_roi = np.s_[:] else: x_roi = get_roi(self.x, xlims[0], xlims[1]) if ylims is None: y_roi = np.s_[:] else: y_roi = get_roi(self.y, ylims[0], ylims[1]) spectra = spectra[x_roi, y_roi, axslice, :] if spectra.ndim > 3 else spectra[ x_roi, y_roi, :] spectrum = np.mean(spectra, axis=(0, 1)) if return_patch: x, y = (self.x[x_roi], self.y[y_roi]) print 'averaged over a %dx%d grid' % (len(x), len(y)) patch = np.array( [x.min(), y.min(), x.max() - x.min(), y.max() - y.min()]) return wavelength, spectrum, patch else: return wavelength, spectrum
def wavelength2_lims(self, value): assert len(value) == 2, 'Value must have 2 elements' if 'wavelength2' in self.scan: self._wavelength2_lims = value self._wavelength2_roi = get_roi(self.scan['wavelength2'][()], value[0], value[1]) else: print('There is no wavelength2 dataset')
def z_lims(self, value): assert len(value) == 2, 'Value must have 2 elements' if 'z' in self.scan: self._z_lims = value a = self.scan['z'][()] a = (a - (a.min()+a.max())/2.0) self._z_roi = get_roi(a, value[0], value[1]) else: print('There is no z dataset')
def wavelength_lims(self, value): assert len(value) == 2, 'Value must have 2 elements' self._wavelength_lims = value self._wavelength_roi = get_roi(self.scan['wavelength'][()], value[0], value[1])
def y_lims(self, value): assert len(value) == 2, 'Value must have 2 elements' self._y_lims = value a = self.scan['y'][()] a = (a - (a.min()+a.max())/2.0) self._y_roi = get_roi(a, value[0], value[1])