Esempio n. 1
0
def setup_interface_more_obs():

    # have a look at one observation
    ol = pyterpol.ObservedList()
    obs = read_obs_from_list('spec.lis')
    ol.add_observations(obs)

    # define a starlist
    sl = pyterpol.StarList()
    sl.add_component(component='primary',
                     teff=16000.,
                     logg=3.9,
                     vrot=95.,
                     z=1.2,
                     lr=1.0)

    # define regions
    rl = pyterpol.RegionList()
    rl.add_region(wmin=6340, wmax=6410, groups=dict(lr=0))
    rl.add_region(wmin=6540, wmax=6595, groups=dict(lr=0))
    rl.add_region(wmin=6670, wmax=6685, groups=dict(lr=0))

    # create interfaces
    itf = pyterpol.Interface(sl=sl, rl=rl, ol=ol, debug=False)

    # set fit order = 2 to do it fast
    itf.set_grid_properties(order=2, step=0.05)
    itf.setup()

    # save the session
    itf.save('initial.itf')
Esempio n. 2
0
def setup_interface_single_obs():

    # have a look at one observation
    ol = pyterpol.ObservedList()
    obs = pyterpol.ObservedSpectrum(filename='v7c00001.asc',
                                    group=dict(rv=0),
                                    error=0.01)

    # two methods how to estimate the error
    print obs.get_sigma_from_continuum(cmin=6665, cmax=6670)
    print obs.get_sigma_from_fft()
    ol.add_observations([obs])

    # define a starlist
    sl = pyterpol.StarList()
    sl.add_component(component='primary',
                     teff=17000.,
                     logg=4.0,
                     vrot=180.,
                     z=1.0,
                     lr=1.0)

    # define regions
    rl = pyterpol.RegionList()
    rl.add_region(wmin=6340, wmax=6410, groups=dict(lr=0))
    rl.add_region(wmin=6520, wmax=6610, groups=dict(lr=0))
    rl.add_region(wmin=6665, wmax=6690, groups=dict(lr=0))

    # create interfaces
    itf = pyterpol.Interface(sl=sl, rl=rl, ol=ol)

    # set fit order = 2 to do it fast
    itf.set_grid_properties(order=2)
    itf.setup()

    # review the result - one rv group, one lr group
    print itf

    # plot comparison
    itf.plot_all_comparisons(figname='teff17000')

    # try different temperatures - this way we can easilyt review
    # several comparisons
    itf.set_parameter(parname='teff', value=25000.)
    itf.populate_comparisons()
    itf.plot_all_comparisons(figname='teff25000')

    itf.set_parameter(parname='teff', value=13000.)
    itf.populate_comparisons()
    itf.plot_all_comparisons(figname='teff13000')
    itf.save('initial.itf')
Esempio n. 3
0
def main():
    """
    :return:
    """
    # parameters
    niter = 2

    # 1) Generate region
    rl = pyterpol.RegionList()
    rl.add_region(wmin=6337., wmax=6410.0, groups=dict(lr=0))
    rl.add_region(wmin=6530., wmax=6600.0, groups=dict(lr=0))
    rl.add_region(wmin=6660., wmax=6690.0, groups=dict(lr=0))

    # 2) Load observed data
    ol = load_observations('prekor.lst')[0]

    ## 3) Generate components
    sl = pyterpol.StarList()
    sl.add_component('primary',
                     teff=16000.,
                     logg=4.285,
                     lr=1.0,
                     vrot=90.,
                     z=1.0)

    ## 4) construct the interface
    itf = pyterpol.Interface(sl=sl, rl=rl, ol=ol)
    itf.set_grid_properties(order=4, step=0.05)
    itf.setup()

    print itf

    ## 5) write rvs
    itf.save('test.sav')
    itf.write_rvs('test.rv.dat')

    # 6) try to load it
    itf.load('test.sav')

    # 7) and save it again
    itf.save('test2.sav')
Esempio n. 4
0
                 teff=25000.,
                 logg=4.5,
                 rv=10.,
                 z=1.0,
                 vrot=150.0,
                 lr=0.7)

obs = [
    dict(filename='a', error=0.001, group=dict(rv=1)),
    dict(filename='b', error=0.001, group=dict(rv=2)),
    dict(filename='c', error=0.001, group=dict(rv=3))
]
ol = pyterpol.ObservedList()
ol.add_observations(obs)

itf = pyterpol.Interface(sl=sl, ol=ol, rl=rl)
itf.setup()

# this reduces the list of observed spectra
reduced = itf.get_comparisons(rv=1)

# setup fitted parameterss
itf.set_parameter(parname='rv', group='all', fitted=True)
itf.set_parameter(parname='rv', component='primary', group=3, value=-100.)
itf.set_parameter(parname='rv', component='secondary', group=3, value=100.)
print itf

# this computes the models and chi-square
itf.compute_chi2([
    -100.,
    100.,
Esempio n. 5
0
"""
Make a comparison with some data created with the old version.
KOREL format of the ouput data is used.
"""

import pyterpol

# 1) setup the model
sl = pyterpol.StarList()
sl.add_component('primary', teff=11257., logg=4.43, vrot=28.8, lr=0.744, rv=-17.94, z=1.000)
sl.add_component('secondary', teff=7714., logg=4.25, vrot=26.42, lr=0.256, rv=-16.73, z=1.000)

# setup the data
obs = [
    dict(filename='output000', korel=True, component='primary',),
    dict(filename='output001', korel=True, component='secondary')
]
ol = pyterpol.ObservedList()
ol.add_observations(obs)

# create interface
itf = pyterpol.Interface(ol=ol, sl=sl, debug=True)
itf.setup()

# populate the comparisons
itf.populate_comparisons()

# plot the comparisons
itf.plot_all_comparisons()
Esempio n. 6
0
rl.add_region(wmin=6540, wmax=6600, groups={'lr':0})

sl = pyterpol.StarList()
sl.add_component(component='primary', teff=17000., logg=4.0, rv=-100.0, z=1.0, vrot=40.0, lr=0.35)
sl.add_component(component='secondary', teff=26000., logg=4.0, rv=100.0, z=1.0, vrot=140.0, lr=0.65)

obs = [
    dict(filename='a', error=0.001, group=dict(rv=1)),
    dict(filename='b', error=0.001, group=dict(rv=2)),
    dict(filename='c', error=0.001, group=dict(rv=3))
]
ol = pyterpol.ObservedList()
ol.add_observations(obs)

# setup the class
itf = pyterpol.Interface(sl=sl, ol=ol, rl=rl, debug=False)
itf.set_grid_properties(order=2)
itf.setup()


# setup fitted parameters
itf.set_parameter(parname='logg', component='secondary', fitted=True, vmin=3.5, vmax=4.5)
itf.set_parameter(parname='teff', component='secondary', fitted=True, vmin=20000., vmax=28000.)
itf.set_parameter(parname='vrot', component='secondary', fitted=True, vmin=100., vmax=170.)
itf.set_parameter(parname='lr', component='secondary', fitted=True, vmin=0.5, vmax=0.8)
itf.set_parameter(parname='logg', component='primary', fitted=True, vmin=3.5, vmax=4.5)
itf.set_parameter(parname='teff', component='primary', fitted=True, vmin=15000., vmax=20000.)
itf.set_parameter(parname='vrot', component='primary', fitted=True, vmin=40., vmax=80.)
itf.set_parameter(parname='lr', component='primary', fitted=True, vmin=0.2, vmax=0.5)

fitpars = itf.get_fitted_parameters()
Esempio n. 7
0
import numpy as np
import matplotlib.pyplot as plt
import pyterpol

itf = pyterpol.Interface()
itf.load('hd81357.sav')
itf.populate_comparisons()
# print itf.get_degrees_of_freedom()
# print itf.compute_chi2_treshold()

# try to load the data
data = pyterpol.read_fitlog('fit.log')

# try to plot the convergence
itf.plot_convergence(parameter='all')

# try to plot covariances
itf.plot_covariances(nbin=10, parameters=['teff', 'vrot', 'lr'])




Esempio n. 8
0
rl = pyterpol.RegionList(debug=debug)
rl.add_region(wmin=4300, wmax=4380)
rl.add_region(wmin=4460, wmax=4500)

# 3) define a star
sl = pyterpol.StarList(debug=debug)
sl.add_component(component='primary',
                 teff=20000.,
                 logg=4.5,
                 rv=0.,
                 vrot=150.,
                 lr=0.5,
                 z=1.0)
sl.add_component(component='secondary',
                 teff=10000.,
                 logg=4.5,
                 rv=0.,
                 vrot=10.,
                 lr=0.5,
                 z=1.0)

# 4) define interface
itf = pyterpol.Interface(ol=ol, rl=rl, sl=sl, debug=debug)
itf.setup()
print itf
print itf.rel_rvgroup_region
print itf.list_comparisons()

itf.populate_comparisons()
itf.plot_all_comparisons()
Esempio n. 9
0
                 rv=6.685,
                 z=1.003)
sl.add_component('secondary',
                 teff=31205.,
                 logg=3.36,
                 vrot=213.0,
                 lr=0.551,
                 rv=6.685,
                 z=1.003)

# 2) setup regions - skip on this, we want to compare only
# rl = pyterpol.RegionList(wmin=4810, wmax=5090)

# 3) setup observed data
ol = pyterpol.ObservedList()
obs = [dict(filename='d', error=0.01)]
ol.add_observations(obs)

# get the interface
itf = pyterpol.Interface(ol=ol, sl=sl)

# set grid properties
itf.set_grid_properties(order=2)

# setut the grid
itf.setup()

# do the comparisons
itf.populate_comparisons()
itf.plot_all_comparisons()
Esempio n. 10
0
                 z=1.0,
                 vrot=140.0,
                 lr=0.65)

obs = [
    dict(filename='a', error=0.001),
    dict(filename='b', error=0.001),
    dict(filename='c', error=0.001)
]
ol = pyterpol.ObservedList()
ol.add_observations(obs)

# setup the class
itf = pyterpol.Interface(sl=sl,
                         ol=ol,
                         rl=rl,
                         debug=False,
                         spectrum_by_spectrum=['rv', 'vrot'])
itf.set_grid_properties(order=3)
itf.setup()
print itf
print itf.list_comparisons()

# setup fitted parameters
itf.set_parameter(parname='rv', vmin=-150., vmax=150.)
itf.set_parameter(parname='logg',
                  component='secondary',
                  fitted=True,
                  vmin=3.5,
                  vmax=4.5)
itf.set_parameter(parname='teff',
Esempio n. 11
0
"""
Test of setting up the class to start fitting.
"""
import pyterpol

rl = pyterpol.RegionList()
rl.add_region(wmin=5300, wmax=5500)
rl.add_region(wmin=6500, wmax=6600)

sl = pyterpol.StarList()
sl.add_component(teff=10000., logg=4.5, rv=10., z=1.0, vrot=20.0)

itf = pyterpol.Interface(sl=sl, rl=rl, debug=True)
print itf

itf.set_parameter(parname='teff',
                  value=20000.,
                  vmin=25000.,
                  vmax=15000.,
                  fitted=True)
itf.set_parameter(parname='logg', value=3.5, vmin=3., vmax=4., fitted=True)
print itf

# have a look at the fitted parameters
parlist = itf.get_fitted_parameters()
print pyterpol.parlist_to_list(parlist)

# setup and plot
itf.setup()
itf.populate_comparisons()
itf.plot_all_comparisons()
Esempio n. 12
0
def main():
    """
    :return:
    """

    ## 1) Generate region
    rl = pyterpol.RegionList()
    rl.add_region(wmin=6337., wmax=6410.0, groups=dict(lr=0))
    rl.add_region(wmin=6530., wmax=6600.0, groups=dict(lr=0))
    rl.add_region(wmin=6660., wmax=6690.0, groups=dict(lr=0))

    ## 2) Load observed data
    # first wrap them into observed spectrum class
    o1 = pyterpol.ObservedSpectrum(filename='blb00001.clean.asc',
                                   instrumental_width=0.46,
                                   group=dict(rv=0))
    o2 = pyterpol.ObservedSpectrum(filename='blb00002.clean.asc',
                                   instrumental_width=0.46,
                                   group=dict(rv=1))
    o1.get_sigma_from_continuum(6630., 6640.)
    o2.get_sigma_from_continuum(6630., 6640.)

    # create list of observed spectra
    ol = pyterpol.ObservedList()
    ol.add_observations([o1, o2])

    # alternatively
    ol = pyterpol.ObservedList()
    obs = [
        dict(filename='blb00001.clean.asc',
             instrumental_width=0.46,
             group=dict(rv=0),
             error=0.01),
        dict(filename='blb00002.clean.asc',
             instrumental_width=0.46,
             group=dict(rv=1),
             error=0.01)
    ]
    ol.add_observations(obs)

    ## 3) Generate components
    sl = pyterpol.StarList()
    sl.add_component('primary',
                     teff=16000.,
                     logg=4.285,
                     lr=1.0,
                     vrot=90.,
                     z=1.0)

    ## 4) construct the interface
    itf = pyterpol.Interface(sl=sl, rl=rl, ol=ol)
    itf.set_grid_properties(order=4, step=0.05)
    itf.setup()

    ## 5) Set parameters for fitting
    itf.set_parameter(parname='teff', vmin=14000., vmax=17000., fitted=True)
    itf.set_parameter(parname='logg', vmin=3.5, vmax=4.5, fitted=True)
    itf.set_parameter(parname='rv', vmin=-30., vmax=0., fitted=True)
    itf.set_parameter(parname='vrot', vmin=70., vmax=110., fitted=True)
    itf.set_parameter(parname='lr', vmin=0.99, vmax=1.01, fitted=True)

    ## 6) Choose fitting environment
    itf.choose_fitter('nlopt_nelder_mead', ftol=1e-4)

    ## 7) Run the fitting
    itf.run_fit()

    # write down rvs
    itf.write_rvs('hd.rvs')

    ## 8) plot and save results
    itf.plot_all_comparisons(figname='final')
    itf.save('test.final.sav')