def get_All_results():
		
		# Modeling each pulsar.

		tm = gp_signals.TimingModel()
		wnb = models.white_noise_block(vary=True)
		dmn = models.dm_noise_block(components=30)
		spn = models.red_noise_block(components=30)
		model = tm + wnb + dmn + spn
		ptas = [signal_base.PTA(model(psr)) for psr in psrs]


		# Multiprocessing.

		jobs = []
		RETs={}	
		for i in range(len(psrs)):	
			RETs[i] = multiprocessing.Manager().Value('i',0)
			p = multiprocessing.Process(target=get_pulsar_noise, args=(ptas[i],RETs[i]))
			jobs.append(p)
			p.start()
		for p in jobs:
			p.join()


		# Return the sum of the Ln Maximal Likelihood values.
		
		MLHselect = [RET.value for RET in RETs.values()]
		return MLHselect
예제 #2
0
def test_model_2a_altpol_spectrum(nodmx_psrs, caplog):

    log10_A_tt = parameter.LinearExp(-18, -12)('log10_A_tt')
    log10_A_st = parameter.LinearExp(-18, -12)('log10_A_st')
    log10_A_vl = parameter.LinearExp(-18, -15)('log10_A_vl')
    log10_A_sl = parameter.LinearExp(-18, -16)('log10_A_sl')
    kappa = parameter.Uniform(0, 15)('kappa')
    p_dist = parameter.Normal(1.0, 0.2)
    pl = model_orfs.generalized_gwpol_psd(log10_A_tt=log10_A_tt,
                                          log10_A_st=log10_A_st,
                                          log10_A_vl=log10_A_vl,
                                          log10_A_sl=log10_A_sl,
                                          kappa=kappa,
                                          p_dist=p_dist,
                                          alpha_tt=-2 / 3,
                                          alpha_alt=-1)

    s = models.white_noise_block(vary=False, inc_ecorr=True)
    s += models.red_noise_block(prior='log-uniform')
    s += gp_signals.FourierBasisGP(spectrum=pl, name='gw')
    s += gp_signals.TimingModel()

    m = signal_base.PTA([s(psr) for psr in nodmx_psrs])
    m.set_default_params(noise_dict)
    for param in m.params:
        if 'gw_p_dist' in str(param):
            # get pulsar name and distance
            psr_name = str(param).split('_')[0].strip('"')
            psr_dist = [p._pdist for p in nodmx_psrs if psr_name in p.name][0]

            # edit prior settings
            param._prior = parameter.Normal(mu=psr_dist[0], sigma=psr_dist[1])
            param._mu = psr_dist[0]
            param._sigma = psr_dist[1]

    assert hasattr(m, 'get_lnlikelihood')
예제 #3
0
    # spin noise
    log10_A = parameter.Constant()
    gamma = parameter.Constant()
    pl = utils.powerlaw(log10_A=log10_A, gamma=gamma)
    selection = selections.Selection(selections.no_selection)
    spn = gp_signals.FourierBasisGP(pl,
                                    components=50,
                                    Tspan=None,
                                    coefficients=False,
                                    selection=selection,
                                    modes=None)

    dp = DPDM.dpdm_block(type_='Bayes')
    tm = gp_signals.TimingModel()
    eph = deterministic_signals.PhysicalEphemerisSignal(use_epoch_toas=True)
    wnb = models.white_noise_block(vary=False)

    model = tm + dp + wnb + dmn + spn + eph
    nparams = []  # Get the number of parameters of each pulsar
    signals = []
    for psr in psrs:
        signal = model(psr)
        nparams.append(len(signal.params) -
                       5)  # Subtracting common DPDM params
        signals.append(signal)
    PTA = signal_base.PTA(signals)
    ndim = len(PTA.params) + 5

    # Use the best fit noise parameters!
    PTA.set_default_params(Dict)
예제 #4
0
noise = {}
for p in psrs:
    noise.update(noise_json[p.name])

if args.tspan is None:
    Tspan = model_utils.get_tspan(psrs)
else:
    Tspan = args.tspan

if args.wideband:
    inc_ecorr = False
else:
    inc_ecorr = True

### White Noise ###
wn = models.white_noise_block(vary=False, inc_ecorr=inc_ecorr)
### Red Noise ###
rn_plaw = models.red_noise_block(psd='powerlaw',
                                 prior='log-uniform',
                                 Tspan=Tspan,
                                 components=30,
                                 gamma_val=None)
### GWB ###
gw = models.common_red_noise_block(psd='powerlaw',
                                   prior='log-uniform',
                                   Tspan=Tspan,
                                   gamma_val=13 / 3.,
                                   name='gw')
base_model = wn

if args.bayes_ephem:
예제 #5
0
elif longer:
    c0 = Core(chaindir=Outdir)
    c0.set_rn_freqs(freq_path=Outdir+'/achrom_freqs.txt')
    c0.save(args.corepath+f'{psr.name}.core')
    sys.exit() #Hmmmm what to do here?
else:
    pass

emp_dist_path = args.emp_distr

if args.gwb_bf or args.gwb_ul:
    if args.gwb_bf:
        prior = 'log-uniform'
    elif args.gwb_ul:
        prior = 'uniform'
    m = models.white_noise_block(vary=True, inc_ecorr=True)
    m += gp_signals.TimingModel(use_svd=False)
    m += models.red_noise_block(psd=args.psd, prior=prior,
                                components=args.nfreqs, gamma_val=None)
    m += models.common_red_noise_block(gamma_val=13/3., prior=prior,
                                       psd=args.psd, components=args.nfreqs)
    pta = signal_base.PTA(m(psr))

else:
    if args.gfl:
        vary_rn = False
    else:
        vary_rn = True
    pta = models.model_singlepsr_noise(psr, red_var=vary_rn,
                                       psd=args.psd, Tspan=args.tspan,
                                       components=args.nfreqs,
예제 #6
0
    datadir = '../ppta/fit1data'
    parfiles = sorted(glob.glob(datadir + '/*.par'))
    timfiles = sorted(glob.glob(datadir + '/*.tim'))
    parfiles.remove(datadir + '/J1125-6014.par')
    timfiles.remove(datadir + '/J1125-6014.tim')

    psrs = []
    for p, t in zip(parfiles, timfiles):
        psr = Pulsar(p, t)
        psrs.append(psr)

    # Modeling the signals

    dp = DPDM.dpdm_block(type_='Bayes')
    tm = gp_signals.TimingModel()
    wnb = models.white_noise_block(vary=True)
    dmn = models.dm_noise_block(components=50)
    spn = models.red_noise_block(components=50)
    model = tm + dp + wnb + dmn + spn
    nparams = []  # Get the number of parameters of each pulsar
    signals = []
    for psr in psrs:
        signal = model(psr)
        nparams.append(len(signal.params) -
                       5)  # Subtracting common DPDM params
        signals.append(signal)
    PTA = signal_base.PTA(signals)
    ndim = len(PTA.params)

    # Get Starting Points and constant parameter values.
    save1 = np.load('noisepars.npy')