def Fit_Simulation_Phase_Diagram(self, sim_id): print(f' Fitting Simulation: {sim_id}') sim_dir = self.Get_Simulation_Directory(sim_id) input_dir = sim_dir + 'analysis_files/' fit_dir = input_dir + 'fit_mcmc/' create_directory(fit_dir) files = [ f for f in listdir(input_dir) if (isfile(join(input_dir, f)) and (f.find('_analysis') > 0)) ] indices = ['{0:03}'.format(int(file.split('_')[0])) for file in files] indices.sort() n_files = len(files) print(f' N_Analysis_Files: {n_files}') for n_file in indices: n_file = int(n_file) fit_file = fit_dir + f'fit_{n_file}.pkl' file_path = Path(fit_file) if file_path.is_file(): print(f' Skiping File: {n_file} ') continue data = load_analysis_data(n_file, input_dir) values_to_fit = get_density_temperature_values_to_fit( data['phase_diagram'], delta_min=-1, delta_max=1, n_samples_line=50, fraction_enclosed=0.70) fit_values = fit_thermal_parameters_mcmc(n_file, values_to_fit, fit_dir)
from load_data import load_analysis_data from phase_diagram_functions import fit_thermal_parameters_mcmc, get_density_temperature_values_to_fit # data_dir = '/home/bruno/Desktop/data/' # data_dir = '/home/brunoq/Desktop/ssd_0/data/' data_dir = '/raid/bruno/data/' sim_name = '1024_50Mpc' sim_name = '2048_100Mpc' input_dir = data_dir + f'cosmo_sims/rescaled_P19/{sim_name}/analysis_files/' output_dir = data_dir + f'cosmo_sims/rescaled_P19/figures/phase_diagram_{sim_name}/fit/' create_directory(output_dir) n_file = 55 for n_file in range(3, 56): data = load_analysis_data(n_file, input_dir) z = data['cosmology']['current_z'] data_pd = data['phase_diagram'] fit_mcmc = Load_Pickle_Directory(input_dir + f'fit_mcmc/fit_{n_file}.pkl') values_to_fit = get_density_temperature_values_to_fit( data['phase_diagram'], delta_min=-1.5, delta_max=3, n_samples_line=50, fraction_enclosed=0.67) dens = values_to_fit['density'] temp = values_to_fit['temperature'] temp_sigma_p = values_to_fit['temperature_sigma_p'] temp_sigma_m = values_to_fit['temperature_sigma_l']
rank = comm.Get_rank() n_procs = comm.Get_size() else: rank = 0 n_procs = 1 data_dir = '/raid/bruno/data/' input_dir = data_dir + 'cosmo_sims/sim_grid/512_p19/analysis_files/' output_dir = input_dir + 'figures/' if rank == 0: create_directory(output_dir) if use_mpi: comm.Barrier() n_snapshot = 3 data = load_analysis_data(n_snapshot, input_dir, phase_diagram=False, lya_statistics=True, load_skewer=True) cosmology = data['cosmology'] box = data['box'] skewer = data['lya_statistics']['skewer'] # skewer['HI_density'] *= 1e-5 HI_density = skewer['HI_density'] tau_cholla = skewer['optical_depth'] vel_Hubble_cholla = skewer['vel_Hubble'] temperature = skewer['temperature'] velocity = skewer['velocity'] F_cholla = skewer['transmitted_flux'] tau_data = compute_optical_depth(cosmology,
def Load_Simulation_Power_Spectum_Data(self, sim_id, indices, load_normalized_ps=False, ps_norm=None): sim_dir = self.Get_Simulation_Directory(sim_id) input_dir = sim_dir + 'analysis_files/' indices.sort() sim_data = {} z_vals = [] data_ps_mean = [] data_kvals = [] data_kmin, data_kmax = [], [] for n_file in indices: n_file = int(n_file) data = load_analysis_data(n_file, input_dir, phase_diagram=False, lya_statistics=True, load_skewer=False, load_fit=False) z = data['cosmology']['current_z'] k_vals = data['lya_statistics']['power_spectrum']['k_vals'] ps_mean = data['lya_statistics']['power_spectrum']['ps_mean'] z_vals.append(z) data_kvals.append(k_vals) data_ps_mean.append(ps_mean) data_kmin.append(k_vals.min()) data_kmax.append(k_vals.max()) z_vals = np.array(z_vals) data_kmin, data_kmax = np.array(data_kmin), np.array(data_kmax) data_ps = { 'z': z_vals, 'k_min': data_kmin, 'k_max': data_kmax, 'k_vals': data_kvals, 'ps_mean': data_ps_mean } self.Grid[sim_id]['analysis']['power_spectrum'] = data_ps if load_normalized_ps: root_dir = self.root_dir sim_name = self.Grid[sim_id]['key'] ps_dir = root_dir + f'flux_power_spectrum_files/{sim_name}/' normalizations = ['Simulation', 'Becker'] types = ['F_mean', 'tau_eff'] normalization = ps_norm['normalization'] type = ps_norm['type'] # type = types[0] # normalization = 'Simulation' # for normalization in normalizations: ps_key = f'power_spectrum_norm_{normalization}_{type}' z_vals, data_ps_mean, data_kvals, data_kmax, data_kmin = [], [], [], [], [] for n_file in indices: file_name = ps_dir + f'flux_ps_{n_file}.h5' file = h5.File(file_name, 'r') current_z = file.attrs['current_z'] # print( file.keys() ) k_vals = file['k_vals'][...] ps_data = file[normalization] tau_eff = ps_data.attrs['tau_eff'] ps_mean = ps_data[type][...] z_vals.append(current_z) data_kvals.append(k_vals) data_ps_mean.append(ps_mean) data_kmax.append(k_vals.max()) data_kmin.append(k_vals.min()) z_vals = np.array(z_vals) data_kmin, data_kmax = np.array(data_kmin), np.array(data_kmax) data_ps = { 'z': z_vals, 'k_min': data_kmin, 'k_max': data_kmax, 'k_vals': data_kvals, 'ps_mean': data_ps_mean, 'normalization_key': ps_key } self.Grid[sim_id]['analysis'][ 'power_spectrum_normalized'] = data_ps
def Load_Simulation_Analysis_Data(self, sim_id, load_fit=True, mcmc_fit_dir=None): str = f' Loading Simulation Analysis: {sim_id}' print_line_flush(str) sim_dir = self.Get_Simulation_Directory(sim_id) input_dir = sim_dir + 'analysis_files/' files = [ f for f in listdir(input_dir) if (isfile(join(input_dir, f)) and (f.find('_analysis') > 0)) ] indices = ['{0:03}'.format(int(file.split('_')[0])) for file in files] indices.sort() n_files = len(files) sim_data = {} sim_data['z'] = [] sim_data['T0'] = [] sim_data['gamma'] = [] sim_data['F_mean'] = [] sim_data['tau'] = [] sim_data['tau_HeII'] = [] sim_data['ps_mean'] = [] sim_data['ps_kvals'] = [] z_power_spectrum = [] data_ps_mean = [] data_kvals = [] data_kmin, data_kmax = [], [] ps_available_indices = [] for n_file in indices: n_file = int(n_file) data = load_analysis_data(n_file, input_dir, phase_diagram=False, lya_statistics=True, load_skewer=False, load_fit=load_fit, mcmc_fit_dir=mcmc_fit_dir) z = data['cosmology']['current_z'] if load_fit: T0 = data['phase_diagram']['fit']['T0'] gamma = data['phase_diagram']['fit']['gamma'] F_mean = data['lya_statistics']['Flux_mean'] tau = data['lya_statistics']['tau'] tau_HeII = data['lya_statistics']['tau_HeII'] k_vals = data['lya_statistics']['power_spectrum']['k_vals'] ps_mean = data['lya_statistics']['power_spectrum']['ps_mean'] if ps_mean is not None and z < 5.5: ps_available_indices.append(n_file) # z_power_spectrum.append( z ) # data_ps_mean.append( ps_mean ) # data_kvals.append( k_vals ) # data_kmin.append( k_vals.min() ) # data_kmax.append( k_vals.max() ) sim_data['ps_kvals'].append(k_vals) sim_data['ps_mean'].append(ps_mean) sim_data['z'].append(z) if load_fit: sim_data['T0'].append(T0) sim_data['gamma'].append(gamma) sim_data['F_mean'].append(F_mean) sim_data['tau'].append(tau) sim_data['tau_HeII'].append(tau_HeII) sim_data['z'] = np.array(sim_data['z']) if load_fit: sim_data['T0'] = np.array(sim_data['T0']) sim_data['gamma'] = np.array(sim_data['gamma']) sim_data['F_mean'] = np.array(sim_data['F_mean']) sim_data['tau'] = np.array(sim_data['tau']) sim_data['tau_HeII'] = np.array(sim_data['tau_HeII']) sim_data['ps_available_indices'] = ps_available_indices # z_power_spectrum = np.array( z_power_spectrum ) # data_kmin, data_kmax = np.array( data_kmin ), np.array( data_kmax ) # data_ps = { 'z':z_power_spectrum, 'k_min':data_kmin, 'k_max':data_kmax, 'k_vals':data_kvals, 'ps_mean':data_ps_mean, 'available_indices':ps_available_indices } # sim_data['power_spectrum'] = data_ps self.Grid[sim_id]['analysis'] = sim_data