示例#1
0
def create_pg1553_analysis(request, tmpdir_factory):
    path = tmpdir_factory.mktemp('pg1553')
    url = 'https://raw.githubusercontent.com/fermiPy/fermipy-extras/master/data/fermipy_test_pg1553.tar.gz'
    outfile = path.join('fermipy_test_pg1553.tar.gz')
    dirname = path.join()
    os.system('curl -o %s -OL %s' % (outfile, url))
    os.system('cd %s;tar xzf %s' % (dirname, outfile))

    ft2_files = [
        'P8_P302_TRANSIENT020E_239557414_242187214_ft2.fits',
        'P8_P302_TRANSIENT020E_247446814_250076614_ft2.fits',
        'P8_P302_TRANSIENT020E_255336214_257966014_ft2.fits',
        'P8_P302_TRANSIENT020E_242187214_244817014_ft2.fits',
        'P8_P302_TRANSIENT020E_250076614_252706414_ft2.fits',
        'P8_P302_TRANSIENT020E_257966014_260595814_ft2.fits',
        'P8_P302_TRANSIENT020E_244817014_247446814_ft2.fits',
        'P8_P302_TRANSIENT020E_252706414_255336214_ft2.fits',
        'P8_P302_TRANSIENT020E_260595814_263225614_ft2.fits'
    ]

    for f in ft2_files:
        url = 'https://raw.githubusercontent.com/fermiPy/fermipy-extras/master/data/ft2/%s' % f
        outfile = path.join('fermipy_test_pg1553', f)
        os.system('curl -o %s -OL %s' % (outfile, url))

    request.addfinalizer(lambda: path.remove(rec=1))

    cfgfile = path.join('fermipy_test_pg1553', 'config.yaml')

    gta = gtanalysis.GTAnalysis(str(cfgfile))
    gta.setup()

    return gta
示例#2
0
def create_draco_analysis(request, tmpdir_factory):
    path = tmpdir_factory.mktemp('draco')
    url = 'https://raw.githubusercontent.com/fermiPy/fermipy-extras/master/data/fermipy_test_draco.tar.gz'
    outfile = path.join('fermipy_test_draco.tar.gz')
    dirname = path.join()
    os.system('curl -o %s -OL %s' % (outfile, url))
    os.system('cd %s;tar xzf %s' % (dirname, outfile))
    request.addfinalizer(lambda: path.remove(rec=1))

    cfgfile = path.join('fermipy_test_draco', 'config.yaml')
    gta = gtanalysis.GTAnalysis(str(cfgfile))
    gta.setup()

    return gta
def create_draco_analysis(request, tmpdir_factory):
    path = tmpdir_factory.mktemp('draco')
    url = 'https://raw.githubusercontent.com/XanAstia/fermipy-extra/asymmetric-roi/data/fermipy_test_draco.tar.gz'
    outfile = path.join('fermipy_test_draco.tar.gz')
    dirname = path.join()
    os.system('curl -o %s -OL %s' % (outfile, url))
    os.system('cd %s;tar xzf %s' % (dirname, outfile))

    request.addfinalizer(lambda: path.remove(rec=1))

    cfgfile = path.join('fermipy_test_draco', 'config.yaml')
    if not os.path.isfile(str(cfgfile)):
        raise RuntimeError("Failed to install config file %s" % str(cfgfile))
    gta = gtanalysis.GTAnalysis(str(cfgfile))
    gta.setup()

    return gta
示例#4
0
    def __call__(self, roi_index, ncomp=None, overwrite=False, **kwargs):
        """Setup gtanalysis with a pointlike ROI
        """
        self.roi_index = roi_index
        roidir = Band(12).dir(roi_index)
        logger = self.logger

        gt_config = yaml.load(
            config_template.format(
                ltcube=self.ltcube,
                ft1='',
                irf=self.irf,
                galdiff=self.galdiff,
                components=self.components
                if ncomp is None else self.components[:ncomp],  # to 100 GeV 
                ra=roidir.ra(),
                dec=roidir.dec(),
                bexpmap=self.bexpmap_dir + '/bexpmap%s.fits',
                ccube=self.ccube_root +
                '/{:04d}/ccube%s.fits'.format(roi_index),
                #srcmdl='srcmdl.xml', # same for all components
            ))
        self.gtcfg = gt_config
        # Check and/or setup the ccube files
        assert os.path.exists(
            self.ccube_root), 'Expected to find folder {}'.format(
                self.cube_root)
        roi_root = os.path.join(self.ccube_root, str(roi_index))
        if not os.path.exists(roi_root):
            os.mkdir(roi_root)

        clist = range(len(gt_config['components']))
        ccfiles = [os.path.join(self.ccube_root,\
             '{:04d}'.format(roi_index), gt_config['gtlike']['ccube']% '_{:02d}'.format(j) )for j in clist]
        ok = np.all(map(os.path.exists, ccfiles))
        if not ok:
            logger.info('Need to generate ccfiles')
            bf = binned_data.BinFile(self.uwcfg.dataset.binfile)
            bf.generate_ccube_files(self.ccube_root,
                                    roi_index,
                                    channels=clist,
                                    overwrite=overwrite)

        # Check for bexpmap
        assert os.path.exists(
            self.bexpmap_dir), 'expected to find folder {}'.format(
                self.bexpmap_dir)
        self.create_expcubes(gt_config['components'], overwrite=overwrite)

        logger.info('Create the gtanalysis')
        self.gta = gtanalysis.GTAnalysis(gt_config, **kwargs)

        # Check for srcmaps
        logger.info('Checking srcmap files')
        srcmap_ok = [os.path.exists(c.files['srcmap']) for c in self.gta]

        if np.any(np.logical_not(srcmap_ok)) or overwrite:
            logger.info('Will create srcmap files')
            try:
                self.create_srcmaps(overwrite)
            except Exception, msg:
                logger.error('Failed : {}. Returning anyway'.format(msg))
                return self.gta