Exemplo n.º 1
0
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"
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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
Exemplo n.º 4
0
"""
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,
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
"""
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)
Exemplo n.º 7
0
"""
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()
Exemplo n.º 8
0
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(
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
"""
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)
Exemplo n.º 11
0
"""
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)
Exemplo n.º 12
0
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",