def load_files(config): # config['fit_bpz_outfile'] = 'bpz_fit_magerr_%s_%6.4f_lib_%s_z%.2f_%.2f_nwalk_%i_nsamp_%i_nstep_%i.hdf5' % ( # 'single' if config['lg_frac_young_min'] == 0 else 'double', # # config['fit_bpz_outfile'] = 'specmag_bpz_fit_magerr_%3.2f_lib_%s_z%.2f_%.2f_nwalk_%i_nsamp_%i_nstep_%i.hdf5' % ( # config['magerr'], os.path.splitext(os.path.basename(config['bpz_library']))[0], config['z_ini'], # config['z_fin'], # config['n_walkers'], config['n_samples'], config['n_steps']) # if config["chi2_spectrum"]: # config['fit_bpz_outfile'] = "specmag_" + config['fit_bpz_outfile'] prefix, suffix = os.path.splitext(config['fit_bpz_outfile']) config['fit_bpz_post'] = prefix + '_post.hdf5' file_fit = h5py.File('%s/%s' % (save_dir, config['fit_bpz_outfile']), 'r') template_magnitudes = file_fit.get('/template_magnitudes') _, filter_lambdas = load_filters(config) f_processed = h5py.File('%s/%s' % (save_dir, config['fit_bpz_post']), 'r') likelihood = f_processed.get('/likelihood') parameters = f_processed.get('/parameters') m2l_spec = f_processed.get('/m2l_spec') model_magnitudes = file_fit.get('/model_magnitudes') # Plot filters used for colors on template_colorspace filters_plot = [['F_458', 'F_768'], ['F_365', 'F_644']] fnumbers = np.sort(config['filters'].keys()) plot_fid = [[int(np.argwhere(fnumbers == j)) for j in i] for i in filters_plot] # f_aux_templates = np.loadtxt('../templates/eB11.list', dtype='S20') true_values = None if 'bpz_library_true_values' in config: aux = np.loadtxt(config['bpz_library_true_values'], skiprows=1, usecols=config['bpz_library_true_values_cols']) true_values = np.zeros(len(aux), dtype=np.dtype([('age', float), ('metallicity', float), ('AV', float)])) true_values['age'] = np.log10(aux[:, 0]) true_values['metallicity'] = np.log10(aux[:, 1]) true_values['AV'] = aux[:, 2] n_z, n_templates, n_fits = likelihood.shape # templates = np.array(range(0, n_templates)) templates = np.array(range(0, n_templates, config['n_interpolations'] + 1)) n_templates = len(templates) return template_magnitudes, filter_lambdas, likelihood, parameters, model_magnitudes, plot_fid, true_values, n_templates, templates
for i_met in range(len(bt.metBase)): for i_age in range(len(bt.ageBase)): aux = np.interp(filter_m2l['lambda'], bt.l_ssp, bt.f_ssp[i_met, i_age]) m2l_ssp[i_met, i_age] = bt.Mstars[i_met, i_age] * LsunFilter / np.trapz(aux * filter_m2l['transm'], filter_m2l['lambda']) l2m_norm_ssp[i_met, i_age] = bt.f_ssp[i_met, i_age, i_norm] # Open BPZ magnitudes templates = np.loadtxt(config['bpz_library'], np.str) aux = templates[:, 0] if len(templates.shape) > 1 else templates templates_data = [ np.loadtxt('%s/%s' % (config['bpz_library_dir'], t), dtype=np.dtype([('lambda', np.float), ('flux', np.float)])) for t in aux] filters, _ = load_filters(config) templates_mags = list() m2l = list() at_mass = list() at_flux = list() m2l_filter = list() m2l_csp_spec = list() # FIXME: bt.ageBase[0] = 1e5 q = Cardelli_RedLaw(bt.l_ssp) for i_template in range(len(templates_data)): templates_mags.append(
import numpy as np import h5py from model import Model from config import config from common import load_filters file_fit = h5py.File( 'bpz_fit_magerr_0.0050_lib_list_random_single_z0.00_0.00_nwalk_70_nsamp_1000_nstep_3000.hdf5' ) filters, filter_lambdas = load_filters(config) isinf = np.isinf(file_fit['full_lnprob']) bad_chains = list() probs = list() i = 1 # [0, chain[1]] for chain in np.argwhere(isinf): #[:10]: model = Model(file_fit['template_magnitudes'][0, chain[1]], filters, config['z_ini'], config['base_file'], config['base_path'], config['taylor_file'], config['magerr']) bad_chains.append(file_fit['full_chain'][chain[0], chain[1], chain[2], chain[3], :]) probs.append(model.lnprob(bad_chains[-1])) print 'i ', i i += 1