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/',
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
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)