import matplotlib matplotlib.use('Agg') import gfc import numpy as np from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help="File that contains the stellar data") parser.add_argument("xd_results_folder", help="Folder that contains the XD results") parser.add_argument("save_folder", help="Folder in which to save results") parser.add_argument("-t", "--threshold", type=float, help="Threshold angle to select stars", default=2.5) parser.add_argument("-v", "--verbose", action="store_true") args = parser.parse_args() time_before_reading = gfc.time() t = gfc.io.read_csv(args.data_file) time_after_reading = gfc.time() if args.verbose: print "Finished loading data in {0:.1f} seconds".format( time_after_reading - time_before_reading) gfc.add_rad(t) amps, means, covs = gfc.io.load_PDFs(args.xd_results_folder) if args.verbose: print "Finished loading XD parameters"
TODO: Move to gfc.gplot """ import gfc from matplotlib import pyplot as plt from matplotlib import gridspec as gs from matplotlib.patches import Ellipse import matplotlib as mpl from scipy.stats import chi2 import numpy as np from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("xd_results_folder", help = "Folder that contains the XD results") parser.add_argument("saveto_folder", help = "Folder in which plot will be saved") parser.add_argument("-n", "--nrlevels", help = "Number of levels in total plot", type = int, default = 12) parser.add_argument("--minlevel", help = "(Log) minimum level in total plot", type = float, default = -6.0) parser.add_argument("--maxlevel", help = "(Log) maximum level in total plot", type = float, default = -2.7) parser.add_argument("-v", "--verbose", action = "store_true") parser.add_argument("-t", "--tex", action = "store_true", help = "Write a LaTeX table with the components") args = parser.parse_args() volume = 0.6827 levels = np.logspace(args.minlevel, args.maxlevel, args.nrlevels) def text(ax1): ax1.text(60, -90, "Arcturus") ax1.plot([8, 57.5], [-105, -90], c='k', lw=2)
import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("xd_results_folder", help="Folder that contains the XD results") args = parser.parse_args() amps_xd, means_xd, covs_xd = gfc.io.load_PDFs(args.xd_results_folder) print amps_xd raw_input() print means_xd raw_input() print covs_xd
""" Make HR diagrams of the data with and without the main sequence """ import gfc import matplotlib as mpl from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help="File with data to be plotted") parser.add_argument("-s", "--saveto", help="Location to save figure to", default="CMD.png") parser.add_argument("-x", "--x_col", help="Column to plot on x-axis", default="g_min_ks") parser.add_argument("-y", "--y_col", help="Column to plot on y-axis", default="g_mag_abs") parser.add_argument("-v", "--verbose", action="store_true") args = parser.parse_args() t = gfc.io.read_csv(args.data_file) if args.verbose: print "Finished reading" gfc.gplot.density(t[args.x_col], t[args.y_col], saveto=args.saveto,
import gfc from gfc import ArgumentParser from matplotlib import pyplot as plt parser = ArgumentParser() parser.add_argument("data_file", help="File that contains the data") parser.add_argument("save_folder", help="Folder in which results will be saved") parser.add_argument("-v", "--verbose", action="store_true") args = parser.parse_args() t = gfc.io.read_csv(args.data_file) gfc.add_rad(t) x1, x2, x3, v1, v2, v3 = gfc.matrix.tophase(t["ra_rad"], t["dec_rad"], t["parallax"], t["pmra"], t["pmdec"], t["HRV"]) X, Y, Z = gfc.ICRS_to_galactic.transformCartesianCoordinates(x1, x2, x3) U, V, W = gfc.ICRS_to_galactic.transformCartesianCoordinates(v1, v2, v3) fig, axs = plt.subplots(1, 2) im = axs[0].hexbin(-X, Z, W, gridsize=40, vmin=-50, vmax=50) axs[1].hexbin(8000. - X, Z, W, gridsize=40, vmin=-50, vmax=50, extent=(5500, 10500, -2100, 2100)) plt.colorbar(im) plt.show()
""" Fit a model to TGAS data using XD. """ import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help = "File that contains the data") parser.add_argument("save_folder", help = "Folder in which results will be saved") parser.add_argument("-K", help = "K", default = 15, type = int) parser.add_argument("-w", help = "w", default = 4.0, type = float) parser.add_argument("--init_amps", help = "File with initial estimates of amplitudes", default = "Bovy_parameters/Bovy_amps.npy") parser.add_argument("--init_means", help = "File with initial estimates of means", default = "Bovy_parameters/Bovy_means.npy") parser.add_argument("--init_covs", help = "File with initial estimates of covariances", default = "Bovy_parameters/Bovy_covs.npy") parser.add_argument("-v", "--verbose", action = "store_true") args = parser.parse_args() if args.verbose: print "Finished parsing arguments" initial_amps = gfc.io.load(args.init_amps) initial_means = gfc.io.load(args.init_means) initial_covs = gfc.io.load(args.init_covs) K = args.K w = args.w if args.verbose: print "Loaded initial estimates for Gaussian parameters" time_before_loading = gfc.time() t = gfc.io.read_csv(args.data_file)
""" Calculate several matrices used in XD. Run this script to do it once so it doesn't have to be re-done every time (can be quite computationally heavy). """ import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help = "File containing TGAS data") parser.add_argument("save_folder", help = "Folder in which results will be saved") parser.add_argument("-v", "--verbose", action = "store_true") parser.add_argument("-r", "--remove_columns", action = "store_true") args = parser.parse_args() if args.verbose: print "Now reading data..." time_before_reading = gfc.time() t = gfc.io.read_csv(args.data_file) # ASSUME CSV -- todo: check if args.verbose: print "{0} lines in data".format(len(t)) print "Data contains the following keys:" print t.keys() gfc.add_rad(t) if args.remove_columns: gfc.remove_unused_columns(t) time_after_reading = gfc.time() if args.verbose: print "Read TGAS data in {0:.1f} seconds".format(time_after_reading - time_before_reading) time_before_matrices = gfc.time()
import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("tmass_file", help="File containing the TGAS/2MASS table") parser.add_argument("rave_file", help="File containing the RAVE table") parser.add_argument("save_to", help="Location to save cross-matched table to") parser.add_argument("-v", "--verbose", action="store_true") parser.add_argument("-r", "--remove_columns", action="store_true") parser.add_argument("-a", "--add_velocities", action="store_true") args = parser.parse_args() if args.verbose: print "Now loading TGAS/2MASS table" t = gfc.io.read_csv(args.tmass_file) t.rename_column("tycho2_id", "ID_TYCHO2") t.rename_column("source_id", "ID") original_length = len(t) t.remove_rows(gfc.np.where(t["ID_TYCHO2"].mask)[0]) new_length = len(t) if args.verbose: print "Loaded TGAS/2MASS table; removed {0}/{1} rows without a TYCHO2 ID".format( original_length - new_length, original_length) if args.verbose: print "Now loading RAVE table" rave = gfc.io.read_csv(args.rave_file) original_length = len(rave) rave.remove_rows(gfc.np.where(rave["ID_TYCHO2"].mask)[0]) new_length = len(rave) if args.verbose: print "Loaded RAVE table; removed {0}/{1} rows without a TYCHO2 ID".format(
import gfc import numpy as np from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help="File that contains the stellar data") parser.add_argument("xd_results_folder", help="Folder that contains the XD results") parser.add_argument("save_folder", help="Folder in which to save results") parser.add_argument( "-r", "--has_vr", help="Does the table have VR? The VR column is assumed to be titled HRV", action="store_true") parser.add_argument( "-m", "--has_met", help= "Does the table have metallicity/alpha? The columns are assumed to be titled Alpha_c and Met_N_K", action="store_true") parser.add_argument( "-t", "--threshold", help="-1 * Log-likelihood threshold for component membership", default=9.0, type=float) parser.add_argument("-v", "--verbose", action="store_true") args = parser.parse_args() t = gfc.io.read_csv(args.data_file)
""" Predict radial velocities for stars using a model from XD NOTE: NOT CURRENTLY USABLE """ import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("crossmatch_file", help = "File containing the TGAS/2MASS/RAVE cross-match table") parser.add_argument("xd_folder", help = "Folder containing results from XD") parser.add_argument("-v", "--verbose", action = "store_true") args = parser.parse_args() sqwrange = gfc.np.arange(0.5, 3.75, 0.25) wrange = sqwrange**2. x = len(t) # len(t) Ps = g.np.tile(g.np.nan, len(t[:x])) a = g.time() for w in wrange: f = "tgas/2MASS/XD_K_w/w_{w}/K_{K}/".format(w = w, K = K) try: L_old = g.np.loadtxt(f+"/L_rave") #if L_old < -50000: # continue except: pass print K, w amps_xd, means_xd, covs_xd = gfc.io.load_PDFs(f) PDFs = map(g.pdf.multivariate, means_xd, covs_xd, amps_xd)
""" Fit a model to TGAS data using XD. """ import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help="File that contains the data") parser.add_argument("save_folder", help="Folder in which results will be saved") parser.add_argument("--init_amps", help="File with initial estimates of amplitudes", default="Bovy_parameters/Bovy_amps.npy") parser.add_argument("--init_means", help="File with initial estimates of means", default="Bovy_parameters/Bovy_means.npy") parser.add_argument("--init_covs", help="File with initial estimates of covariances", default="Bovy_parameters/Bovy_covs.npy") parser.add_argument("--Kmin", help="Lowest value of K to test", default=4, type=int) parser.add_argument("--Kmax", help="Highest value of K to test", default=20, type=int) parser.add_argument("--Kstep", help="Step between K values", default=1, type=int)
import gfc from gfc import ArgumentParser parser = ArgumentParser() parser.add_argument("data_file", help="Table to pull data from") parser.add_argument("ID", help="ID of star to predict v_r for") parser.add_argument("--ID_col", help="Column in table to identify star by", default="tycho2_id") parser.add_argument("-m", "--mode", help="Which mode to use (TGAS/Hipparcos/...)", default="tgas") parser.add_argument("--min", help="Minimum v_r to test", type=float, default=-500.0) parser.add_argument("--max", help="Maximum v_r to test", type=float, default=500.0) parser.add_argument("--step", help="Step in v_r_ to test", type=float, default=0.0025) parser.add_argument("-e", "--error_col", help="Column with observed v_r error", default="eHRV") parser.add_argument("-o", "--observed", help="Observed value of radial velocity",