try: #Locate the objects objName = catalogue_df.iloc[i].name ouput_folder = '{}{}/'.format(catalogue_dict['Obj_Folder'], objName) fits_file = catalogue_df.iloc[i].reduction_fits lineslog_address = '{objfolder}{codeName}{lineslog_extension}'.format( objfolder=ouput_folder, codeName=objName, lineslog_extension=AbundancesFileExtension) fits_name = basename(fits_file) #Load object data lineslog_frame = dz.load_lineslog_frame(lineslog_address) wave, flux, header_0 = dz.get_spectra_data(fits_file) #Declare starlight files Grid_FileName = fits_name.replace('.fits', '.slGrid') Sl_OutputFolder = dz.RootFolder + 'Starlight/Output/' Sl_OutputFile = fits_name.replace('.fits', '.slOutput') cHbeta = catalogue_df.loc[objName, cHbeta_type] flux_dered = dz.derreddening_spectrum(wave, flux, reddening_curve=red_curve, cHbeta=cHbeta.nominal_value, R_v=R_v) #Define the maximum sigma for the fitting from the Hbeta line
pdf_address = '/home/vital/Dropbox/Astrophysics/Thesis/images/{}_absEffect.png'.format( quick_reference) dz.create_pdfDoc(pdf_address, pdf_type='table') dz.pdf_insert_table(table_format='l' + 'ccc') group_dict = OrderedDict() # Make dict with all the objects lines dataframes ouput_folder = '{}{}/'.format(catalogue_dict['Obj_Folder'], objName) linelog_reducAddress = '{objfolder}{codeName}_WHT_linesLog_reduc.txt'.format( objfolder=ouput_folder, codeName=objName) linelog_emisAddress = '{objfolder}{codeName}_WHT_linesLog_emission_2nd.txt'.format( objfolder=ouput_folder, codeName=objName) reduc_linedf = dz.load_lineslog_frame(linelog_reducAddress) emission_linedf = dz.load_lineslog_frame(linelog_emisAddress) Hbeta_F = reduc_linedf.loc['H1_4861A'].line_Flux Hbeta_emisF = emission_linedf.loc['H1_4861A'].line_Flux lambdas_array = emission_linedf['lambda_theo'].values # Short array and remove repeated entries lambdas_array = unique(lambdas_array) # Add the parameters row Headers = [ r'$\lambda(\AA)$', 'Observed flux', 'Emission flux', '\% Difference' ]
LickIndexesHeader = ['Ion', 'lambda_theo', 'group_label','Wave1', 'Wave2', 'Wave3', 'Wave4', 'Wave5', 'Wave6', 'add_wide_component'] columns_format = ['%11.6f', '%11.6f', '%11.6f','%11.6f', '%11.6f', '%11.6f', '%11.6f', '%11.6f', '%11.6f', '%11.6f'] #Loop through the objects for i in range(len(catalogue_df.index)): #Object objName = catalogue_df.iloc[i].name fits_file = catalogue_df.iloc[i].reduction_fits ouput_folder = '{}{}/'.format(catalogue_dict['Obj_Folder'], objName) lineslog_address = '{objfolder}{codeName}_WHT_linesLog_reduc.txt'.format(objfolder = ouput_folder, codeName=objName) print '-- Treating {} @ {}'.format(objName, fits_file) #Load the lines log lineslog_frame = dz.load_lineslog_frame(lineslog_address) #Extract the information corresponding to the lines selection lick_icds_frame = lineslog_frame[LickIndexesHeader] #Convert to string format and save to text file string_frame = lick_icds_frame.to_string() lick_txt = '{}{}_lick_indeces.txt'.format(ouput_folder, objName) with open(lick_txt, 'wb') as f: f.write(string_frame.encode('UTF-8')) print 'Data treated' # #Save the data frame # lick_txt = '{}{}_lick_indeces_text.txt'.format(ouput_folder, objName) # lick_icds_frame.to_csv(lick_txt, sep=' ', float_format='%.6f', columns=None, header=True, index=True)
quick_reference = catalogue_df.loc[objName].quick_index print objName, (quick_reference) # Object folder oldFolder = '{}{}/'.format(catalogue_dict['Obj_Folder'], objName) objectNewFolder = root_folder + objName + '/' make_folder(objectNewFolder) # Get fits data fits_file = catalogue_df.loc[objName].reduction_fits wave, flux, etraData = dz.get_spectra_data(fits_file) # Get lines log data lineslog_address = '{}{}{}'.format(oldFolder,objName,lineslog_ext) linesLogDf = dz.load_lineslog_frame(lineslog_address) linesLogDf.rename(columns=lineslogDfNewHeaders, inplace=True) linesLogDf.rename(index=lineslogDfNewIndeces, inplace=True) # Generate a grid plot and add continuum contribution in recombination lines lineFluxes = linesLogDf['line_Flux'].values linesLogDf['obs_flux'], linesLogDf['obs_fluxErr'] = nominal_values(lineFluxes), std_devs(lineFluxes) plotFolder = '{}/input_data/'.format(objectNewFolder) make_folder(plotFolder) plotAddress = '{}{}_lineGrid'.format(plotFolder, objName) bp.linesGrid(linesLogDf, wave, flux, plotAddress) linesLogDf['line_Flux'] = nominal_values(lineFluxes) # Add continuum masks masksLogAddress = '{}{}{}'.format(oldFolder,objName,masklog_ext)
#Locate the files ouput_folder = '{}{}/'.format(catalogue_dict['Obj_Folder'], objName) fits_reduc = catalogue_df.iloc[i].reduction_fits fits_emission = catalogue_df.iloc[i].stellar_fits fits_stellar = ouput_folder + objName + '_StellarContinuum.fits' lineslog_address = '{objfolder}{codeName}{lineslog_extension}'.format(objfolder = ouput_folder, codeName=objName, lineslog_extension=AbundancesFileExtension) if isfile(fits_stellar): # if i < 3: #Extract observational data wave_reduc, flux_reduc, header_0_reduc = dz.get_spectra_data(fits_reduc) wave_emis, flux_emis, header_emis = dz.get_spectra_data(fits_emission) wave_stellar, flux_stellar, header_stellar = dz.get_spectra_data(fits_stellar) reduc_lineslog_df = dz.load_lineslog_frame(lineslog_address) #Perform the reddening correction cHbeta = catalogue_df.iloc[i][cHbeta_type] dz.deredden_lines(cHbeta, reduc_lineslog_df) #Measure Hbeta flux Hbeta_wavelengths = reduc_lineslog_df.loc['H1_4861A', ['Wave1', 'Wave2', 'Wave3', 'Wave4', 'Wave5', 'Wave6']].values Hbeta_dist = random.normal(reduc_lineslog_df.loc['H1_4861A'].line_Int.nominal_value, reduc_lineslog_df.loc['H1_4861A'].line_Int.std_dev, MC_length) #Insert new section in pdf with dz.pdfDoc.create(Section('HII Galaxy: {}'.format(objName))): dz.add_page() #------Plot Oxygen lines
fits_stellar = ouput_folder + objName + '_StellarContinuum.fits' lineslog_address = '{objfolder}{codeName}{lineslog_extension}'.format( objfolder=ouput_folder, codeName=objName, lineslog_extension=AbundancesFileExtension) if isfile(fits_stellar): # if i < 3: #Extract observational data wave_reduc, flux_reduc, header_0_reduc = dz.get_spectra_data( fits_reduc) wave_emis, flux_emis, header_emis = dz.get_spectra_data(fits_emission) wave_stellar, flux_stellar, header_stellar = dz.get_spectra_data( fits_stellar) reduc_lineslog_df = dz.load_lineslog_frame(lineslog_address) #Perform the reddening correction cHbeta = catalogue_df.iloc[i][cHbeta_type] dz.deredden_lines(cHbeta, reduc_lineslog_df) #Measure Hbeta flux Hbeta_wavelengths = reduc_lineslog_df.loc[ 'H1_4861A', ['Wave1', 'Wave2', 'Wave3', 'Wave4', 'Wave5', 'Wave6']].values Hbeta_dist = random.normal( reduc_lineslog_df.loc['H1_4861A'].line_Int.nominal_value, reduc_lineslog_df.loc['H1_4861A'].line_Int.std_dev, MC_length) #Insert new section in pdf with dz.pdfDoc.create(Section('HII Galaxy: {}'.format(objName))):