def parallel_datasets(number_of_simulations=n_sim / n_cores): print 'Number of simulations per core:' + str(number_of_simulations) np.random.seed() # changes the seed Sn_datasets = [] ra = np.asarray(tdata['RA']) dec = np.asarray(tdata['DEC']) pa = np.asarray(tdata['position_angle']) length = len(tdata) max_ra = np.max(ra) min_ra = np.min(ra) max_dec = np.max(dec) min_dec = np.min(dec) rdata = Table() for i in range(number_of_simulations): np.random.shuffle(pa) rdata['RA'] = ra rdata['DEC'] = dec rdata['position_angle'] = pa Sn = angular_dispersion_vectorized_n(rdata, n=n) # up to n nearest neighbours Sn_datasets.append(Sn) return Sn_datasets
def parallel_datasets(number_of_simulations=n_sim / n_cores): print 'Number of simulations per core:' + str(number_of_simulations) np.random.seed() # changes the seed Sn_datasets = [] ra = np.asarray(tdata['RA']) dec = np.asarray(tdata['DEC']) pa = np.asarray(tdata['final_PA']) length = len(tdata) if redshift: z_best = np.asarray(tdata['z_best']) max_ra = np.max(ra) min_ra = np.min(ra) max_dec = np.max(dec) min_dec = np.min(dec) rdata = Table() for i in range(number_of_simulations): np.random.shuffle(pa) rdata['RA'] = ra rdata['DEC'] = dec if redshift: rdata['z_best'] = z_best rdata['final_PA'] = pa if parallel_transport: Sn = angular_dispersion_vectorized_n_parallel_transport( rdata, n=n, redshift=redshift) # up to n nearest neighbours else: Sn = angular_dispersion_vectorized_n( rdata, n=n, redshift=redshift) # up to n nearest neighbours Sn_datasets.append(Sn) return Sn_datasets
def produce_Sn_plots(): Sn_data = angular_dispersion_vectorized_n(tdata, n) prop_cycle = plt.rcParamsDefault['axes.prop_cycle'] colors = prop_cycle.by_key()['color'] if n == 60: plt.hist(Sn_mc['S_%i' % n], bins=25, histtype=u'step', color=colors[0], label=r'$S_{%i}\vert_{MC}$' % n) elif n == 140: plt.hist(Sn_mc['S_%i' % n], bins=25, histtype=u'step', color=colors[1], label=r'$S_{%i}\vert_{MC}$' % n) # print (Sn_data[n-1]) # plt.axvline(x=Sn_data[n-1],ymin=0,ymax=1,ls='dashed', label='Data no PT') Sn_data = angular_dispersion_vectorized_n_parallel_transport(tdata, n) print(Sn_data[n - 1]) if n == 60: plt.axvline(x=Sn_data[n - 1], ymin=0, ymax=1, ls='dashed', label=r'$S_{60}$', color=colors[0]) elif n == 140: plt.axvline(x=Sn_data[n - 1], ymin=0, ymax=1, ls='dashed', label=r'$S_{140}$', color=colors[1]) ax = plt.gca() ax.tick_params(labelsize=12) ax.set_xlabel(r'$S_n$', fontsize=14) ax.set_ylabel(r'Counts', fontsize=14) ax.legend(fontsize=14) title = 'Distribution of S_%i' % n title = ' ' plt.title(title, fontsize=16) # if n == 140: plt.xlim(0.040,0.12151429413439714) Sn_mc_n = np.asarray(Sn_mc['S_' + str(n)]) Sn_data_n = Sn_data[n - 1] av_Sn_mc_n = np.mean(Sn_mc_n) sigma = np.std(Sn_mc_n) print sigma print('S_%i = %.3f' % (n, Sn_data_n)) SL = 1 - norm.cdf((Sn_data_n - av_Sn_mc_n) / (sigma)) print('log10 SL = %.3f for n= %i, calculated with PT' % (np.log10(SL), n))
def statistics(filename, tdata, redshift=False): if parallel_transport: if n < 998: Sn_mc = Table( fits.open('./data/2D/Sn_monte_carlo_PT' + filename + '.fits')[1].data) else: Sn_mc = ascii.read('./data/2D/Sn_monte_carlo_PT' + filename + '.csv') else: if n < 998: Sn_mc = Table( fits.open('./data/2D/Sn_monte_carlo_' + filename + '.fits')[1].data) else: Sn_mc = ascii.read('./data/2D/Sn_monte_carlo_' + filename + '.csv') # calculate angular radius for number of nn, angular_radius = angular_radius_vs_n(tdata, filename, n) if parallel_transport: Sn_data = angular_dispersion_vectorized_n_parallel_transport( tdata, n, redshift) else: Sn_data = angular_dispersion_vectorized_n(tdata, n, redshift) Sn_vs_n(tdata, Sn_mc, Sn_data, filename, angular_radius, n)
def produce_Sn_plots(): Sn_data = angular_dispersion_vectorized_n(tdata, n) plt.hist(Sn_mc['S_%i' % n], bins=25, histtype=u'step', color='black', label=r'$S_n\vert_{MC}$') # print (Sn_data[n-1]) # plt.axvline(x=Sn_data[n-1],ymin=0,ymax=1,ls='dashed', label='Data no PT') Sn_data = angular_dispersion_vectorized_n_parallel_transport(tdata, n) print(Sn_data[n - 1]) plt.axvline(x=Sn_data[n - 1], ymin=0, ymax=1, ls='dashed', color='k', label='Data') ax = plt.gca() ax.tick_params(labelsize=12) ax.set_xlabel(r'$S_{%i}$' % n, fontsize=14) ax.set_ylabel(r'Counts', fontsize=14) ax.legend(fontsize=14) title = 'Distribution of S_%i' % n title = ' ' plt.title(title, fontsize=16) if n == 140: plt.xlim(0.040, 0.12151429413439714) plt.tight_layout() plt.show() Sn_mc_n = np.asarray(Sn_mc['S_' + str(n)]) Sn_data_n = Sn_data[n - 1] av_Sn_mc_n = np.mean(Sn_mc_n) sigma = np.std(Sn_mc_n) print sigma print('S_%i = %.3f' % (n, Sn_data_n)) SL = 1 - norm.cdf((Sn_data_n - av_Sn_mc_n) / (sigma)) print('log10 SL = %.3f for n= %i, calculated with PT' % (np.log10(SL), n))
def statistics(filename, tdata, load=True, redshift=False): Sn_mc = Table( fits.open('./data/Sn_monte_carlo_' + filename + '.fits')[1].data) # calculate angular radius for number of nn (does not include redshift obviously) angular_radius = angular_radius_vs_n(tdata, filename, n) if redshift: # same number of sources, so only have to plot this once plt.plot((-10, -10), (-10, -10), c='white', label='Num_sources %i' % len(tdata)) Sn_data = angular_dispersion_vectorized_n(tdata, n, redshift) line = Sn_vs_n(tdata, Sn_mc, Sn_data, filename, angular_radius, n, load=load, redshift=redshift) plot_additional_info(tdata, filename, redshift) return line
plt.savefig('./angular_radius_vs_n_' + filename + '.pdf', overwrite=True) plt.close() return median n = 180 for i in range(5): # Open the size data filename = 'size_bins2_' + str(i) tdata = Table(fits.open('./' + filename + '.fits')[1].data) tdata = deal_with_overlap(tdata) Sn_mc = Table(fits.open('./Sn_monte_carlo_' + filename + '.fits')[1].data) # Calculate the Sn and the plots angular_radius = angular_radius_vs_n(tdata, filename, n) Sn_data = angular_dispersion_vectorized_n(tdata, n) Sn_vs_n(tdata, Sn_mc, Sn_data, filename, angular_radius, n) break # Open the flux data filename = 'flux_bins2_' + str(i) tdata = Table(fits.open('./' + filename + '.fits')[1].data) tdata = deal_with_overlap(tdata) Sn_mc = Table(fits.open('./Sn_monte_carlo_' + filename + '.fits')[1].data) # Caluclate the Sn and the plots Sn_data = angular_dispersion_vectorized_n(tdata, n) Sn_vs_n(tdata, Sn_mc, Sn_data, filename, n) angular_radius_vs_n(tdata, filename, n)