Example #1
0
 def setUp(self):
     self.sensor = GaussianSensorModel(0.05)
     energies = [40, 116, 130]  # 3 total peaks
     self.peaks = []
     for erg in energies:
         self.peaks.append(Peak(erg, 1000, 0))
     channels = np.arange(0, 100)
     es = EnergyScale(np.arange(0, 303, 3))  # 3 keV per channel
     counts = channels * -0.5 + 100
     for peak in self.peaks:
         response = self.sensor.getResponse(peak.energy, peak.intensity,
                                            es.getEdges())
         counts += response
     self.spectrum = Spectrum(counts, es)
     self.mu = 1
     self.lld = 40
     self.baseline, self.smooth = spa.computeBaseline(
         self.spectrum.counts, self.mu)
     self.responsed_peaks = spa.responsePeaks(self.peaks, self.sensor,
                                              self.spectrum.energyScale)
     self.id_input = IdentificationInput(self.spectrum,
                                         intrinsic=self.spectrum)
     self.analysis = spa.SmoothPeakAnalysis()
     self.analysis.setSensor(self.sensor)
     self.result = self.analysis.analyze(self.id_input)
Example #2
0
class EnergyScaleTestCase(unittest.TestCase):
    def setUp(self):
        self.energy_scale = EnergyScale([0, 1, 2, 3, 4, 5])

    def test_newScale(self):
        es = EnergyScale.newScale(0, 5, 1, 1)
        self.assertSequenceEqual(tuple(es.getEdges()), tuple(self.energy_scale.getEdges()))

    def test_getCenter(self):
        self.assertEqual(self.energy_scale.getCenter(4), 4.5)

    def test_getCenters(self):
        self.assertSequenceEqual(tuple(self.energy_scale.getCenters()), tuple([0.5,1.5,2.5,3.5,4.5]))

    def test_findBin(self):
        self.assertEqual(self.energy_scale.findBin(5), 4)
        self.assertEqual(self.energy_scale.findBin(6), 5)
        self.assertEqual(self.energy_scale.findBin(-1), 0)

    def test_Length(self):
        self.assertEqual(len(self.energy_scale), 6)

    def test_findEnergy(self):
        self.assertEqual(self.energy_scale.findEnergy(1.5), 1.5)

    def test_toXml(self):
        """ Write and read to temporaty file and compare
        """
        os.makedirs("build/test", exist_ok=True)
        with open("build/test/bins.test","w") as fp:
            self.energy_scale.write(fp.name)
            es = loadXml(fp.name)
            self.assertSequenceEqual(tuple(es.getEdges()), tuple(self.energy_scale.getEdges()))
Example #3
0
 def test_toXml(self):
     counts = (1, 1, 1)
     edges = (0, 1, 2, 3)
     energyScale = EnergyScale(edges)
     rt = 1
     lt = 1
     distance = 10.
     gamma_dose = 100.
     title = "test"
     spectrum = Spectrum(counts, energyScale, rt, lt, distance, gamma_dose,
                         title)
     sp_list = SpectrumList()
     sp_list.addSpectrum(spectrum)
     sp_list.addSpectrum(spectrum)
     os.makedirs("build/test", exist_ok=True)
     with open("build/test/spectrum.test", "w") as fp:
         sp_list.write(fp.name)
         sp_list2 = loadXml(fp.name)
         for sp in sp_list2:
             self.assertSequenceEqual(tuple(sp.energyScale.getEdges()),
                                      edges)
             self.assertSequenceEqual(tuple(sp.counts), counts)
             self.assertEqual(sp.realtime, rt)
             self.assertEqual(sp.livetime, lt)
             self.assertEqual(sp.distance, distance)
             self.assertEqual(sp.gamma_dose, gamma_dose)
             self.assertEqual(sp.title, title)
Example #4
0
    def test_toXml(self):
        counts = (1,1,1)
        edges = (0,1,2,3)
        energyScale = EnergyScale(edges)
        rt = 1
        lt = 1
        distance = 10.
        gamma_dose = 100.
        title = "test"
        spectrum = Spectrum(counts,
                            energyScale,
                            rt,
                            lt,
                            distance,
                            gamma_dose,
                            title)
        sp_list = SpectrumList()
        sp_list.addSpectrum(spectrum)
        sp_list.addSpectrum(spectrum)

        with tempfile.NamedTemporaryFile() as fp:
            sp_list.write(fp.name)
            sp_list2 = loadXml(fp.name)
            for sp in sp_list2:
                self.assertSequenceEqual(tuple(sp.energyScale.getEdges()), edges)
                self.assertSequenceEqual(tuple(sp.counts), counts)
                self.assertEqual(sp.realtime, rt)
                self.assertEqual(sp.livetime, lt)
                self.assertEqual(sp.distance, distance)
                self.assertEqual(sp.gamma_dose, gamma_dose)
                self.assertEqual(sp.title, title)
Example #5
0
 def setUp(self):
     self.counts = (1, 1, 1)
     self.edges = (0, 1, 2, 3)
     self.energyScale = EnergyScale(self.edges)
     self.realtime = 1
     self.livetime = 1
     self.distance = 10.
     self.gamma_dose = 100.
     self.title = "test"
     self.spectrum = Spectrum(self.counts, self.energyScale, self.realtime,
                              self.livetime, self.distance, self.gamma_dose,
                              self.title)
Example #6
0
 def test_newScale(self):
     es = EnergyScale.newScale(0, 5, 1, 1)
     self.assertSequenceEqual(tuple(es.getEdges()),
                              tuple(self.energy_scale.getEdges()))
Example #7
0
 def setUp(self):
     self.energy_scale = EnergyScale([0, 1, 2, 3, 4, 5])
Example #8
0
 def test_getNormedCounts(self):
     self.assertSequenceEqual(tuple(self.spectrum.getNormedCounts()),
                              (1, 1, 1))
     sp2 = Spectrum([1, 1, 1, 1, 1], EnergyScale([0, 1, 2, 4, 8, 8.5]))
     self.assertSequenceEqual(tuple(sp2.getNormedCounts()),
                              (1., 1., 0.5, 0.25, 2.))