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
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')
# 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)
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:
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,
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')