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')
""" Test computation of chi2 """ import pyterpol rl = pyterpol.RegionList() rl.add_region(wmin=6320, wmax=6380) rl.add_region(wmin=6500, wmax=6600) sl = pyterpol.StarList() sl.add_component(component='primary', teff=18000., logg=4.5, rv=10., z=1.0, vrot=50.0, lr=0.3) sl.add_component(component='secondary', 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()
import matplotlib.pyplot as plt debug = False # 1) define some observations ol = pyterpol.ObservedList(debug=debug) # obs = [ # dict(filename='o.asc', error=0.01, group=dict(rv=10)), # dict(filename='o2.asc', error=0.01, group=dict(rv=10)) # ] obs = [dict(filename='o.asc', error=0.01), dict(filename='o2.asc', error=0.01)] ol.add_observations(obs) # print ol # 2) define fitted regions rl = pyterpol.RegionList(debug=debug) rl.add_region(wmin=4300, wmax=4380) rl.add_region(wmin=4460, wmax=4500, groups={'teff': 1}) # 3) define a star sl = pyterpol.StarList(debug=debug) sl.add_component(component='primary', teff=20000., logg=4.5, rv=0.0, vrot=0.0, lr=1.0, z=1.0) sl.add_component(component='secondary', teff=20000., logg=4.5,
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')
""" Basic testing (creation and attachement of regions) of the RegionList class """ import pyterpol # type rl = pyterpol.RegionList(debug=True) # add regions # the simplest case rl.add_region(identification='myfirst', wmin=0., wmax=1.) #- correct # rl.add_region() #- correctly incorrect # try to add the same region by name rl.add_region(identification='myfirst') # - correctly unregistered, because it has the same name rl.add_region(wmin=0., wmax=1.) # - correctly unregistered, because it is the same region rl.add_region(component='primary', wmin=0., wmax=1.) # - correctly unregistered, because this region was defined for all # try to add one component - looks good rl.add_region(identification='mysecond', component='primary', wmin=10., wmax=20.) rl.add_region(identification='mysecond', component='secondary', wmin=10., wmax=20.) # try to pass some groups along with trhe rest rl.add_region(identification='mythird', wmin=100., wmax=200., groups=dict(teff=1)) rl.add_region(identification='myfourth',component='primary', wmin=100., wmax=200., groups=dict(teff=0)) rl.add_region(identification='myfourth',component='secondary', wmin=100., wmax=200., groups=dict(teff=1)) print rl # print rl.get_defined_groups() print rl.get_region_groups()