def test_peakPicking(self): """first test peak-picking then checks the geometry found is OK""" for i in self.ctrlPt: pts = self.pp.massif.find_peaks(self.ctrlPt[i], stdout=open(self.logfile, "a")) logger.info("point %s at ring #%i (tth=%.1f deg) generated %i points", self.ctrlPt[i], i, self.tth[i], len(pts)) if len(pts) > 0: self.pp.points.append(pts, angle=self.tth[i], ring=i) else: logger.error("point %s caused error (%s) ", i, self.ctrlPt[i]) self.pp.points.save(self.nptfile) lstPeak = self.pp.points.getListRing() # print self.pp.points # print lstPeak logger.info("After peak-picking, we have %s points generated from %s groups ", len(lstPeak), len(self.ctrlPt)) gr = GeometryRefinement(lstPeak, dist=0.01, pixel1=1e-4, pixel2=1e-4, wavelength=self.wavelength, dSpacing=self.ds) gr.guess_poni() logger.info(gr.__repr__()) last = sys.maxint for i in range(self.maxiter): delta2 = gr.refine2() logger.info(gr.__repr__()) if delta2 == last: logger.info("refinement finished after %s iteration" % i) break last = delta2 self.assertEquals(last < 1e-4, True, "residual error is less than 1e-4, got %s" % last) self.assertAlmostEquals(gr.dist, 0.1, 2, "distance is OK, got %s, expected 0.1" % gr.dist) self.assertAlmostEquals(gr.poni1, 3e-2, 2, "PONI1 is OK, got %s, expected 3e-2" % gr.poni1) self.assertAlmostEquals(gr.poni2, 3e-2, 2, "PONI2 is OK, got %s, expected 3e-2" % gr.poni2) self.assertAlmostEquals(gr.rot1, 0, 2, "rot1 is OK, got %s, expected 0" % gr.rot1) self.assertAlmostEquals(gr.rot2, 0, 2, "rot2 is OK, got %s, expected 0" % gr.rot2) self.assertAlmostEquals(gr.rot3, 0, 2, "rot3 is OK, got %s, expected 0" % gr.rot3)
def test_peakPicking(self): """first test peak-picking then checks the geometry found is OK""" for i in self.ctrlPt: pts = self.pp.massif.find_peaks(self.ctrlPt[i], stdout=open(self.logfile, "a")) logger.info("point %s at ring #%i (tth=%.1f deg) generated %i points", self.ctrlPt[i], i, self.tth[i], len(pts)) if len(pts) > 0: self.pp.points.append(pts, angle=self.tth[i], ring=i) else: logger.error("point %s caused error (%s) ", i, self.ctrlPt[i]) self.pp.points.save(self.nptfile) lstPeak = self.pp.points.getListRing() # print self.pp.points # print lstPeak logger.info("After peak-picking, we have %s points generated from %s groups ", len(lstPeak), len(self.ctrlPt)) gr = GeometryRefinement(lstPeak, dist=0.01, pixel1=1e-4, pixel2=1e-4, wavelength=self.wavelength, calibrant=self.calibrant) gr.guess_poni() logger.info(gr.__repr__()) last = sys.maxint for i in range(self.maxiter): delta2 = gr.refine2() logger.info(gr.__repr__()) if delta2 == last: logger.info("refinement finished after %s iteration" % i) break last = delta2 self.assertEquals(last < 1e-4, True, "residual error is less than 1e-4, got %s" % last) self.assertAlmostEquals(gr.dist, 0.1, 2, "distance is OK, got %s, expected 0.1" % gr.dist) self.assertAlmostEquals(gr.poni1, 3e-2, 2, "PONI1 is OK, got %s, expected 3e-2" % gr.poni1) self.assertAlmostEquals(gr.poni2, 3e-2, 2, "PONI2 is OK, got %s, expected 3e-2" % gr.poni2) self.assertAlmostEquals(gr.rot1, 0, 2, "rot1 is OK, got %s, expected 0" % gr.rot1) self.assertAlmostEquals(gr.rot2, 0, 2, "rot2 is OK, got %s, expected 0" % gr.rot2) self.assertAlmostEquals(gr.rot3, 0, 2, "rot3 is OK, got %s, expected 0" % gr.rot3)