def test_peaks1d(self): "test 1D peak picker" print(self.test_peaks1d.__doc__) M = np.zeros((30)) M[5] = 20 M[7] = 8 M[15] = 11 M[10] = 20 d = _NPKData(buffer=M) d.pp(threshold=3) self.assertEqual(list(d.peaks.pos), [5.0, 7.0, 10.0, 15.0]) self.assertEqual(list(d.peaks.intens), [20.0, 8.0, 20.0, 11.0]) d.peaks.report(NbMaxPeaks=2)
def test_peaks2d(self): "test 2D peak picker" print(self.test_peaks2d.__doc__) M = np.zeros((30, 30)) M[5, 7] = 20 M[10, 12] = 20 d = _NPKData(buffer=M) d.pp( threshold=10 ) # 3*d.std was just right - but does not work anymore with robust_stats() ! self.assertEqual(list(d.peaks.posF1), [5, 10]) self.assertEqual(list(d.peaks.posF2), [7, 12]) self.assertEqual(list(d.peaks.intens), [20.0, 20.0])
def test_center1d(self): x = np.arange(5) y = center(x, 2.2, 10.0, 1.2) # y == [ -2.36111111e+01 -4.44089210e-15 9.72222222e+00 5.55555556e+00 -1.25000000e+01] self.assertAlmostEqual(y[2], 9.72222222) d = _NPKData(buffer=np.maximum(y, 0.0)) d.peaks = Peak1DList(source=d) d.peaks.append(Peak1D(0, "0", 9.7, 2)) d.peaks[-1].width = 1.0 d.centroid(npoints=3) self.assertAlmostEqual(d.peaks[0].pos, 2.2) self.assertAlmostEqual(d.peaks[0].intens, 10.0) self.assertAlmostEqual(d.peaks[0].width, 1.2 * np.sqrt(2)) d.peaks.report(NbMaxPeaks=10)
def test_center2d(self): M = np.zeros((20, 20)) # add one peak at (F1,F2) 5.3, 7.9 with widthes (5.0,1.3) for y in range(1, 10): for x in range(6, 11): # yo, x0 intens, widthy, widthx M[y, x] = center2d(np.array([y, x]), 5.3, 7.9, 20.0, 5.0, 1.3) #print (M[1:10,6:11]) self.assertAlmostEqual(M[2, 7], 5.87777515) d = _NPKData(buffer=np.maximum(M, 0.0)) d.peaks = Peak2DList(source=d) # self, Id, label, intens, posF1, posF2 d.peaks.append(Peak2D(0, "0", 18.0, 5, 8)) d.centroid(npoints_F1=5) self.assertAlmostEqual(d.peaks[0].posF1, 5.3) self.assertAlmostEqual(d.peaks[0].posF2, 7.9) self.assertAlmostEqual(d.peaks[0].intens, 20.0) self.assertAlmostEqual(d.peaks[0].widthF1, 5.0 * np.sqrt(2)) self.assertAlmostEqual(d.peaks[0].widthF2, 1.3 * np.sqrt(2))