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
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
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