Example #1
0
    def test_analyze(self):
        logger.info("== {} ==".format(self._testMethodName))
        fitsFns = glob.glob("{0}/{1}".format("../samples", self.rt.cfg["FILE_GLOB"]))
        dataSxtr = list()
        for k, fitsFn in enumerate(fitsFns):

            logger.info("analyze: processing fits file: {0}".format(fitsFn))
            sxtr = Sextract(debug=False, rt=self.rt, logger=logger)
            dSx = sxtr.sextract(fitsFn=fitsFn)

            if dSx:
                dataSxtr.append(dSx)

        self.assertEqual(len(dataSxtr), 14, "return value: {}".format(len(dataSxtr)))

        an = SimpleAnalysis(
            debug=False,
            dataSxtr=dataSxtr,
            Ds9Display=False,
            FitDisplay=False,
            focRes=float(self.rt.cfg["FOCUSER_RESOLUTION"]),
            ev=self.ev,
            rt=self.rt,
            logger=logger,
        )
        resultFitFwhm, resultMeansFwhm, resultFitFlux, resultMeansFlux = an.analyze()
        self.assertAlmostEqual(
            resultFitFwhm.extrFitVal, 2.2175214358, places=2, msg="return value: {}".format(resultFitFwhm.extrFitVal)
        )

        an.display()
Example #2
0
    def test_analyze(self):
        logger.info('== {} =='.format(self._testMethodName))
        fitsFns = glob.glob('{0}/{1}'.format('../samples',
                                             self.rt.cfg['FILE_GLOB']))
        dataSxtr = list()
        for k, fitsFn in enumerate(fitsFns):

            logger.info('analyze: processing fits file: {0}'.format(fitsFn))
            sxtr = Sextract(debug=False, rt=self.rt, logger=logger)
            dSx = sxtr.sextract(fitsFn=fitsFn)

            if dSx:
                dataSxtr.append(dSx)

        self.assertEqual(len(dataSxtr), 14,
                         'return value: {}'.format(len(dataSxtr)))

        an = SimpleAnalysis(debug=False,
                            dataSxtr=dataSxtr,
                            Ds9Display=False,
                            FitDisplay=False,
                            focRes=float(self.rt.cfg['FOCUSER_RESOLUTION']),
                            ev=self.ev,
                            rt=self.rt,
                            logger=logger)
        resultFitFwhm, resultMeansFwhm, resultFitFlux, resultMeansFlux = an.analyze(
        )
        self.assertAlmostEqual(resultFitFwhm.extrFitVal,
                               2.2175214358,
                               places=2,
                               msg='return value: {}'.format(
                                   resultFitFwhm.extrFitVal))

        an.display()
Example #3
0
    def test_selectAndAnalyze(self):
        logger.info("== {} ==".format(self._testMethodName))
        fitsFns = glob.glob("{0}/{1}".format("../samples", self.rt.cfg["FILE_GLOB"]))
        dataSxtr = list()
        for k, fitsFn in enumerate(fitsFns):

            logger.info("analyze: processing fits file: {0}".format(fitsFn))
            sxtr = Sextract(debug=False, rt=self.rt, logger=logger)
            dSx = sxtr.sextract(fitsFn=fitsFn)

            if dSx:
                dataSxtr.append(dSx)

        self.assertEqual(len(dataSxtr), 14, "return value: {}".format(len(dataSxtr)))
        an = CatalogAnalysis(
            debug=False,
            dataSxtr=dataSxtr,
            Ds9Display=False,
            FitDisplay=False,
            focRes=float(self.rt.cfg["FOCUSER_RESOLUTION"]),
            moduleName="rts2saf.criteria_radius",
            ev=self.ev,
            rt=self.rt,
            logger=logger,
        )
        accRFt, rejRFt, allrFt, accRMns, recRMns, allRMns = an.selectAndAnalyze()
        self.assertAlmostEqual(
            allrFt.extrFitVal, 2.2175214358, delta=0.1, msg="return value: {}".format(allrFt.extrFitVal)
        )
        self.assertAlmostEqual(
            accRFt.extrFitVal, 2.24000979001, delta=0.1, msg="return value: {}".format(allrFt.extrFitVal)
        )
Example #4
0
    def createAssocList(self, fitsFn=None):
        rsx = Sextract(
            debug=self.args.sxDebug, createAssoc=self.rt.cfg["ANALYZE_ASSOC"], rt=self.rt, logger=self.logger
        )
        if self.rt.cfg["ANALYZE_FLUX"]:
            rsx.appendFluxFields()

        return rsx.sextract(fitsFn=fitsFn, assocFn=self.assocFn)
Example #5
0
 def test_sextractFlux(self):
     logger.info('== {} =='.format(self._testMethodName))
     rt = Configuration(logger=logger)
     rt.readConfiguration(fileName='./rts2saf-flux.cfg')
     sx = Sextract(debug=False, rt=rt, logger=logger)
     fitsFn='../samples/20071205025911-725-RA.fits'
     sx.appendFluxFields()
     dSx=sx.sextract(fitsFn=fitsFn)
     self.assertEqual(dSx.fields[12], 'FLUXERR_APER', 'return value: {}'.format(dSx.fields[12]))
Example #6
0
 def test_sextract(self):
     logger.info('== {} =='.format(self._testMethodName))
     rt = Configuration(logger=logger)
     rt.readConfiguration(fileName='./rts2saf-no-filter-wheel.cfg')
     sx = Sextract(debug=False, rt=rt, logger=logger)
     fitsFn='../samples/20071205025911-725-RA.fits'
     dSx=sx.sextract(fitsFn=fitsFn)
     self.assertIs(type(dSx), DataSxtr, 'return object of type: '.format(type(dSx)))
     self.assertEqual(fitsFn, dSx.fitsFn, 'install sample FITS from wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-09-14.tgz')
Example #7
0
    def createAssocList(self, fitsFn=None):
        rsx = Sextract(debug=self.args.sxDebug,
                       createAssoc=self.rt.cfg['ANALYZE_ASSOC'],
                       rt=self.rt,
                       logger=self.logger)
        if self.rt.cfg['ANALYZE_FLUX']:
            rsx.appendFluxFields()

        return rsx.sextract(fitsFn=fitsFn, assocFn=self.assocFn)
Example #8
0
 def test_sextractFlux(self):
     logger.info('== {} =='.format(self._testMethodName))
     rt = Configuration(logger=logger)
     rt.readConfiguration(fileName='./rts2saf-flux.cfg')
     sx = Sextract(debug=False, rt=rt, logger=logger)
     fitsFn = '../samples/20071205025911-725-RA.fits'
     sx.appendFluxFields()
     dSx = sx.sextract(fitsFn=fitsFn)
     self.assertEqual(dSx.fields[12], 'FLUXERR_APER',
                      'return value: {}'.format(dSx.fields[12]))
Example #9
0
 def test_sextract(self):
     logger.info('== {} =='.format(self._testMethodName))
     rt = Configuration(logger=logger)
     rt.readConfiguration(fileName='./rts2saf-no-filter-wheel.cfg')
     sx = Sextract(debug=False, rt=rt, logger=logger)
     fitsFn = '../samples/20071205025911-725-RA.fits'
     dSx = sx.sextract(fitsFn=fitsFn)
     self.assertIs(type(dSx), DataSxtr,
                   'return object of type: '.format(type(dSx)))
     self.assertEqual(
         fitsFn, dSx.fitsFn,
         'install sample FITS from wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-09-14.tgz'
     )
Example #10
0
    def test_selectAndAnalyze(self):
        logger.info('== {} =='.format(self._testMethodName))
        fitsFns=glob.glob('{0}/{1}'.format('../samples', self.rt.cfg['FILE_GLOB']))
        dataSxtr=list()
        for k, fitsFn in enumerate(fitsFns):
        
            logger.info('analyze: processing fits file: {0}'.format(fitsFn))
            sxtr= Sextract(debug=False, rt=self.rt, logger=logger)
            dSx=sxtr.sextract(fitsFn=fitsFn)

            if dSx:
                dataSxtr.append(dSx)

        self.assertEqual(len(dataSxtr), 14, 'return value: {}'.format(len(dataSxtr)))
        an=CatalogAnalysis(debug=False, dataSxtr=dataSxtr, Ds9Display=False, FitDisplay=False, focRes=float(self.rt.cfg['FOCUSER_RESOLUTION']), moduleName='rts2saf.criteria_radius', ev=self.ev, rt=self.rt, logger=logger)
        accRFt, rejRFt, allrFt, accRMns, recRMns, allRMns=an.selectAndAnalyze()
        self.assertAlmostEqual(allrFt.extrFitVal, 2.2175214358, delta=0.1, msg='return value: {}'.format(allrFt.extrFitVal))
        self.assertAlmostEqual(accRFt.extrFitVal, 2.24000979001, delta=0.1, msg='return value: {}'.format(allrFt.extrFitVal))
Example #11
0
    def sextract(self, fitsFns=None, dSxReference=None, dataRn=None):
        for fitsFn in fitsFns:
            rsx = Sextract(debug=self.args.sxDebug, rt=self.rt, logger=self.logger)
            if self.rt.cfg["ANALYZE_FLUX"]:
                rsx.appendFluxFields()

            if dSxReference is not None:
                rsx.appendAssocFields()
                dSx = rsx.sextract(fitsFn=fitsFn, assocFn=self.assocFn)
            else:
                dSx = rsx.sextract(fitsFn=fitsFn, assocFn=None)

            if dSx is not None and dSx.fwhm > 0.0 and dSx.stdFwhm > 0.0:
                dataRn.dataSxtrs.append(dSx)
                self.logger.debug("sextract:  {}, ok: {}".format(len(dSx.catalog), fitsFn))
            else:
                self.logger.warn("sextract: no result, file: {0}".format(fitsFn))
Example #12
0
    def sextract(self, fitsFns=None, dSxReference=None, dataRn=None):
        for fitsFn in fitsFns:
            rsx = Sextract(debug=self.args.sxDebug,
                           rt=self.rt,
                           logger=self.logger)
            if self.rt.cfg['ANALYZE_FLUX']:
                rsx.appendFluxFields()

            if dSxReference is not None:
                rsx.appendAssocFields()
                dSx = rsx.sextract(fitsFn=fitsFn, assocFn=self.assocFn)
            else:
                dSx = rsx.sextract(fitsFn=fitsFn, assocFn=None)

            if dSx is not None and dSx.fwhm > 0. and dSx.stdFwhm > 0.:
                dataRn.dataSxtrs.append(dSx)
                self.logger.debug('sextract:  {}, ok: {}'.format(
                    len(dSx.catalog), fitsFn))
            else:
                self.logger.warn(
                    'sextract: no result, file: {0}'.format(fitsFn))
Example #13
0
    parser.add_argument('--ds9display', dest='Ds9Display', action='store_true', default=False, help=': %(default)s, display fits images and region files')
    args=parser.parse_args()
    # logger
    logger= Logger(debug=args.debug, args=args).logger # if you need to chage the log format do it here

    # read the run time configuration
    rt=Configuration(logger=logger)
    if not rt.readConfiguration(fileName=args.config):
        logger.error('rts2saf_focus: exiting, wrong syntax, check the configuration file: {0}'.format(args.config))
        sys.exit(1)

    if not rt.checkConfiguration(args=args):
        logger.error('rts2saf_focus: exiting, check the configuration file: {0}'.format(args.config))
        sys.exit(1)

    sex= Sextract(debug=args.debug, rt=rt, logger=logger)
    if args.fitsFn==None:
        logger.error('rts2af_fwhm: no --fitsFn specified, exiting'.format(args.fitsFn))
        sys.exit(1)

    elif not os.path.exists(args.fitsFn):
        logger.error('rts2af_fwhm: file: {0}, does not exist, exiting'.format(args.fitsFn))
        sys.exit(1)

    try:
        dataSxtr=sex.sextract(fitsFn=args.fitsFn) 
    except Exception, e:
        logger.error('rts2af_fwhm: sextractor failed on file: {0}\nerror from sex.sextract: {1}\nexiting'.format(args.fitsFn, e))
        sys.exit(1)

    fwhmTreshold=rt.cfg['FWHM_LOWER_THRESH'] 
Example #14
0
    # read the run time configuration
    rt = Configuration(logger=logger)
    if not rt.readConfiguration(fileName=args.config):
        logger.error(
            'rts2saf_focus: exiting, wrong syntax, check the configuration file: {0}'
            .format(args.config))
        sys.exit(1)

    if not rt.checkConfiguration(args=args):
        logger.error(
            'rts2saf_focus: exiting, check the configuration file: {0}'.format(
                args.config))
        sys.exit(1)

    sex = Sextract(debug=args.debug, rt=rt, logger=logger)
    if args.fitsFn == None:
        logger.error('rts2af_fwhm: no --fitsFn specified, exiting'.format(
            args.fitsFn))
        sys.exit(1)

    elif not os.path.exists(args.fitsFn):
        logger.error('rts2af_fwhm: file: {0}, does not exist, exiting'.format(
            args.fitsFn))
        sys.exit(1)

    try:
        dataSxtr = sex.sextract(fitsFn=args.fitsFn)
    except Exception, e:
        logger.error(
            'rts2af_fwhm: sextractor failed on file: {0}\nerror from sex.sextract: {1}\nexiting'
Example #15
0
 def setUp(self):
     self.rt = Configuration(logger=logger)
     self.rt.readConfiguration(fileName='./rts2saf-no-filter-wheel.cfg')
     self.dSx = Sextract(debug=False, rt=self.rt, logger=logger).sextract(
         fitsFn='../samples/20071205025911-725-RA.fits')
     print self.dSx.fitsFn