Example #1
0
def plot(galactic, rect):

    pf = MonteCarlo.make_allsky_isotropic_pyfits(galactic=galactic, proj='AIT')
    h,d=pf[0].header,pf[0].data
    ax = make_allsky_axes_from_header(fig, rect=rect, header=h, lon_center=0.)
    im = ax.imshow(pf[0].data, origin="lower", cmap=plt.cm.gray_r)
    ax.grid()
    overlay(ax)
Example #2
0
def batch_gtltcube(evfile, scfile, outfile, savedir, njobs=100, **kwargs):
    """ Create a folder savedir where a livetime cube can be computd
        in parallel. """
    if not exists(savedir): os.makedirs(savedir)

    first,last=MonteCarlo.get_time_from_ft2(scfile)

    times = np.linspace(first, last, njobs + 1)

    l = max(len('%d' % t) for t in times)

    tmins = times[:-1]
    tmaxs = times[1:]

    for tmin,tmax in zip(tmins,tmaxs):
        tmin_fmt='%0*d' % (l,tmin)
        tmax_fmt='%0*d' % (l,tmax)
        subdir = join(savedir,'times_%s_%s' % (tmin_fmt,tmax_fmt))

        if not exists(subdir): os.makedirs(subdir)

        cut_evfile=os.path.basename(evfile).replace('.fits','_%s_%s.fits')
        gtselect_command = format_command('gtselect',
                                          infile=evfile,
                                          outfile=cut_evfile,
                                          ra=0, dec=0, rad=180,
                                          tmin=tmin, tmax=tmax,
                                          emin=1, emax=1e6,
                                          zmax=180)

        ltcube_kwargs = dict(
            evfile=cut_evfile,
            outfile='ltcube_%s_%s.fits' % (tmin_fmt,tmax_fmt),
            scfile=scfile,
            tmin=tmin,
            tmax=tmax,)
        ltcube_kwargs.update(kwargs)

        ltcube_command = format_command('gtltcube',**ltcube_kwargs)

        jobfile = join(subdir,'run.sh')
        open(jobfile,'w').write('\n\n'.join([gtselect_command,ltcube_command]))

    submit_all = join(savedir,'submit_all.sh')
    open(submit_all,'w').write('submit_all */run.sh $@')

    merge = join(savedir,'merge.py')
    open(merge,'w').write(dedent("""\
        from lande.fermi.data.livetime import recursive_gtltsum
        from glob import iglob
        recursive_gtltsum(iglob("*/ltcube*.fits"),"%s")""" % outfile))
Example #3
0
        es = ExtendedSource(
            name=extended,
            model=model_mc,
            spatial_model=sm,
        )
        sim_es = ps

    ft1 = join(tempdir,'ft1.fits')
    binfile = join(tempdir, 'binned.fits')

    mc=MonteCarlo(
        sources=[bg.copy(), sim_es.copy()],
        seed=i,
        irf=irf,
        ft1=ft1,
        ft2=ft2,
        roi_dir=skydir_mc,
        maxROI=10,
        emin=emin,
        emax=emax,
        gtifile=ltcube,
        )

    mc.simulate()

    print 'Done Simulating, now fitting'


    ds=DataSpecification(
        ft1files = ft1,
        ft2files = ft2,
        ltcube   = ltcube,
Example #4
0
    savedir='/nfs/slac/g/ki/ki03/lande/fermi/data/monte_carlo/test_mapcube_cutting/plot_example/datadir_l_%d_b_%d' % (roi_dir.l(), roi_dir.b())

    emin=1e3
    emax=1e5

    diffdir='/afs/slac/g/glast/groups/diffuse/rings/2year/'

    diffuse_sources = get_default_diffuse(diffdir=diffdir, 
                                          gfile='ring_2year_P76_v0.fits',
                                          ifile='isotrop_2year_P76_source_v0.txt')


    ft2 = dict2fgl['ft2']
    ltcube = dict2fgl['ltcube']


    ft1 = join(savedir,'ft1.fits')
    m=MonteCarlo(
        sources=diffuse_sources,
        emin = emin,
        emax = emax,
        irf='P7SOURCE_V6',
        roi_dir=roi_dir,
        maxROI=10,
        seed=0,
        ft1=ft1,
        ft2=ft2,
        gtifile = ltcube,
        savedir=savedir)
    m.simulate()
Example #5
0
def main(inputfile,tag,idstart=None,idstop=None,debug=False,diffdir=None,tstart=0, tstop=8000, ft2file='None', emin=100, emax=1e5, seed=1000,irf='P7SOURCE_V6', dry_run=True, gtifile=None, zmax=None):
    if not diffdir is None:
        diffdir = diffdir.replace("~",os.getenv('HOME'))
    fid = verifyFile(inputfile)
    catalogxml = None
    if fid == 1:
        catalogxml = inputfile
    elif fid == 2:
        catalogxml = cFITS2XML(inputfile)
    if not os.getenv("LSB_JOBID")==None:
        Outdir =  NamedTemporaryFile(dir='/scratch/').name # data is stored in Outdir/raw
    else:
        Outdir =  NamedTemporaryFile(dir='/tmp/').name # data is stored in Outdir/raw
    print '*OUTDIR* %s'%Outdir
    Emin = 10
    Emax = 1e6
    print '*INFO*: current pfile settings',os.getenv('PFILES');
    # AllSky by default, need a ROI object to proceed
    os.mkdir(Outdir)
    modXML = AddCatalog(inputfile,idstart,idstop,Outdir,diffdir=diffdir)
    # now we check whether we have files that refer to nowhere
    checkXML(modXML)
    ps,ds = None,None
    ps,ds=parse_sources(modXML)
    sources = ps+ds
    # this is only necessary to make use of the roi_montecarlo.py code 
    montecarlo_object = MonteCarlo(
        # ST-09-29-00
        sources = sources,
        gtifile=gtifile, 
        zmax = zmax, 
        tempbase = Outdir,
        irf = irf,
        ft1 = Outdir+'/raw/ft1.fits',
        ft2 = ft2file,
        tstart = tstart,
        tstop = tstop,
        emin = emin,
        emax = emax,
        seed = seed,
        savedir = Outdir+'/raw/'
    )
    montecarlo_object.simulate(dry_run=dry_run)
    # now assemble list of files
    # check if we have parts
    tags = tag.split(";")
    storedir = os.getenv("SKYMODEL_DIR")+"/"
    for t in tags:
        storedir+="/"+t
    print '*INFO* store data here: %s'%storedir
    files = os.listdir(os.path.join(Outdir,'raw'))
    try:
        os.mkdir(storedir)
    except OSError:
        print '*WARNING* dir %s exists already, overwriting'%storedir
        removePath(storedir)
    # now move
    for f in files:
        infile = os.path.join(Outdir+'/raw/',f)
        outfile= os.path.join(storedir,f)
        move(infile,outfile)
    # finally, clean up
    removePath(Outdir)