def setUp(self): TestCase.setUp(self) energies_eV = [1.0, 1.5, 2.0, 2.5] total_val = [6.0, 9.0, 1.0, 5.0] total_unc = [0.1, 0.5, 0.9, 0.05] background_val = [1.0, 2.0, 2.0, 0.5] background_unc = [0.05, 0.04, 0.03, 0.02] total = np.array([energies_eV, total_val, total_unc]).T background = np.array([energies_eV, background_val, background_unc]).T self.r = PhotonSpectrumResult(total, background)
def _import_photon_spectrum(self, options, name, detector, path): wxrresult = XRaySpectrum(path) # Retrieve data energies = np.array(wxrresult.data[WXRSPC_ENERGY]) total = np.array([energies, wxrresult.data[WXRSPC_TOTAL]]).T background = np.array([energies, wxrresult.data[WXRSPC_BACKGROUND]]).T # Arrange units factor = self._get_normalization_factor(options, detector) factor /= energies[1] - energies[0] total[:, 1] *= factor background[:, 1] *= factor return PhotonSpectrumResult(total, background)
def _import_photon_spectrum(self, options, key, detector, path, phdets_key_index, phdets_index_keys, *args): index = phdets_key_index[key] + 1 # Find data files spect_filepath = os.path.join(path, 'pe-spect-%s.dat' % str(index).zfill(2)) if not os.path.exists(spect_filepath): raise ImporterException("Data file %s cannot be found" % spect_filepath) # Load total spectrum energies, total_val, total_unc = _load_dat_files(spect_filepath) total = np.array([energies, total_val, total_unc]).T # Generate fake background background = np.zeros(total.shape) background[:, 0] = energies return PhotonSpectrumResult(total, background)
class TestPhotonSpectrumResult(TestCase): def setUp(self): TestCase.setUp(self) energies_eV = [1.0, 1.5, 2.0, 2.5] total_val = [6.0, 9.0, 1.0, 5.0] total_unc = [0.1, 0.5, 0.9, 0.05] background_val = [1.0, 2.0, 2.0, 0.5] background_unc = [0.05, 0.04, 0.03, 0.02] total = np.array([energies_eV, total_val, total_unc]).T background = np.array([energies_eV, background_val, background_unc]).T self.r = PhotonSpectrumResult(total, background) def tearDown(self): TestCase.tearDown(self) def testskeleton(self): self.assertAlmostEqual(1.0, self.r.energy_offset_eV, 4) self.assertAlmostEqual(0.5, self.r.energy_channel_width_eV, 4) def testget_total(self): spectrum = self.r.get_total() self.assertEqual((4, 3), spectrum.shape) self.assertAlmostEqual(1.0, spectrum[0][0], 4) self.assertAlmostEqual(6.0, spectrum[0][1], 4) self.assertAlmostEqual(0.1, spectrum[0][2], 4) def testget_background(self): spectrum = self.r.get_background() self.assertEqual((4, 3), spectrum.shape) self.assertAlmostEqual(1.0, spectrum[0][0], 4) self.assertAlmostEqual(1.0, spectrum[0][1], 4) self.assertAlmostEqual(0.05, spectrum[0][2], 4) def testtotal_intensity(self): val, unc = self.r.total_intensity(0.0) self.assertAlmostEqual(0.0, val, 4) self.assertAlmostEqual(0.0, unc, 4) val, unc = self.r.total_intensity(1.0) self.assertAlmostEqual(6.0, val, 4) self.assertAlmostEqual(0.1, unc, 4) val, unc = self.r.total_intensity(1.2) self.assertAlmostEqual(6.0, val, 4) self.assertAlmostEqual(0.1, unc, 4) val, unc = self.r.total_intensity(1.5) self.assertAlmostEqual(9.0, val, 4) self.assertAlmostEqual(0.5, unc, 4) val, unc = self.r.total_intensity(2.5) self.assertAlmostEqual(5.0, val, 4) self.assertAlmostEqual(0.05, unc, 4) val, unc = self.r.total_intensity(3.0) self.assertAlmostEqual(0.0, val, 4) self.assertAlmostEqual(0.0, unc, 4) def testbackground_intensity(self): val, unc = self.r.background_intensity(0.0) self.assertAlmostEqual(0.0, val, 4) self.assertAlmostEqual(0.0, unc, 4) val, unc = self.r.background_intensity(1.0) self.assertAlmostEqual(1.0, val, 4) self.assertAlmostEqual(0.05, unc, 4) val, unc = self.r.background_intensity(1.2) self.assertAlmostEqual(1.0, val, 4) self.assertAlmostEqual(0.05, unc, 4) val, unc = self.r.background_intensity(1.5) self.assertAlmostEqual(2.0, val, 4) self.assertAlmostEqual(0.04, unc, 4) val, unc = self.r.background_intensity(2.5) self.assertAlmostEqual(0.5, val, 4) self.assertAlmostEqual(0.02, unc, 4) val, unc = self.r.background_intensity(3.0) self.assertAlmostEqual(0.0, val, 4) self.assertAlmostEqual(0.0, unc, 4)