示例#1
0
 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])