def test_FluxfitDisplay(self): logger.info('== {} =='.format(self._testMethodName)) ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) min_focpos_fwhm, val_fwhm, par, flag = ft.fitData() if flag != None: resultFitFwhm = ResultFit(ambientTemp='20.1', ftName='UNK', extrFitPos=min_focpos_fwhm, extrFitVal=val_fwhm, fitPar=par, fitFlag=flag, color='blue', ylabel='FWHM [px]: blue', titleResult='fwhm:{0:5d}'.format( int(min_focpos_fwhm))) fd = FitDisplay(date=self.date, comment='unittest', logger=logger) fd.fitDisplay(dataFit=self.dataFitFwhm, resultFit=resultFitFwhm, xdisplay=False) x = np.array([p for p in self.dataFitFlux.pos]) y = np.array([v for v in self.dataFitFlux.val]) wmean = np.average(a=x, weights=y) xy = zip(x, y) wstd = np.std(a=xy) # scale the values [a.u.] sv = [ max(self.dataFitFwhm.val) / max(self.dataFitFlux.val) * z for z in self.dataFitFlux.val ] self.dataFitFlux.val = sv # gaussian self.parFlux = np.array([10., wmean, wstd / 4., 2.]) ft = FitFunction(dataFit=self.dataFitFlux, logger=logger) max_focpos_flux, val_flux, par, flag = ft.fitData() if flag != None: resultFitFlux = ResultFit( ambientTemp='20.1', ftName='UNK', extrFitPos=max_focpos_flux, extrFitVal=val_flux, fitPar=par, fitFlag=flag, color='red', ylabel='FWHM [px]: blue, Flux [a.u.]:red', titleResult='fwhm:{0:5d}, flux: {1:5d}'.format( int(resultFitFwhm.extrFitPos), int(max_focpos_flux))) fd.fitDisplay(dataFit=self.dataFitFlux, resultFit=resultFitFlux, xdisplay=False)
def test_FluxfitDisplay(self): logger.info('== {} =='.format(self._testMethodName)) ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) min_focpos_fwhm, val_fwhm, par, flag= ft.fitData() if flag!=None: resultFitFwhm=ResultFit( ambientTemp='20.1', ftName='UNK', extrFitPos=min_focpos_fwhm, extrFitVal=val_fwhm, fitPar=par, fitFlag=flag, color='blue', ylabel='FWHM [px]: blue', titleResult='fwhm:{0:5d}'.format(int(min_focpos_fwhm)) ) fd = FitDisplay(date=self.date, comment='unittest', logger=logger) fd.fitDisplay(dataFit=self.dataFitFwhm, resultFit=resultFitFwhm, xdisplay=False) x=np.array([p for p in self.dataFitFlux.pos]) y=np.array([v for v in self.dataFitFlux.val]) wmean= np.average(a=x, weights=y) xy= zip(x,y) wstd = np.std(a=xy) # scale the values [a.u.] sv = [max(self.dataFitFwhm.val) / max(self.dataFitFlux.val) * z for z in self.dataFitFlux.val] self.dataFitFlux.val=sv # gaussian self.parFlux= np.array([ 10., wmean, wstd/4., 2.]) ft = FitFunction(dataFit=self.dataFitFlux, logger=logger) max_focpos_flux, val_flux, par, flag= ft.fitData() if flag!=None: resultFitFlux=ResultFit( ambientTemp='20.1', ftName='UNK', extrFitPos=max_focpos_flux, extrFitVal=val_flux, fitPar=par, fitFlag=flag, color='red', ylabel='FWHM [px]: blue, Flux [a.u.]:red', titleResult='fwhm:{0:5d}, flux: {1:5d}'.format(int(resultFitFwhm.extrFitPos), int(max_focpos_flux)) ) fd.fitDisplay(dataFit=self.dataFitFlux, resultFit=resultFitFlux, xdisplay=False)
class TestFitFunction(unittest.TestCase): def tearDown(self): try: os.unlink(self.plotFnIn) except: pass def setUp(self): from rts2saf.data import DataFitFwhm, DataSxtr import numpy as np pos = np.asarray([ 2000., 2100., 2200., 2300., 2400., 2500., 2600., 2700., 2800., 2900., 3000. ]) fwhm = np.asarray( [40., 30., 20., 15., 10., 5., 10., 15., 20., 30., 40.]) stdFocPos = np.asarray( [20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20.]) stdFwhm = np.asarray([2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.]) flux = np.asarray( [2.2, 3.1, 4.8, 7.9, 10.1, 11.2, 11.1, 8.2, 5.4, 3.2, 2.2]) stdFlux = np.asarray( [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]) dataSxtr = list() for i in range(0, len(pos) - 1): dataSxtr.append( DataSxtr(focPos=pos[i], stdFocPos=stdFocPos[i], fwhm=fwhm[i], stdFwhm=stdFwhm[i], flux=flux[i], stdFlux=stdFlux[i], catalog=[1, 2, 3])) self.plotFnIn = './test-plot.png' self.date = '2013-09-08T09:30:09' self.dataFitFwhm = DataFitFwhm(dataSxtr=dataSxtr, ambientTemp='21.3', plotFn=self.plotFnIn) self.ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) def test_fitData(self): logger.info('== {} =='.format(self._testMethodName)) min_focpos_fwhm, val_fwhm, par, flag = self.ft.fitData() self.assertAlmostEqual(min_focpos_fwhm, 2507.66745331, places=3, msg='return value: {}'.format(min_focpos_fwhm))
class TestFitFunction(unittest.TestCase): def tearDown(self): try: os.unlink(self.plotFnIn) except: pass def setUp(self): from rts2saf.data import DataFitFwhm, DataSxtr import numpy as np pos = np.asarray([ 2000., 2100., 2200., 2300., 2400., 2500., 2600., 2700., 2800., 2900., 3000.]) fwhm = np.asarray([ 40., 30., 20., 15., 10., 5., 10., 15., 20., 30., 40.]) stdFocPos = np.asarray([ 20., 20., 20., 20., 20., 20., 20., 20., 20., 20., 20.]) stdFwhm = np.asarray([ 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.]) flux = np.asarray([ 2.2, 3.1, 4.8, 7.9, 10.1, 11.2, 11.1, 8.2, 5.4, 3.2, 2.2]) stdFlux = np.asarray([ 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]) dataSxtr=list() for i in range( 0, len(pos)-1): dataSxtr.append( DataSxtr( focPos=pos[i], stdFocPos=stdFocPos[i], fwhm=fwhm[i], stdFwhm=stdFwhm[i], flux=flux[i], stdFlux=stdFlux[i], catalog=[1, 2, 3] ) ) self.plotFnIn='./test-plot.png' self.date = '2013-09-08T09:30:09' self.dataFitFwhm=DataFitFwhm( dataSxtr=dataSxtr, ambientTemp='21.3', plotFn= self.plotFnIn) self.ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) def test_fitData(self): logger.info('== {} =='.format(self._testMethodName)) min_focpos_fwhm, val_fwhm, par, flag= self.ft.fitData() self.assertAlmostEqual(min_focpos_fwhm, 2507.66745331, places=3, msg='return value: {}'.format(min_focpos_fwhm))
def test_FwhmfitDisplay(self): logger.info('== {} =='.format(self._testMethodName)) ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) min_focpos_fwhm, val_fwhm, par, flag= ft.fitData() resultFitFwhm=ResultFit( ambientTemp='20.1', ftName='UNK', extrFitPos=min_focpos_fwhm, extrFitVal=val_fwhm, fitPar=par, fitFlag=flag, color='blue', ylabel='FWHM [px]: blue', titleResult='fwhm:{0:5d}'.format(int(min_focpos_fwhm)) ) self.fd = FitDisplay(date=self.date, comment='unittest', logger=logger) self.fd.fitDisplay(dataFit=self.dataFitFwhm, resultFit=resultFitFwhm, xdisplay=False)
def test_FwhmfitDisplay(self): logger.info('== {} =='.format(self._testMethodName)) ft = FitFunction(dataFit=self.dataFitFwhm, logger=logger) min_focpos_fwhm, val_fwhm, par, flag = ft.fitData() resultFitFwhm = ResultFit(ambientTemp='20.1', ftName='UNK', extrFitPos=min_focpos_fwhm, extrFitVal=val_fwhm, fitPar=par, fitFlag=flag, color='blue', ylabel='FWHM [px]: blue', titleResult='fwhm:{0:5d}'.format( int(min_focpos_fwhm))) self.fd = FitDisplay(date=self.date, comment='unittest', logger=logger) self.fd.fitDisplay(dataFit=self.dataFitFwhm, resultFit=resultFitFwhm, xdisplay=False)