コード例 #1
0
import src.specsiser as sr
from pathlib import Path
from astro.data.SDSS.shared_scripts import list_objName, obsConfaddress, obsFolder

# Declare data and files location
objList = list_objName(obsFolder, '.fits')
obsData = sr.loadConfData(obsConfaddress, objList, group_variables=False)
data_folder = Path(obsData['file_information']['data_folder'])
addressList = list(Path(f'{data_folder/objName}.fits') for objName in objList)

# Sample properties
norm_Flux = obsData['sample_data']['norm_flux']
wmin, wmax = obsData['sample_data']['wmin_array'], obsData['sample_data'][
    'wmax_array']

# Analyse the spectrum
for i, file_address in enumerate(addressList):

    # if i == 0:

    # Open lineslog
    objName = objList[i]
    fitsFolder, fitsFile = file_address.parent, file_address.name
    masksFolder, masksFile = fitsFolder, fitsFile.replace(
        '.fits', '_masks.txt')
    lineLogFolder, lineLogFile = fitsFolder / 'flux_analysis', fitsFile.replace(
        '.fits', '_linesLog.txt')
    plotFolder, plotGrid = fitsFolder / 'flux_analysis', fitsFile.replace(
        '.fits', '_lineGrid.png')
    print(f'\n- {i}: {objName}')
コード例 #2
0
from pathlib import Path
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import src.specsiser as sr
import pyneb as pn

c_KMpS = 299792.458

obsData = sr.loadConfData('./xshooter_LzLCS.ini')
data_folder = Path(obsData['data_location']['data_folder'])
results_folder = Path(obsData['data_location']['results_folder'])
objfile_list = obsData['data_location']['objfile_list']
sigmafile_list = obsData['data_location']['sigmafile_list']
objRef_list = obsData['data_location']['ref_list']
maskfile = obsData['data_location']['generalMask']

wmin_array = obsData['sample_data']['w_min_array']
wmax_array = obsData['sample_data']['w_max_array']
norm_flux = obsData['sample_data']['norm_flux']
z_obj = obsData['sample_data']['z_obj']
profile_conf = obsData['line_fitting']

# DF_list = [None, None]
# for i, objName in enumerate(objRef_list):
#
#     # input data
#     lineslog_file = results_folder/f'{objName}_linesLog.txt'
#
#     # Load data
#     linesDF = sr.lineslogFile_to_DF(lineslog_file)
コード例 #3
0
def colorChooser(ObsRatio, TheRatio):
    if (TheRatio * 0.95 < ObsRatio < TheRatio * 1.05):
        color = 'ForestGreen'  # 'green'#

    elif (TheRatio * 0.90 < ObsRatio < TheRatio * 1.10):
        color = 'YellowOrange'  # 'yellow'#

    else:
        color = 'BrickRed'

    return color


# Import the observation data
obsData = sr.loadConfData('../flux_comparison.ini', group_variables=False)
linesFile = Path(
    'D:/Pycharm Projects/spectra-synthesizer/src/specsiser/literature_data/lines_data.xlsx'
)
linesDb = pd.read_excel(linesFile, sheet_name=0, header=0, index_col=0)
data_folder = Path(obsData['file_information']['data_folder'])
fileList = list_files(data_folder, '.fits')
addressList = list(data_folder / file for file in fileList)
fluxNorm = obsData['sample_data']['norm_flux']
tableHeaders = [
    r'$\lambda(\AA)$', '$EW(\AA)$', '$F_{intg}(\AA)$', '$F_{gauss}(\AA)$'
]

# Analyse the spectrum
for i, file_address in enumerate(addressList):
コード例 #4
0
from src.specsiser.data_printing import PdfPrinter, latex_labels, numberStringFormat
from pathlib import Path
import pandas as pd


def percent_func(current_value, ref_value):
    return f' $({(1 - (current_value / ref_value)) * 100:.1f}\%)$'


def percent_func_txt(current_value, ref_value):
    return f'{(1 - (current_value / ref_value)) * 100:.1f}'


conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
obsData = sr.loadConfData(conf_file_address,
                          objList_check=True,
                          group_variables=False)

objList = obsData['file_information']['object_list']
resultsFolder = Path(obsData['file_information']['results_folder'])
tables_folder = Path(obsData['file_information']['tables_folder'])

ext = 'BR'
cycle = 'it3'
combined_line_dict = {
    'O2_3726A_m': 'O2_3726A-O2_3729A',
    'O2_7319A_m': 'O2_7319A-O2_7330A',
    'S2_6716A_m': 'S2_6716A-S2_6731A'
}

for i, obj in enumerate(objList):
コード例 #5
0
    cHbeta_key = cfg_dict[objName]['cHbeta_label']
    output_dict['cHbeta'] = measurements_dict['Extinction_it3'][cHbeta_key]

    # Electron parameters
    conversion_dict = {'n_e': 'ne', 'T_low': 'Te_low', 'T_high': 'Te_high'}
    for fit_label, measure_label in conversion_dict.items():
        if measure_label in measurements_dict['it3_electron_parameters']:
            output_dict[fit_label] = measurements_dict[
                'it3_electron_parameters'][measure_label]

    return output_dict


conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
obsData = sr.loadConfData(conf_file_address,
                          objList_check=True,
                          group_variables=False)

objList = obsData['file_information']['object_list']
dataFolder = Path(obsData['file_information']['data_folder'])
resultsFolder = Path(obsData['file_information']['results_folder'])
fileList = obsData['file_information']['files_list']

ext = 'BR'
cycle = 'it3'
combined_line_dict = {
    'O2_3726A_m': 'O2_3726A-O2_3729A',
    'O2_7319A_m': 'O2_7319A-O2_7330A'
}

# Analyse the spectrum
コード例 #6
0
if os.name != 'nt':
    conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
    dataFolder = Path(
        '/home/vital/Dropbox/Astrophysics/Papers/gtc_greenpeas/data')
    resultsFolder = Path(
        '/home/vital/Dropbox/Astrophysics/Papers/gtc_greenpeas/treatment')
    starlight_folder = Path('/home/vital/Dropbox/Astrophysics/Tools/Starlight')
else:
    conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
    dataFolder = Path('D:/Dropbox/Astrophysics/Papers/gtc_greenpeas/data')
    resultsFolder = Path(
        'D:/Dropbox/Astrophysics/Papers/gtc_greenpeas/treatment')
    starlight_folder = Path('D:/Dropbox/Astrophysics/Tools/Starlight')

obsData = sr.loadConfData(conf_file_address,
                          objList_check=True,
                          group_variables=False)
objList = obsData['file_information']['object_list']

fileList = obsData['file_information']['files_list']
idx_band = int(obsData['file_information']['band_flux'])

z_array = obsData['sample_data']['z_array']
wmin_array = obsData['sample_data']['wmin_array']
wmax_array = obsData['sample_data']['wmax_array']
arm_wave_boundary = obsData['sample_data']['w_div']

w_div_array = obsData['sample_data']['w_div']
red_law = obsData['sample_data']['red_law']
RV = obsData['sample_data']['RV']
コード例 #7
0
import numpy as np
import src.specsiser as sr
from pathlib import Path
from astro.data.muse.common_methods import voxel_security_check, fits_db
from timeit import default_timer as timer
from astropy.table import Table
from astropy.io import fits
from matplotlib import pyplot as plt, rcParams, cm, colors
from astropy.wcs import WCS
import time

# Declare data and files location
obsData = sr.loadConfData('../muse_greenpeas.ini', group_variables=False)
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

z_objs = obsData['sample_data']['z_array']
pertil_array = obsData['sample_data']['percentil_array']
noise_region = obsData['sample_data']['noiseRegion_array']
norm_flux = obsData['sample_data']['norm_flux']

verbose = True

for i, obj in enumerate(objList):

    if i == 0:

        # Data location
コード例 #8
0
import numpy as np
from pathlib import Path
import src.specsiser as sr
from astro.papers.gtc_greenpeas.common_methods import check_previous_measurements

conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
obsData = sr.loadConfData(conf_file_address, objList_check=True, group_variables=False)

objList = obsData['file_information']['object_list']
dataFolder = Path(obsData['file_information']['data_folder'])
resultsFolder = Path(obsData['file_information']['results_folder'])
fileList = obsData['file_information']['files_list']

ext = 'BR'
cycle = 'it3'
combined_line_dict = {'O2_3726A_m': 'O2_3726A-O2_3729A', 'O2_7319A_m': 'O2_7319A-O2_7330A'}

# Analyse the spectrum
for i, obj in enumerate(objList):

    if i < 3:

        # Declare input files
        print(f'- Treating object ({i}): {obj}')
        objFolder = resultsFolder / f'{obj}'
        fits_file = dataFolder / f'{obj}_{ext}.fits'
        objMask = dataFolder / f'{obj}_{ext}_mask.txt'
        results_file = objFolder / f'{obj}_{ext}_measurements.txt'
        lineLog_file = objFolder / f'{obj}_{ext}_linesLog_{cycle}.txt'

        # Declare output files
コード例 #9
0
from pathlib import Path
import numpy as np
import pandas as pd
import src.specsiser as sr
from astro.papers.gtc_greenpeas.common_methods import

from timeit import default_timer as timer
from physical_model.gasEmission_functions import gridInterpolatorFunction

conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
obsData = sr.loadConfData(conf_file_address, objList_check=True, group_variables=False)

objList = obsData['file_information']['object_list']
dataFolder = Path(obsData['file_information']['data_folder'])
resultsFolder = Path(obsData['file_information']['results_folder'])
fileList = obsData['file_information']['files_list']

red_law = obsData['sample_data']['red_law']
RV = obsData['sample_data']['RV']

ext = 'BR'
cycle = 'it3'

HCm_folder = '/home/vital/Dropbox/Astrophysics/Tools/HCm-Teff_v5.01/'
# HCm_folder = 'D:/Dropbox/Astrophysics/Tools/HCm-Teff_v5.01/'
# grid_file = 'C17_bb_Teff_30-90_pp.dat'

conversion_dict = dict(O2_3726A_m='OII_3727',
                       Ne3_3869A='NeIII_3868',
                       O3_4363A='OIII_4363',
                       O3_4959A='OIII_4959',
コード例 #10
0
import src.specsiser as sr
from pathlib import Path
from matplotlib import pyplot as plt, rcParams
from astropy.wcs import WCS
from src.specsiser.print.plot import STANDARD_PLOT
from astro.data.muse.common_methods import compute_line_flux_image, image_array_binning, VoxelPlotter

lineAreas = {
    'H1_6563A': (6533.0, 6596.0),
    'S3_6312A': (6310.0, 6319.0),
    'O3_5007A': (4999.0, 5025.0),
    'O3_4363A': (4355.0, 4374.0)
}

# Declare data and files location
obsData = sr.loadConfData('muse_J0925.ini', group_variables=False)
objList = np.array([obsData['sample_data']['object_list']])
fileList = np.array([obsData['sample_data']['file_list']])
dataFolder = Path(obsData['sample_data']['data_folder'])
resultsFolder = Path(obsData['sample_data']['results_folder'])
z_objs = np.array([obsData['sample_data']['z_array']])
pertil_array = obsData['sample_data']['percentil_array']
norm_flux = 1

for i, obj in enumerate(objList):

    # Data location
    cube_address_i = dataFolder / fileList[i]
    objFolder = resultsFolder / obj
    db_addresss = objFolder / f'{obj}_database.txt'
コード例 #11
0
import numpy as np
import src.specsiser as sr
from src.specsiser.data_printing import latex_labels
from pathlib import Path
from astro.papers.muse_CGCG007.muse_CGCG007_methods import voxel_security_check
from timeit import default_timer as timer
from astropy.table import Table
from astropy.io import fits
from matplotlib import pyplot as plt, rcParams, cm, colors
from astropy.wcs import WCS
from src.specsiser.tools.line_measure import STANDARD_PLOT

# Declare data and files location
obsData = sr.loadConfData('../muse_CGCG007.ini')
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

voxel_grid_size = obsData['sample_data']['grid_shape_array']

verbose = True

for i, obj in enumerate(objList):

    # Data location
    objFolder = resultsFolder / obj
    voxelFolder = resultsFolder / obj / 'voxel_data'
    db_address = objFolder / f'{obj}_database.fits'
    fits_results_file = resultsFolder / obj / f'{obj}_chemical.fits'
コード例 #12
0
import numpy as np
import src.specsiser as sr
from src.specsiser.data_printing import PdfPrinter, latex_labels, numberStringFormat
from pathlib import Path


def percent_func(current_value, ref_value):
    return f' $({(1 - (current_value / ref_value)) * 100:.1f}\%)$'


conf_file_address = '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini'
obsData = sr.loadConfData(conf_file_address, objList_check=True, group_variables=False)

objList = obsData['file_information']['object_list']
resultsFolder = Path(obsData['file_information']['results_folder'])
tables_folder = Path(obsData['file_information']['tables_folder'])

ext = 'BR'
cycle = 'it3'
combined_line_dict = {'O2_3726A_m': 'O2_3726A-O2_3729A',
                      'O2_7319A_m': 'O2_7319A-O2_7330A',
                      'S2_6716A_m': 'S2_6716A-S2_6731A'}

# obj = 'gp121903'
for i, obj in enumerate(objList):

    if i < 3:

        objFolder = resultsFolder / f'{obj}'
        results_file = objFolder / f'{obj}_{ext}_measurements.txt'
        lineLog_file = objFolder / f'{obj}_{ext}_linesLog_{cycle}.txt'
コード例 #13
0
from pathlib import Path
from astro.data.muse.common_methods import background_color, DARK_PLOT, label_Conver, latex_Conver, dinamicLines
from timeit import default_timer as timer
from astropy.table import Table
from astropy.io import fits
from matplotlib import pyplot as plt, rcParams, cm, colors
from astropy.wcs import WCS

# Declare data and files location
conf_file = Path(
    '/home/vital/PycharmProjects/vital_tests/astro/data/muse/muse_greenpeas.ini'
)
seminar_folder = Path(
    '/home/vital/Dropbox/Astrophysics/Seminars/UniVapo 2021/')

obsData = sr.loadConfData(conf_file, group_variables=False)
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

voxel_grid_size = obsData['sample_data']['grid_shape_array']

verbose = True

for i, obj in enumerate(objList):

    if i == 0:

        # Data location
コード例 #14
0
import lmfit
import numpy as np
import pandas as pd
import src.specsiser as sr
from matplotlib import pyplot as plt, rcParams
from pathlib import Path

# Import the observation data
obsData = sr.loadConfData(
    '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini',
    group_variables=False)
linesFile = Path(
    'D:/Pycharm Projects/spectra-synthesizer/src/specsiser/literature_data/lines_data.xlsx'
)
data_folder = Path(obsData['file_information']['data_folder'])
file_list = obsData['file_information']['files_list']
addressList = list(data_folder / file for file in file_list)

# Analyse the spectrum
for i, file_address in enumerate(addressList):

    # Get fits data
    wave, flux, header = sr.import_fits_data(file_address, instrument='OSIRIS')
    z_mean = obsData['sample_data']['z_array'][i]
    wmin_array, wmax_array = obsData['sample_data']['wmin_array'], obsData[
        'sample_data']['wmax_array']

    # Define wave and flux ranges
    wave_rest = wave / (1 + z_mean)
    idx_wave = (wave_rest >= wmin_array[i]) & (wave_rest <= wmax_array[i])
コード例 #15
0
from pathlib import Path
import numpy as np
import src.specsiser as sr
import pandas as pd
import astropy.coordinates as coord
import astropy.units as u
from matplotlib import pyplot as plt
import mplcursors


megara_library_stars = ['HR1544', 'HR5501', 'HR5501', 'HR5501', 'HR1544']

conf_file = Path('../obsConf.ini')
obsData = sr.loadConfData(conf_file)

data_folder = Path(obsData['data_location']['data_folder'])
results_folder = Path(obsData['data_location']['results_folder'])

targets_file = '/home/vital/Dropbox/Astrophysics/TelescopeTime/MEGARA_NOexcess_Gradients_2021/phase2/targets_coordinates.txt'
osirisStdStars_file = '/home/vital/Dropbox/Astrophysics/TelescopeTime/Standard_Stars/osirisStandardStars.csv'
esoStdStars_file = '/home/vital/Dropbox/Astrophysics/TelescopeTime/Standard_Stars/esoStandardStars.csv'

osirisStdStarsDF = pd.read_csv(osirisStdStars_file, header=0, index_col=0)
osirisStdStarsDF['type'] = 'Osiris Stars'

esoStdStarsDF = pd.read_csv(esoStdStars_file, header=0, index_col=0)
esoStdStarsDF['type'] = 'ESO Stars'

targetsDF = pd.read_csv(targets_file, delim_whitespace=True, header=0, index_col=0)
targetsDF['type'] = 'Targets'
コード例 #16
0
def reconstruct_wavelength(header):
    dw = header['CDELT3']
    w_min = header['CRVAL3']
    nPixels = header['NAXIS3']
    w_max = w_min + dw * nPixels
    return np.linspace(w_min, w_max, nPixels, endpoint=False)


# fits_folder = Path('/home/vital/Astro-data/Observations/MUSE - Amorin/FADO_analysis/Z4SalpP2000/')
# conf_file_address = '/home/vital/PycharmProjects/vital_tests/astro/papers/muse_CGCG007/muse_CGCG007.ini'

fits_folder = Path(
    r'S:\Astro_data\Observations\MUSE - Amorin\FADO_analysis\Z4SalpP2000')
conf_file_address = r'D:\Pycharm Projects\vital_tests\astro\papers\muse_CGCG007\muse_CGCG007.ini'

obsData = sr.loadConfData(conf_file_address, group_variables=False)
fits_1 = 'cgcg007025_HBIN024_FDres2_2DnebSED.fits'
fits_2 = 'cgcg007025_HBIN024_FDres2_2DnoNEB.fits'
fits_3 = 'cgcg007025_HBIN024_FDres2_3DnebSED.fits'
fits_4 = 'cgcg007025_HBIN024_FDres2_3DnoNEB.fits'
fits_5 = 'cgcg007025_HBIN024_FDres2_3DOBS.fits'
fits_6 = 'cgcg007025_HBIN024_FDres2_3DstelFIT.fits'
fits_7 = 'cgcg007025_HBIN024_FDres2_2DnebSED.fits'
fits_8 = 'red_cgcg007025_3D_SLres_HBIN024_RY.fits'
fits_9 = 'red_cgcg007025_HBIN024_FDres2.fits'

coord = (170, 170)

file_path = Path(r'S:\Astro_data\Observations\MUSE - Amorin\CGCG007.fits')
wave, cube, header = sr.import_fits_data(file_path, instrument='MUSE')
z_obj = 0.004691
コード例 #17
0
        color = 'black'

    elif (TheRatio  < ObsRatio * 0.95):
        color = 'ForestGreen'  # 'green'#

    elif (TheRatio < ObsRatio * 0.85 ):
        color = 'YellowOrange'  # 'yellow'#

    else:
        color = 'YellowOrange'  # 'yellow'#

    return color


# Import the observation data
obsData = sr.loadConfData('D:/Pycharm Projects/vital_tests/astro/data/SDSS/flux_comparison.ini', group_variables=False)
linesFile = Path('D:/Pycharm Projects/spectra-synthesizer/src/specsiser/literature_data/lines_data.xlsx')
linesDb = pd.read_excel(linesFile, sheet_name=0, header=0, index_col=0)
data_folder = Path(obsData['file_information']['data_folder'])
fileList = list_files(data_folder, '.fits')
addressList = list(data_folder / file for file in fileList)
flux_norm = obsData['sample_data']['norm_flux']
tableHeaders = [r'Object name', r'$EW(H\beta)$ $(\AA)$', r'$c(H\beta)$', r'$F(H\alpha)/F(H\beta)$']

scaleTable = 1000.0

fitsFolder, fitsFile = addressList[0].parent, addressList[0].name
sampleFolder, tableName = fitsFolder/'sample_data', 'sample_properties'

pdf = PdfPrinter()
pdf.create_pdfDoc(sampleFolder / tableName, pdf_type='table')
コード例 #18
0
import numpy as np
import src.specsiser as sr
import time
import lime

from pathlib import Path
from astro.papers.muse_CGCG007.muse_CGCG007_methods import voxel_security_check
from astropy.io import fits

import os
# Declare data and files location
obsData = sr.loadConfData('../muse_CGCG007.ini')
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

z_objs = obsData['sample_data']['z_array']
pertil_array = obsData['sample_data']['percentil_array']
noise_region = obsData['sample_data']['noiseRegion_array']
norm_flux = obsData['sample_data']['norm_flux']

merge_dict = {'O2_7319A_b': 'O2_7319A-O2_7330A'}

for i, obj in enumerate(objList):

    # Data location
    objFolder = resultsFolder / obj
    db_addresss = objFolder / f'{obj}_database.fits'
    fitsLog_addresss = objFolder / f'{obj}_linesLog.fits'
コード例 #19
0
from pathlib import Path
import src.specsiser as sr

# Declare the data location
obsFitsFile = Path('./sample_data/gp121903_BR.fits')
lineMaskFile = Path('./sample_data/gp121903_BR_mask.txt')
cfgFile = Path('./sample_data/gtc_greenpeas_data.ini')

# Load the data
obsConf = sr.loadConfData(cfgFile, objList_check=True, group_variables=False)
maskDF = sr.lineslogFile_to_DF(lineMaskFile)
wave, flux, header = sr.import_fits_data(obsFitsFile, instrument='OSIRIS')
user_conf = obsConf['gp121903_line_fitting']

# Declare line measuring object
lm = sr.LineMesurer(wave,
                    flux,
                    redshift=obsConf['sample_data']['z_array'][2],
                    normFlux=obsConf['sample_data']['norm_flux'])
lm.plot_spectrum()

# Find lines
norm_spec = lm.continuum_remover(
    noiseRegionLims=obsConf['sample_data']['noiseRegion_array'])
obsLinesTable = lm.line_finder(
    norm_spec,
    noiseWaveLim=obsConf['sample_data']['noiseRegion_array'],
    intLineThreshold=3)
matchedDF = lm.match_lines(obsLinesTable, maskDF)
lm.plot_spectrum(obsLinesTable=obsLinesTable,
                 matchedLinesDF=matchedDF,
コード例 #20
0
    wget.download(url, out_file_address)
    return


lineConversion = {
    'He2_4685A': 'He_II 4685',
    'H1_4861A': 'H_beta',
    'H1_6563A': 'H_alpha',
    'O3_4363A': '[O_III] 4363',
    'O3_4959A': '[O_III] 4959',
    'O3_4959A': '[O_III] 5007',
    'S3_6312A': '[S_III] 6312'
}

conf_file_address = '../sampleHeII.ini'
obsData = sr.loadConfData(conf_file_address)

fits_folder = pathlib.Path(obsData['data_location']['fits_folder'])
data_folder = pathlib.Path(obsData['data_location']['treatment_folder'])
objList_file = obsData['data_location']['sample_file']
objDF = pd.read_csv(data_folder / objList_file,
                    delim_whitespace=True,
                    comment='#',
                    names=['PLATEID', 'MDJ_1', 'FIBERID_1'])

normFlux = obsData['sample_data']['norm_flux']

# Loop through the sample list
err_dict = {}
n_objs = objDF.index.values.size
コード例 #21
0
from pathlib import Path
import src.specsiser as sr
from fitelp.read_spectra import read_spectra

data_folder = Path('D:/Google drive/Astrophysics/Datos/broad_multiComponent')
obsData = sr.loadConfData('broad_conf.ini', group_variables=False)
z_mean, z_err = sr.redshift_calculation(obsData['sample_data']['obs_waves'],
                                        obsData['sample_data']['emis_waves'])
norm_flux = obsData['sample_data']['norm_flux']
obj_list = ['B6479s', 'R8731s']

for idx_obj, obj in enumerate(['R8731s']):

    fits_address = data_folder / f'{obj}.fits'
    wave_data, flux_data = read_spectra(fits_address, scaleFlux=1)

    mask_address = data_folder / f'{obj}_mask.txt'
    mask_DF = sr.lineslogFile_to_DF(mask_address)

    # Individual line measurement
    lm = sr.LineMesurer(wave_data[0],
                        flux_data[0],
                        normFlux=norm_flux,
                        redshift=z_mean)
    fitConf = obsData[f'default_line_fitting']

    # Loop through the lines
    for lineLabel in ['H1_6563A_b']:

        # Get line ranges
        lineWaves = mask_DF.loc[lineLabel, 'w1':'w6'].values
コード例 #22
0
from astro.data.muse.common_methods import compute_line_flux_image, lineAreas, red_corr_HalphaHbeta_ratio, default_linelog_types
from astropy.io import fits
from matplotlib import pyplot as plt, rcParams, cm, colors
from astropy.wcs import WCS
import time
from lmfit.models import PolynomialModel, Model
from src.specsiser.tools.line_fitting import gaussian_model, linear_model, c_KMpS
import fitelp.constants as constants
from fitelp.make_latex_tables import average_velocities_table_to_latex, halpha_regions_table_to_latex
from fitelp.bpt_plotting import bpt_plot
from fitelp.kinematics_calculations import RegionCalculations
from fitelp.fit_line_profiles import plot_profiles
from fitelp.line_profile_info import RegionParameters

# Declare data and files location
obsData = sr.loadConfData('../muse_greenpeas.ini', group_variables=False)
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

z_objs = obsData['sample_data']['z_array']
pertil_array = obsData['sample_data']['percentil_array']
noise_region = obsData['sample_data']['noiseRegion_array']
norm_flux = obsData['sample_data']['norm_flux']

dict_errs = {}
dict_nan_values = {}

verbose = False
コード例 #23
0
import numpy as np
from pathlib import Path
import src.specsiser as sr

# Import the observation data
obsData = sr.loadConfData(
    '../../../papers/gtc_greenpeas/gtc_greenpeas_data.ini',
    group_variables=False)
linesFile = Path(
    'D:/Pycharm Projects/spectra-synthesizer/src/specsiser/literature_data/lines_data.xlsx'
)
data_folder = Path(obsData['file_information']['data_folder'])
file_list = obsData['file_information']['files_list']
addressList = list(data_folder / file for file in file_list)

# Analyse the spectrum
for i, file_address in enumerate(addressList):

    if i == 2:

        # Establish files location
        objName = obsData['file_information']['object_list'][i]
        fitsFolder, fitsFile = file_address.parent, file_address.name
        lineLogFolder, lineLogFile = fitsFolder / 'flux_analysis', fitsFile.replace(
            '.fits', '_linesLog.txt')
        simFolder, simConf = fitsFolder / 'chemical_analysis', fitsFile.replace(
            '_BR.fits', '_config.txt')
        inputLinesLog = f'{objName}_inputLinesLog.txt'
        outputDb = f'{objName}_fitting.db'
        outputTxt = f'{objName}_fitting.txt'
        print(f'- {objName}')
コード例 #24
0
defaultConf = STANDARD_PLOT.copy()
defaultConf['axes.titlesize'] = 20
rcParams.update(defaultConf)

# # Declare data and files location
# obsData = sr.loadConfData('../muse_greenpeas.ini', group_variables=False)
# objList = obsData['data_location']['object_list']
# fileList = obsData['data_location']['file_list']
# fitsFolder = Path(obsData['data_location']['fits_folder'])
# dataFolder = Path(obsData['data_location']['data_folder'])
# resultsFolder = Path(obsData['data_location']['results_folder'])
# voxel_grid_size = obsData['sample_data']['grid_shape_array']
# coordinates_keys_list = obsData['data_location']['wcs_key_list']

# Declare data and files location
obsConf = sr.loadConfData('J0838_cubes.ini')
fitsFolder = Path(obsConf['data_location']['fits_folder'])
dataFolder = Path(obsConf['data_location']['data_folder'])
resultsFolder = Path(obsConf['data_location']['results_folder'])

fileList = obsConf['data_location']['file_list']
objList = obsConf['data_location']['object_list']
z_list = obsConf['sample_data']['z_array']
norm_flux = obsConf['sample_data']['norm_flux']
percentil_array = obsConf['sample_data']['percentil_array']
voxel_grid_size = obsConf['sample_data']['grid_shape_array']

# Store emissivity ratios at standard conditions
H1 = pn.RecAtom('H', 1)
temp, den = 10000.0, 100.0
コード例 #25
0
import numpy as np
import pandas as pd
from pathlib import Path
import src.specsiser as sr
import scipy as spy
import exoplanet as xo

import time
from astropy.io import fits
from astropy.table import Table
from astro.data.muse.common_methods import grid_HII_CHI_mistry_conversion as labelConver, grid_columns
from astro.papers.gtc_greenpeas.common_methods import epm_HII_CHI_mistry

# Declare data and files location
file_conf = '/home/vital/PycharmProjects/vital_tests/astro/data/muse/muse_greenpeas.ini'
obsData = sr.loadConfData(file_conf, group_variables=False)
objList = obsData['data_location']['object_list']
fileList = obsData['data_location']['file_list']
fitsFolder = Path(obsData['data_location']['fits_folder'])
dataFolder = Path(obsData['data_location']['data_folder'])
resultsFolder = Path(obsData['data_location']['results_folder'])

z_objs = obsData['sample_data']['z_array']
pertil_array = obsData['sample_data']['percentil_array']
noise_region = obsData['sample_data']['noiseRegion_array']
norm_flux = obsData['sample_data']['norm_flux']

# Load the data
grid_file = Path(
    '/home/vital/Dropbox/Astrophysics/Data/muse-Ricardo/Data/HII-CHI-mistry_1Myr_grid.csv'
)
コード例 #26
0
#
# print(trace)
# print(pymc3.summary(trace))
# az.plot_trace(trace)
# plt.show()
# az.plot_posterior(trace)
# plt.show()

# -------------------------------------- Test 2 --------------------------------------------------

# Load synthetic observation
linesLogAddress = user_folder / f'Teff_LogU_epmGrids_linesLog.txt'
simulationData_file = user_folder / f'Teff_LogU_epmGrids_config.txt'

# Load simulation parameters
objParams = sr.loadConfData(simulationData_file, group_variables=False)

# Load emission lines
merged_lines = {'O2_3726A_m': 'O2_3726A-O2_3729A', 'O2_7319A_m': 'O2_7319A-O2_7330A'}
objLinesDF = sr.import_emission_line_data(linesLogAddress, include_lines=objParams['inference_model_configuration']['input_lines'], exclude_lines=['S3_9069A'])

# Establish lines used in photo-ionization model
lineLabels = objLinesDF.index.values
lines_Grid = np.array(list(gridLineDict.keys()))
idx_analysis_lines = np.in1d(lineLabels, lines_Grid)
lineFluxes = objLinesDF.obsFlux.values
lineErr = objLinesDF.obsFluxErr.values
lineWaves = objLinesDF.wavelength.values

# Extinction parameters
objRed = sr.ExtinctionModel(Rv=objParams['simulation_properties']['R_v'],
コード例 #27
0
from pathlib import Path
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import src.specsiser as sr

c_KMpS = 299792.458

obsData = sr.loadConfData('./xshooter_LzLCS.ini')
data_folder = Path(obsData['data_location']['data_folder'])
results_folder = Path(obsData['data_location']['results_folder'])
objfile_list = obsData['data_location']['objfile_list']
sigmafile_list = obsData['data_location']['sigmafile_list']
objRef_list = obsData['data_location']['ref_list']
maskfile = obsData['data_location']['generalMask']

wmin_array = obsData['sample_data']['w_min_array']
wmax_array = obsData['sample_data']['w_max_array']
norm_flux = obsData['sample_data']['norm_flux']
z_obj = obsData['sample_data']['z_obj']
profile_conf = obsData['line_fitting']

DF_list = [None, None]
for i, objName in enumerate(objRef_list):

    # input data
    lineslog_file = results_folder / f'{objName}_linesLog.txt'

    # Load data
    linesDF = sr.lineslogFile_to_DF(lineslog_file)
    DF_list[i] = linesDF