Пример #1
0
    entry_name = r'{text}{expo}'.format(text=catalogue_df.loc[objName].quick_index, expo=name_superscript)

    objData         = catalogue_df.loc[objName]
    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
Пример #2
0
        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'
        ]
        dz.addTableRow(Headers, last_row=True)

        # Loop through the observed lines an ad them to the table
        for i in range(len(reduc_linedf.index)):

            lineLabel = reduc_linedf.iloc[i].name
            wave = reduc_linedf.iloc[i].lambda_theo
            recombLine = True if (
                ('H1' in lineLabel) or ('He1' in lineLabel) or
                ('He2' in lineLabel)) and wave < 6900 else False
            print 'wave', wave, recombLine

            if recombLine:

                if lineLabel != 'H1_6563A_w':
                    #idx_label = (linformat_df['lambda_theo'] == wave)
Пример #3
0
dz.quick_indexing(catalogue_df)

# Sample objects
excludeObjects = [
    'SHOC579', 'SHOC575_n2', '11', 'SHOC588', 'SDSS3', 'SDSS1', 'SHOC36'
]  # SHOC579, SHOC575, SHOC220, SHOC588, SHOC592, SHOC036
sampleObjects = catalogue_df.loc[
    dz.idx_include & ~catalogue_df.index.isin(excludeObjects)].index.values

# Generate pdf
tableAddress = article_folder + 'modelParameters'
# print('Creating table in {}'.format(tableAddress))
# dz.create_pdfDoc(tableAddress, pdf_type='table')
# dz.pdfDoc.packages.append(Package('nicefrac'))
dz.pdf_insert_table(headers_format, addfinalLine=False)
dz.addTableRow(['HII Galaxy', '$(cm^{-3})$', '$(K)$', '$(K)$', r'$c(H\beta)$'],
               last_row=True)

# Loop through the objects
for i in range(sampleObjects.size):

    # Object references
    objName = sampleObjects[i]
    local_reference = objName.replace('_', '-')
    quick_reference = catalogue_df.loc[objName].quick_index
    print '- Treating object {}: {} {}'.format(i, objName, quick_reference)

    # Declare configuration file
    objectFolder = '{}{}/'.format(
        root_folder, objName)  # '{}{}\\'.format(root_folder, objName)
    dataFileAddress = '{}{}_objParams.txt'.format(objectFolder, objName)
    obsData = specS.load_obsData(dataFileAddress, objName)
Пример #4
0
headers_dic['HeIII_HII_from_O'] = r'$\big(\frac{He^{+2}}{H^{+}}\big)_{O}$'
headers_dic['HeI_HI_from_O']    = r'$\big(\frac{He}{H}\big)_{O}$'
headers_dic['HeI_HI_from_S']    = r'$\big(\frac{He}{H}\big)_{S}$'
headers_dic['Ymass_O']          = r'$Y_{O}$'
headers_dic['Ymass_S']          = r'$Y_{S}$'

properties_list = map(( lambda x: x + ext_data), headers_dic.keys())
headers_format  = ['HII Galaxy', 'SDSS reference'] + headers_dic.values()

print 'Headers for table', headers_format
print 'Properties from df', properties_list
 
#Generate pdf
dz.create_pdfDoc(pdf_address, pdf_type='table')
 
#Set the pdf format
dz.pdf_insert_table(headers_format)


for objName in catalogue_df.index:
    abundValues = catalogue_df.loc[objName, properties_list].values
    row         = [objName.replace('_','-'), catalogue_df.loc[objName, 'SDSS_reference']] + list(abundValues)
    dz.addTableRow(row, last_row = False if catalogue_df.index[-1] != objName else True)
 
dz.generate_pdf()





Пример #5
0
    column1 = '{} ({})'.format(author1.replace('&','\&'), year1)#.replace("'",'\textquotesingle')
    column3 = '{} ({})'.format(author2.replace('&','\&'), year2)#.replace("'",'\textquotesingle')

    if upper_limit1 != 'yes':
        column2 = '${}\pm{}$'.format(value1,error1)
    else:
        column2 = '$\leq{}$'.format(value1)

    if upper_limit2 != 'yes':
        column4 = '${}\pm{}$'.format(value2,error2)
    else:
        column4 = '$\leq{}$'.format(value2)

    print column1, column2

    dz.addTableRow([column1, column2,column3,column4], last_row = False if i != 26 else True)

#dz.generate_pdf(clean_tex=False)
dz.generate_pdf(output_address=pdf_address)

#Define data to load
# pdf_address = '/home/vital/Dropbox/Astrophysics/Thesis/tables/Yp_references'
# headers = ['Reference', 'Measured value', ]
#
# print df.index.values
#
# #Generate pdf
# #dz.create_pdfDoc(pdf_address, pdf_type='table')
# dz.pdf_insert_table(headers)
#
# for reference in df.index:
Пример #6
0
# Loop through the objects
for i in range(sampleObjects.size):

    # Object references
    objName = sampleObjects[i]
    local_reference = objName.replace('_', '-')
    quick_reference = catalogue_df.loc[objName].quick_index
    print '- Treating object {}: {} {}'.format(i, objName, quick_reference)

    # Declare configuration file
    objectFolder = '{}{}/'.format(
        root_folder, objName)  # '{}{}\\'.format(root_folder, objName)
    dataFileAddress = '{}{}_objParams.txt'.format(objectFolder, objName)
    obsData = specS.load_obsData(dataFileAddress, objName)

    # 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)
#dz.create_pdfDoc(pdf_address, pdf_type='table')
dz.pdf_insert_table(headers, table_format='c')

for reference in df.index:

    low_limit, parameter, upper_limit, unit = df.loc[reference,
                                                     df.columns].values

    if not pd.isnull(unit):
        unit = [unit.split(',')[0], unit.split(',')[1]
                ] if ',' in unit else [unit, unit]
    else:
        unit = ['', '']

    if not pd.isnull(upper_limit):
        entry = '${low}{unit0}$ < ${variable}$ < ${up}{unit1}$'.format(
            variable=parameter,
            low=low_limit,
            up=upper_limit,
            unit0=unit[0],
            unit1=unit[1])
    else:
        entry = '${variable}$ > ${low}{unit}$'.format(variable=parameter,
                                                      low=low_limit,
                                                      unit=unit[0])

    dz.addTableRow([entry],
                   last_row=False if df.index[-1] != reference else True)

#dz.generate_pdf(clean_tex=False)
dz.generate_pdf(output_address=pdf_address)
# # dz.pdfDoc.packages.append(Package('nicefrac'))
dz.pdf_insert_table(headers_dic.values())

default_lines = [
    'H1_4341A', 'O3_4363A', 'He1_4471A', 'He2_4686A', 'Ar4_4740A', 'O3_4959A',
    'O3_5007A', 'He1_5876A', 'S3_6312A', 'N2_6548A', 'H1_6563A', 'N2_6584A',
    'He1_6678A', 'S2_6716A', 'S2_6731A', 'Ar3_7136A', 'O2_7319A_b', 'S3_9069A',
    'S3_9531A'
]

# Loop through the objects
for i in range(len(default_lines)):

    # Object references
    lineLabel = default_lines[i]
    lineCoeffs = specS.config[lineLabel + '_coeffs']

    row = ['-'] * 6
    row[0] = specS.linesDb.loc[lineLabel, 'latex_code']

    for j in range(1, 6):
        if j - 1 < len(lineCoeffs):
            row[j] = lineCoeffs[j - 1]

    dz.addTableRow(row,
                   last_row=False if default_lines[-1] != lineLabel else True,
                   rounddig=3,
                   rounddig_er=1)

# dz.generate_pdf()
dz.generate_pdf(output_address=tableAddress)
# Save the results
results_dict['ONS'] = np.array([entry_key, n_Median_cf, n_std_df, n_objects])

# Make the table
pdf_address = tables_folder + 'yp_determinations'
# dz.create_pdfDoc(pdf_address, pdf_type='table')

headers = ['Element regression', 'Value', 'Number of objects']
dz.pdf_insert_table(headers)

last_key = results_dict.keys()[-1]
for key in results_dict:
    magnitude_entry = r'${}\pm{}$'.format(round_sig(results_dict[key][1], 3, scien_notation=False), round_sig(results_dict[key][2], 1, scien_notation=False))
    row = [results_dict[key][0], magnitude_entry, str(int(results_dict[key][3]))]
    dz.addTableRow(row, last_row = False if last_key != last_key else True)
dz.table.add_hline()

for key in inter_regr_dict:
    magnitude_entry = r'${}\pm{}$'.format(inter_regr_dict[key][0], inter_regr_dict[key][1])
    row = [key, magnitude_entry, inter_regr_dict[key][2]]
    dz.addTableRow(row, last_row = False if last_key != last_key else True)
dz.table.add_hline()

for key in exter_regr_dict:
    magnitude_entry = r'${}\pm{}$'.format(exter_regr_dict[key][0], exter_regr_dict[key][1])
    row = [key, magnitude_entry, exter_regr_dict[key][2]]
    dz.addTableRow(row, last_row = False if last_key != last_key else True)

dz.generate_pdf(output_address=pdf_address)
# dz.generate_pdf(clean_tex=True)
    group_dict[str(objName) + '_df'] = reduc_linedf
    group_dict[str(objName) + '_dfemis'] = emission_linedf

    group_dict[str(objName) +
               '_Hbeta_F'] = emission_linedf.loc['H1_4861A'].line_Flux
    group_dict[str(objName) +
               '_Hbeta_I'] = emission_linedf.loc['H1_4861A'].line_Int

    lambdas_array = emission_linedf['lambda_theo'].values

    # Short array and remove repeated entries
    lambdas_array = unique(lambdas_array)

    # Insert the row with the names
    row_objs = ['', '', quick_reference, '']
    dz.addTableRow(row_objs, last_row=False)

    # Add the parameters row
    dz.addTableRow(Headers, last_row=True)

    output_df = DataFrame(columns=columns_output)
    output_df.index.name = 'lambda'

    # Loop through the observed lines an ad them to the table
    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
        dz.deredden_lines(reduc_linedf, reddening_curve=red_curve, cHbeta=cHbeta, R_v=R_v)
        dz.deredden_lines(emission_linedf, reddening_curve=red_curve, cHbeta=cHbeta, R_v=R_v)
         
        #Get Hbeta flux for normalization
        Hbeta_flux  = reduc_linedf.loc['H1_4861A'].line_Flux
        Hbeta_Int   = reduc_linedf.loc['H1_4861A'].line_Int
         
        #Generate pdf
        table_address = '{objfolder}{codeName}_WHT_linesLog_reduc'.format(objfolder = ouput_folder, codeName=objName)
        dz.create_pdfDoc(table_address, pdf_type='table')    
         
        #Set the pdf format
        dz.pdf_insert_table(Headers)
           
        for line in reduc_linedf.index.values:
            
            ion     = r'${}$'.format(lines_df.loc[line].notation) if '_w' not in line else  r'$H\alpha$'            
            row     = list(reduc_linedf.loc[line, column_code].values)
            row[2]  = row[2] / Hbeta_flux * norm_factor
            row[4]  = row[4] / Hbeta_Int * norm_factor
            row     = [r'{} {}'.format(row[0], ion)] + row[1:]
            dz.addTableRow(row, last_row = False if reduc_linedf.index[-1] != line else True)

        row = [r'$F(H\beta)$ $(erg\,cm^{-2} s^{-1} \AA^{-1})$', '', dz.format_for_table(Hbeta_flux, rounddig = 3, scientific_notation=True), '', dz.format_for_table(Hbeta_Int, rounddig = 3, scientific_notation=True)]
        dz.addTableRow(row, last_row = False)
        row = [r'$c(H\beta)$', '', cHbeta, '', '']
        dz.addTableRow(row, last_row = True)

        dz.generate_pdf()