예제 #1
0
sys.path.insert(0, '/Users/hazboun/software_development/pta_sim/')

import pta_sim
import pta_sim.parse_sim as parse_sim
from pta_sim.sim_gw import Simulation, model_simple
from pta_sim.bayes import chain_length_bool, save_core, get_freqs, filter_psr_path
args = parse_sim.arguments()

#Is chain longer than niter?
longer = chain_length_bool(args.outdir, args.niter)

if longer and os.path.exists(args.core_path):
    sys.end()
elif longer:
    save_core(args.corepath, args.outdir)
    sys.end()  #Hmmmm what to do here?
else:
    pass

#Get par and tim files.
parfiles = sorted(glob.glob(args.pardir + '*.par'))
timfiles = sorted(glob.glob(args.timdir + '*.tim'))

if args.psr_list is not None:
    parfiles = filter_psr_path(parfiles, args.psr_list, rhs='_')
    timfiles = filter_psr_path(timfiles, args.psr_list, rhs='_')

sim = Simulation(parfiles, timfiles, ephem=args.ephem, verbose=True)

if args.process is None:
예제 #2
0
              0.01**2)  # helps to tune MCMC proposal distribution

# sampler object
sampler = ptmcmc(ndim,
                 pta.get_lnlikelihood,
                 pta.get_lnprior,
                 cov,
                 groups=groups,
                 outDir=args.outdir,
                 resume=True)

achrom_freqs = get_freqs(pta, 'red_noise')
np.save(args.outdir + 'pars.npy', pta.param_names)
np.save(args.outdir + 'par_model.npy', np.array(pta.params).astype(str))
np.save(args.outdir + 'signals.npy', list(pta.signals.keys()))
np.savetxt(args.outdir + 'achrom_rn_freqs.txt', achrom_freqs, fmt='%.18e')

jp = model_utils.JumpProposal(pta)
sampler.addProposalToCycle(jp.draw_from_dm_gp_prior, 20)
sampler.addProposalToCycle(jp.draw_from_prior, 20)
# sampler.addProposalToCycle(jp.draw_from_red_prior, 20)

sampler.sample(x0,
               args.niter,
               SCAMweight=30,
               AMweight=15,
               DEweight=50,
               burn=100000)

save_core(args.corepath, args.outdir, remove=True)