Пример #1
0
    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
Пример #2
0
        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 
Пример #6
0
    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))):