row_i = [row] * 3 line_F = reduc_linedf.iloc[i].line_Flux line_emisF = emission_linedf.iloc[i].line_Flux row_i[0] = line_F / Hbeta_F * norm_factor row_i[1] = line_emisF / Hbeta_F * norm_factor diff = (1.0 - line_F / line_emisF) * 100 row_i[2] = round(diff.nominal_value, 1) #/Hbeta_emisF * norm_factor row = row + row_i dz.addTableRow(row, last_row=False) dz.generate_pdf() # for wave in lambdas_array: # # if wave in linformat_df['lambda_theo'].values: # idx_label = (linformat_df['lambda_theo'] == wave) # ion = linformat_df.loc[idx_label, 'latex_format'].values[0] # label = linformat_df.loc[idx_label, 'line_label'].values[0] # wave = 4861.0 if label == 'H1_4861A' else wave # wave_lam_ref = int(round(wave, 0)) # line_label = r'{} ${}$'.format(wave_lam_ref, ion) # row = [line_label] # table_row = [None] * 7 # # if ion in ['H1', 'He1', 'He2']: #
abundValues = objData[metals_list].values objData[metals_list] = 12.0 + unumpy.log10(abundValues) HeI_HI_entry = dz.format_for_table(catalogue_df.loc[objName, 'HeII_HII_from_O' + ext_data], rounddig=3, rounddig_er=2) Ymass_O_entry = dz.format_for_table(catalogue_df.loc[objName, 'Ymass_O' + ext_data], rounddig=3, rounddig_er=2) Ymass_S_entry = dz.format_for_table(catalogue_df.loc[objName, 'Ymass_S' + ext_data], rounddig=3, rounddig_er=2) print objName, objData[['OI_HI' + ext_data]].values, objData[['OI_HI' + ext_data]].isnull().values.any(), regressions_employed row = [entry_name] + [HeI_HI_entry, Ymass_O_entry, Ymass_S_entry] row += list(objData[['OI_HI' + ext_data, 'NI_HI' + ext_data, 'SI_HI' + ext_data]].values) dz.addTableRow(row, last_row = False if catalogue_df.index[-1] != objName else True, rounddig=3, rounddig_er=1) # dz.generate_pdf() dz.generate_pdf(output_address=pdf_address) # from dazer_methods import Dazer # from uncertainties import unumpy # from collections import OrderedDict # from pylatex import Package, NoEscape # # #Import library object # dz = Dazer() # # #Load observational data # catalogue_df = dz.load_excel_DF('/home/vital/Dropbox/Astrophysics/Data/WHT_observations/WHT_Galaxies_properties.xlsx') # dz.quick_indexing(catalogue_df) #
objectFolder = '{}{}/'.format( root_folder, objName) # '{}{}\\'.format(root_folder, objName) dataFileAddress = '{}{}_objParams.txt'.format(objectFolder, objName) obsData = specS.load_obsData(dataFileAddress, objName) # Adapt the temperature Tlow_key, Thigh_key = catalogue_df.loc[objName].T_low, catalogue_df.loc[ objName].T_high # # Case with a sulfur temperature # if (Tlow_key == 'TeSIII') and (Tlow_key == 'TeOIII_from_TeSIII'): # Case with an oxygen temperature if (Tlow_key == 'TeSIII_from_TeOIII') and (Thigh_key == 'TeOIII'): obsData['T_high'] = obsData.pop('T_low', '-') # Load observational data row_i = [quick_reference] + ['-'] * varsNum keys_list = headers_dic.keys() for j in range(len(keys_list)): item = keys_list[j] row_i[j + 1] = checkDictValue(obsData, item) dz.addTableRow(row_i, last_row=False if sampleObjects[-1] != objName else True, rounddig=3, rounddig_er=1) # dz.generate_pdf() dz.generate_pdf(output_address=tableAddress)
O3_entry = '-' #Fill the table if (catalogue_df.loc[objName].T_low == 'TeSIII') and (catalogue_df.loc[objName].T_high == 'TeOIII'): exponent = '' elif (catalogue_df.loc[objName].T_low != 'TeSIII'): exponent = 'O' else: exponent = 'S' entry_name = '{codename}$^{{{elements}}}$'.format( codename=catalogue_df.loc[objName].quick_index, elements=exponent) print entry_name T_low_entry = r'$T_{e}[SIII]$' if catalogue_df.loc[ objName].T_low == 'TeSIII' else r'$T_{e}[SIII] eq.16$' T_high_entry = r'$T_{e}[OIII]$' if catalogue_df.loc[ objName].T_high == 'TeOIII' else r'$T_{e}[OIII] eq.16$' row = [entry_name] + [O3_entry] + [s3_entry] + list( catalogue_df.loc[ objName, properties_list].values) # + [T_low_entry, T_high_entry] dz.addTableRow( row, last_row=False if catalogue_df.index[-1] != objName else True, rounddig=3) dz.generate_pdf(clean_tex=False) #dz.generate_pdf(output_address=pdf_address) print 'Table generated'
atom = dz.He2_atom atom_label = 'HeIII' wave_label = int(round(reduc_lineslog_df.loc[lines_labels[j]].lambda_theo)) Helium_i_dist = random.normal(reduc_lineslog_df.loc[lines_labels[j]].line_Int.nominal_value, reduc_lineslog_df.loc[lines_labels[j]].line_Int.std_dev, MC_length) abund_dist = atom.getIonAbundance(int_ratio=Helium_i_dist, tem=Te, den=ne, wave=wave_label, Hbeta = Hbeta_dist) abund_log = ufloat(nanmean(abund_dist), nanstd(abund_dist)) abund_label = '{:L}'.format(abund_log) #Plot the data title_line_plot = """{label}: $\\frac{{{at_label}}}{{HII}}={abund}$""".format(label=lines_labels[j], at_label=atom_label, abund=abund_label) dz.data_plot(subWwave, subFlux, label='', linestyle='step', graph_axis=dz.Axis[j]) dz.data_plot(subWwave_emis, subFlux_emis, label='', linestyle='step', graph_axis=dz.Axis[j]) dz.Axis[j].fill_between(wave_reduc[idcs_obj[2]:idcs_obj[3]], flux_reduc[idcs_obj[2]:idcs_obj[3]], interFlux_solar, step='mid', alpha=0.5) if lines_labels[j] == 'He1_5016A': dz.Axis[j].set_ylim(0, reduc_lineslog_df.loc[lines_labels[j]].A * 4) dz.data_plot(subwave_solar, subFlux_solar, label='', linestyle='step', graph_axis=dz.Axis[j]) dz.FigWording(xlabel='', ylabel='', title=title_line_plot, graph_axis=dz.Axis[j]) plt.tight_layout() dz.fig_to_pdf(label='{} Helium lines:'.format(objName.replace('_','-')), add_page=True) dz.reset_fig() else: print '--There is not stellar spectrum' dz.generate_pdf(True) print 'Data treated'
wave_reduc[idcs_obj[2]:idcs_obj[3]], flux_reduc[idcs_obj[2]:idcs_obj[3]], interFlux_solar, step='mid', alpha=0.5) if lines_labels[j] == 'He1_5016A': dz.Axis[j].set_ylim( 0, reduc_lineslog_df.loc[lines_labels[j]].A * 4) dz.data_plot(subwave_solar, subFlux_solar, label='', linestyle='step', graph_axis=dz.Axis[j]) dz.FigWording(xlabel='', ylabel='', title=title_line_plot, graph_axis=dz.Axis[j]) plt.tight_layout() dz.fig_to_pdf(label='{} Helium lines:'.format( objName.replace('_', '-')), add_page=True) dz.reset_fig() else: print '--There is not stellar spectrum' dz.generate_pdf(True) print 'Data treated'