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')
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')
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')
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.,
""" 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()
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()
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'])
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()
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()
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',
""" 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()
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')