Example #1
0
     print("plots will be saved under directory: {0}".format(plot_dir))
     if not os.path.exists(plot_dir):
         os.makedirs(plot_dir)
 star_learning_rate = 0.1
 telluric_learning_rate = 0.01
 for r,o in enumerate(orders):
     model = wobble.Model(data, results, r)
     model.add_star('star', variable_bases=K_star, 
                     regularization_par_file=star_reg_file, 
                     learning_rate_template=star_learning_rate)
     model.add_telluric('tellurics', rvs_fixed=True, variable_bases=K_t, 
                         regularization_par_file=tellurics_reg_file, 
                         learning_rate_template=telluric_learning_rate)
     print("--- ORDER {0} ---".format(o))
     if plots:
         wobble.optimize_order(model, niter=niter, save_history=True, 
                               basename=plot_dir+'history', movies=movies, epochs_to_plot=epochs) 
         fig, ax = plt.subplots(1, 1, figsize=(8,5))
         ax.plot(data.dates, results.star_rvs[r] + data.bervs - data.drifts - np.mean(results.star_rvs[r] + data.bervs), 
                 'k.', alpha=0.8, ms=4)
         ax.plot(data.dates, data.pipeline_rvs + data.bervs - np.mean(data.pipeline_rvs + data.bervs), 
                 'r.', alpha=0.5, ms=4)   
         ax.set_ylabel('RV (m/s)', fontsize=14)     
         ax.set_xlabel('BJD', fontsize=14)   
         plt.savefig(plot_dir+'results_rvs_o{0}.png'.format(o))
         plt.close(fig)           
         for e in epochs:
             results.plot_spectrum(r, e, data, plot_dir+'results_synth_o{0}_e{1}.png'.format(o, e))
     else:
         wobble.optimize_order(model, niter=niter)
     del model # not sure if this does anything
     print("order {1} optimization finished. time elapsed: {0:.2f} min".format((time() - start_time)/60.0, o))
        for r in range(data.R):
            model = wobble.Model(data, results, r)
            model.add_star('star',
                           variable_bases=K_star,
                           regularization_par_file=star_reg_file,
                           learning_rate_template=0.01,
                           learning_rate_rvs=1.)
            model.add_telluric('tellurics',
                               rvs_fixed=True,
                               variable_bases=K_t,
                               regularization_par_file=tellurics_reg_file,
                               learning_rate_template=0.01)
            wobble.optimize_order(model,
                                  niter=niter,
                                  save_history=False,
                                  rv_uncertainties=False,
                                  template_uncertainties=False,
                                  basename='../results/test',
                                  epochs=epochs,
                                  movies=movies)
        results.write('../results/test_{0}_Kstar{1}_Kt{2}.hdf5'.format(
            starname, K_star, K_t))
        assert False

    print(
        "running wobble on star {0} with K_star = {1}, K_t = {2}, orders[{3},{4})"
        .format(starname, K_star, K_t, start_order, end_order))
    start_time = time()
    #orders = np.arange(11,53)
    orders = np.arange(start_order, end_order)
    data = wobble.Data(starname + '_vis' + '_e2ds.hdf5',
                       filepath='../data/',
Example #3
0
        for r in range(data.R):
            model = wobble.Model(data, results, r)
            model.add_star('star',
                           variable_bases=K_star,
                           regularization_par_file=star_reg_file,
                           learning_rate_template=0.01,
                           learning_rate_rvs=1.)
            model.add_telluric('tellurics',
                               rvs_fixed=True,
                               variable_bases=K_t,
                               regularization_par_file=tellurics_reg_file,
                               learning_rate_template=0.01)
            wobble.optimize_order(model,
                                  niter=niter,
                                  save_history=True,
                                  uncertainties=False,
                                  basename='results/test',
                                  epochs=epochs,
                                  movies=movies)
        results.write('results/test_{0}_Kstar{1}_Kt{2}.hdf5'.format(
            starname, K_star, K_t))
        assert False

    print("running wobble on star {0} with K_star = {1}, K_t = {2}".format(
        starname, K_star, K_t))
    start_time = time()
    orders = np.arange(72)
    data = wobble.Data(starname + '_e2ds.hdf5',
                       filepath='../data/',
                       orders=orders)
    if True:  # reload data and remove all post-upgrade spectra
Example #4
0
     if not os.path.exists(plot_dir):
         os.makedirs(plot_dir)
 star_learning_rate = 0.1
 telluric_learning_rate = 0.01
 for r,o in enumerate(orders):
     model = wobble.Model(data, results, r)
     model.add_star('star', variable_bases=K_star, 
                     regularization_par_file=None, 
                     learning_rate_template=star_learning_rate)
     model.add_telluric('tellurics', rvs_fixed=True, variable_bases=K_t, 
                         learning_rate_template=telluric_learning_rate,
                         template_fixed=True, template_xs=results_51peg.tellurics_template_xs[o],
                         template_ys=results_51peg.tellurics_template_ys[o]) # assumes all orders are there for 51 Peg
     print("--- ORDER {0} ---".format(o))
     if plots:
         wobble.optimize_order(model, niter=niter, save_history=True, 
                               basename=plot_dir+'history', epochs_to_plot=epochs, movies=movies)
         fig, ax = plt.subplots(1, 1, figsize=(8,5))
         ax.plot(data.dates, results.star_rvs[r] + data.bervs - np.mean(results.star_rvs[r] + data.bervs), 
                 'k.', alpha=0.8)
         ax.plot(data.dates, data.pipeline_rvs + data.bervs - np.mean(data.pipeline_rvs + data.bervs), 
                 'r.', alpha=0.5)   
         ax.set_ylabel('RV (m/s)', fontsize=14)     
         ax.set_xlabel('BJD', fontsize=14)   
         plt.savefig(plot_dir+'results_rvs_o{0}.png'.format(o))
         plt.close(fig)          
         for e in epochs:
             fig, (ax, ax2) = plt.subplots(2, 1, gridspec_kw = {'height_ratios':[4, 1]}, figsize=(12,5))
             xs = np.exp(data.xs[r][e])
             ax.scatter(xs, np.exp(data.ys[r][e]), marker=".", alpha=0.5, c='k', label='data', s=40)
             mask = data.ivars[r][e] <= 1.e-8
             ax.scatter(xs[mask], np.exp(data.ys[r][e][mask]), marker=".", alpha=1., c='white', s=20)
        with open(reg_log_file, "a") as f:
            lst = []
            for name in model.components[1].regularization_par:
                lst.append(int(np.log10(getattr(model.components[1], name))))
            #print("{0},{1},{2},{3},{4}".format(lst[0],lst[1],lst[2],lst[3],lst[4]))
            #f.write("{0},{1},{2},{3},{4}".format(lst[0],lst[1],lst[2],lst[3],lst[4]))
            #print("{0},{1},{2},{3},{4}".format(lst[0],lst[1],lst[2],lst[3],lst[4]))
            f.write("{5},{0},{1},{2},{3},{4}\n".format(lst[0], lst[1], lst[2],
                                                       lst[3], lst[4], o))

        if plots:
            wobble.optimize_order(
                model,
                niter=niter,
                save_history=True,
                basename=plot_dir +
                'history',  #movies=movies,#deprecated in 14_06_2019
                #epochs_to_plot=epochs,
                #epochs = epochs, #to plot?
                rv_uncertainties=True)
            fig, ax = plt.subplots(1, 1, figsize=(8, 5))
            ax.plot(data.dates,
                    results.star_rvs[r] + data.bervs -
                    np.mean(results.star_rvs[r] + data.bervs),
                    'k.',
                    alpha=0.8)
            ax.plot(data.dates,
                    data.pipeline_rvs + data.bervs -
                    np.mean(data.pipeline_rvs + data.bervs),
                    'r.',
                    alpha=0.5)