Ejemplo n.º 1
0
    q[self.pmap[str(param)]] = np.random.uniform(param.prior._defaults['pmin'],
                                                 param.prior._defaults['pmax'])

    # forward-backward jump probability
    lqxy = (param.get_logpdf(x[self.pmap[str(param)]]) -
            param.get_logpdf(q[self.pmap[str(param)]]))

    return q, float(lqxy)


sampler.JumpProposal.draw_from_gw_gamma_prior = draw_from_gw_gamma_prior
Sampler.addProposalToCycle(Sampler.jp.draw_from_gw_gamma_prior, 25)

try:
    achrom_freqs = get_freqs(pta_crn, signal_id='gw_crn')
    np.savetxt(args.outdir + 'achrom_freqs.txt', achrom_freqs, fmt='%.18e')
except:
    pass

x0 = np.hstack(p.sample() for p in pta_crn.params)
Sampler.sample(x0,
               args.niter,
               SCAMweight=200,
               AMweight=100,
               DEweight=200,
               burn=50000,
               writeHotChains=args.writeHotChains,
               hotChain=args.hot_chain,
               Tskip=100,
               Tmax=args.tempmax)
Ejemplo n.º 2
0
    ptas = {0:pta_std,
            1:pta_low}

    pta_std.set_default_params(noise)
    pta_low.set_default_params(noise)

    with open(args.pta_pkl,'wb') as fout:
        cloudpickle.dump(ptas,fout)

hm = hypermodel.HyperModel(models=ptas)
sampler = hm.setup_sampler(outdir=args.outdir, resume=True,
                           empirical_distr = args.emp_distr)


try:
    gw_std_freqs = get_freqs(pta_std, signal_id='gw')
    gw_low_freqs = get_freqs(pta_low, signal_id='gw')
    np.savetxt(args.outdir + 'low_gw_freqs.txt', gw_low_freqs, fmt='%.18e')
    np.savetxt(args.outdir + 'std_gw_freqs.txt', gw_std_freqs, fmt='%.18e')
except:
    pass

model_params = {}
for ii,mod in enumerate(ptas):
    model_params.update({ii : ptas[ii].param_names})

with open(args.outdir+'/model_params.json' , 'w') as fout:
    json.dump(model_params, fout, sort_keys=True, indent=4,
              separators=(',', ': '))

x0 = hm.initial_sample()
Ejemplo n.º 3
0
# initial jump covariance matrix
cov = np.diag(np.ones(ndim) * 0.01**2)

# set up jump groups by red noise groups

groups = model_utils.get_parameter_groups(pta)

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

achrom_freqs = get_freqs(pta)
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_prior, 15)
sampler.addProposalToCycle(jp.draw_from_red_prior, 15)
sampler.addProposalToCycle(jp.draw_from_gwb_log_uniform_distribution, 15)
if args.bayes_ephem:
    sampler.addProposalToCycle(jp.draw_from_ephem_prior, 15)

N = int(args.niter)

sampler.sample(x0,
Ejemplo n.º 4
0
model_1 = base_model + rn_plaw
model_2a = model_1 + gw

pta_noise = signal_base.PTA([model_1(p) for p in psrs])
pta_noise.set_default_params(noise)

pta_gw = signal_base.PTA([model_2a(p) for p in psrs])
pta_gw.set_default_params(noise)

ptas = {0: pta_noise, 1: pta_gw}

hm = model_utils.HyperModel(models=ptas)
sampler = hm.setup_sampler(outdir=args.outdir, resume=True)

achrom_freqs = get_freqs(ptas[0])
# 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')

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

save_core(args.corepath, args.outdir)
Ejemplo n.º 5
0
cov = np.diag(np.ones(ndim) * 0.01**2)

# set up jump groups by red noise groups

groups = sampler.get_parameter_groups(pta)

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


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

try:
    achrom_freqs = get_freqs(pta, signal_id='gw')
    np.savetxt(args.outdir + 'achrom_rn_freqs.txt', achrom_freqs, fmt='%.18e')
except:
    pass

jp = sampler.JumpProposal(pta)
Sampler.addProposalToCycle(jp.draw_from_prior, 15)
if args.rednoise:
    Sampler.addProposalToCycle(jp.draw_from_red_prior, 15)
Sampler.addProposalToCycle(jp.draw_from_gwb_log_uniform_distribution, 15)
if args.bayes_ephem:
    Sampler.addProposalToCycle(jp.draw_from_ephem_prior, 15)

N = int(args.niter)

Sampler.sample(x0, Niter=N, SCAMweight=30, AMweight=15,
Ejemplo n.º 6
0
    groups.append([pta.param_names.index(p) for p in gp_pars])

# initial jump covariance matrix
cov = np.diag(np.ones(ndim) *
              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,
Ejemplo n.º 7
0
        vary_rn = True
    pta = models.model_singlepsr_noise(psr, red_var=vary_rn,
                                       psd=args.psd, Tspan=args.tspan,
                                       components=args.nfreqs,
                                       factorized_like=args.gfl,
                                       gw_components=args.n_gwbfreqs,
                                       fact_like_logmin=-14.2,
                                       fact_like_logmax=-1.2,
                                       is_wideband=args.wideband)
    emp_dist_path = args.emp_distr.replace('PSR_NAME',psr.name)

Sampler = sampler.setup_sampler(pta=pta,
                                outdir=Outdir,
                                empirical_distr = emp_dist_path,
                                resume=True)
if args.gfl:
    freqs = bys.get_freqs(pta, signal_id='gw')
else:
    freqs = bys.get_freqs(pta, signal_id='red_noise')
    
np.savetxt(Outdir+'achrom_freqs.txt', freqs)

x0 = np.hstack(p.sample() for p in pta.params)

Sampler.sample(x0, Niter=args.niter, burn=100000,
               writeHotChains=args.writeHotChains)

c0 = Core(chaindir=Outdir)
c0.set_rn_freqs(freq_path=Outdir+'/achrom_freqs.txt')
c0.save(args.corepath+f'{psr.name}.core')
Ejemplo n.º 8
0
        dm_var=True,
        dm_type='gp',
        dm_psd='powerlaw',
        dm_annual=False,
        white_vary=False,
        gequad=False,
        dm_chrom=False,
        dmchrom_psd='powerlaw',
        dmchrom_idx=4,
        red_select=None,
        red_breakflat=False,
        red_breakflat_fq=None,
        coefficients=False,
    )
else:
    raise NotImplementedError('Please add this model to the script.')

Sampler = sampler.setup_sampler(pta=pta,
                                outdir=Outdir,
                                empirical_distr=args.emp_distr,
                                resume=True)
try:
    freqs = bys.get_freqs(pta, signal_id='gw')
    np.savetxt(Outdir + 'achrom_freqs.txt', freqs)
except:
    pass

x0 = np.hstack(p.sample() for p in pta.params)

Sampler.sample(x0, Niter=args.niter)