In [1]:
from isochrones import get_ichrone
In [2]:
mist = get_ichrone('mist', tracks=True)
In [4]:
grid = mist.model_grid
grid.get_directory_path(feh=-4.0)
Out[4]:
In [5]:
grid.get_tarball_file(feh=-4.0)
Out[5]:
In [1]:
from isochrones.mist import MIST_EvolutionTrack
mist_track = MIST_EvolutionTrack()
mist_track.get_eep(0.08, 9.51, 0.)
Out[1]:
In [2]:
mist_track.model_grid.df.head()
Out[2]:
In [7]:
track = mist_track.model_grid.df.xs((0, 1), level=('initial_feh', 'initial_mass'))
In [10]:
import holoviews as hv
hv.extension('bokeh')
import hvplot.pandas
In [15]:
track.hvplot.scatter('EEP', 'age').options(height=600, width=1000, marker='+')
Out[15]:
In [ ]:
In [ ]:
In [4]:
mist_track.generate(0.08, 9.51, 0.)
Out[4]:
In [ ]:
In [ ]:
In [ ]:
In [1]:
from isochrones.query import Query, TwoMASS, WISE, Tycho2
In [2]:
ra=45.03433035439128; dec=0.23539164875137225;
pmra=43.75231341609215; pmdec=-7.6419899883511482;
epoch=2015.
In [3]:
q = Query(ra, dec, pmra=pmra, pmdec=pmdec, epoch=epoch)
In [4]:
tm = TwoMASS(q)
w = WISE(q)
tyc = Tycho2(q)
In [5]:
tm.get_id()
Out[5]:
In [6]:
from astroquery.vizier import Vizier
In [20]:
from astropy.coordinates import SkyCoord
import astropy.units as u
c = SkyCoord(ra, dec, unit='deg')
table = Vizier(columns=['*', '_r', '_RAJ2000', '_DEJ2000']).query_region(c,
catalog='2mass', radius=1*u.arcsec)[0]
In [18]:
table
Out[18]:
In [1]:
from isochrones.tests.test_query import test_queries
In [2]:
test_queries()
In [1]:
from isochrones import StarModel
from isochrones.dartmouth import Dartmouth_Isochrone
dar = Dartmouth_Isochrone()
In [2]:
dirname = '../isochrones/tests/star4'
mod = StarModel.from_ini(dar, folder=dirname)
In [3]:
mod.print_ascii()
In [4]:
mod.obs.Nstars
Out[4]:
In [5]:
mod.obs.systems
Out[5]:
In [6]:
mod.lnlike([1.0, 0.8, 0.5, 9.4, 0.0, 100, 0.2] )
Out[6]:
In [1]:
from isochrones.tests.test_ini import test_ini
In [2]:
test_ini()
In [4]:
from isochrones import StarModel
mod = StarModel.from_ini('dartmouth', folder='../isochrones/tests/star2')
In [5]:
mod.n_params
Out[5]:
In [2]:
import scipy
scipy.__version__
Out[2]:
In [8]:
import isochrones
In [1]:
from isochrones.dartmouth import Dartmouth_Isochrone
In [6]:
dar = Dartmouth_Isochrone()
In [7]:
from isochrones.tests.tests import _basic_ic_checks
In [8]:
_basic_ic_checks(dar)
In [9]:
dar.radius(1., 9.5, 0.0)
Out[9]:
In [5]:
dar.radius(1.01, 9.72, 0.02)
Out[5]:
In [6]:
dar.radius(1.21,9.38,0.11)
Out[6]:
In [7]:
dar.radius(0.61, 9.89, -0.22)
Out[7]:
In [8]:
from isochrones.mist import MIST_Isochrone
In [9]:
mist = MIST_Isochrone()
In [10]:
mist.radius(1.0, 9.5, 0.0)
Out[10]:
In [16]:
mist.radius(1.01, 9.72, 0.02)
Out[16]:
In [18]:
mist.radius(1.21,9.38,0.11)
Out[18]:
In [19]:
mist.radius(0.61, 9.89, -0.22)
Out[19]:
In [ ]:
dar.radius(1., 9.5, 0.0)
In [1]:
import isochrones.dartmouth
In [2]:
from isochrones.dartmouth import DartmouthModelGrid
In [3]:
%timeit DartmouthModelGrid.verify_grids()
In [5]:
from isochrones.mist import MISTModelGrid
In [6]:
%timeit MISTModelGrid.verify_grids()
In [1]:
import isochrones
In [1]:
import isochrones
In [1]:
from isochrones.dartmouth import Dartmouth_Isochrone
In [2]:
dar = Dartmouth_Isochrone()
In [3]:
import isochrones.dartmouth; isochrones.dartmouth.download_grids()
In [4]:
dar = Dartmouth_Isochrone()
In [6]:
dar = Dartmouth_Isochrone()
In [3]:
isochrones.dartmouth.download_grids()
In [3]:
from isochrones.mist import MIST_Isochrone
In [4]:
mist = MIST_Isochrone()
In [5]:
mist.radius(1.0, 9.6, 0.0)
Out[5]:
In [7]:
import numpy as np
In [14]:
d = np.array([np.random.randn(100000) for i in range(4)]).T
In [15]:
d.shape
Out[15]:
In [16]:
np.percentile(d, [5,16,50,84,95], axis=0)
Out[16]:
In [1]:
from isochrones import StarModel
from isochrones.dartmouth import Dartmouth_Isochrone
dar = Dartmouth_Isochrone()
props = dict(Teff=(5800, 100), logg=(4.5, 0.1),
B=(5.7,0.05), V=(5.0, 0.05))
mod = StarModel(dar, **props)
In [2]:
mod.name
Out[2]:
In [3]:
samples = mod.emcee_p0(200)
In [4]:
samples.shape
Out[4]:
In [7]:
type(samples)
Out[7]:
In [10]:
samples.max(axis=0)
Out[10]:
In [1]:
%matplotlib inline
import os
import emcee3
from emcee3.backends import Backend, HDFBackend
import matplotlib.pyplot as plt
def trace_plot(star, directory='mcmc_chains', thin=10):
filename = os.path.join(directory, '{}.h5'.format(star))
b = HDFBackend(filename)
coords = b.get_coords()
ndim = coords.shape[-1]
fig, axes = plt.subplots(ndim, 1, sharex=True, figsize=(8,8))
for i,ax in enumerate(axes):
ax.plot(coords[::thin, :, i], lw=1, alpha=0.2);
axes[0].set_title(star)
return fig
In [10]:
trace_plot('test_sun');
In [1]:
from isochrones import StarModel
from isochrones.dartmouth import Dartmouth_Isochrone
In [2]:
dar = Dartmouth_Isochrone(minage=9.1)
props = dict(Teff=(5800, 100), logg=(4.5, 0.1),
B=(5.7,0.05), V=(5.0, 0.05))
In [3]:
mod = StarModel(dar, **props)
In [4]:
mod.bounds('age')
Out[4]:
In [5]:
mod.prior('age', 9.0, bounds=mod.bounds('age'))
Out[5]:
In [6]:
from isochrones.priors import age_prior
In [7]:
from scipy.stats import uniform
In [8]:
type(uniform)
Out[8]:
In [9]:
d = uniform(3, 6)
In [12]:
d.pdf(2)
Out[12]:
In [13]:
uniform?
In [2]:
from isochrones.priors import AV_prior
In [6]:
AV_prior._distribution.rvs(10)
Out[6]:
In [2]:
from scipy.stats import powerlaw
In [1]:
from isochrones.priors import distance_prior
In [2]:
distance_prior.sample(10)
Out[2]:
In [10]:
distance_prior.bounds
Out[10]:
In [21]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
h, b, _ = plt.hist(distance_prior.sample(100000), normed=True);
plt.plot(b, [distance_prior(x, bounds=(0,3000)) for x in b], 'k')
Out[21]:
In [22]:
h
Out[22]:
In [24]:
b
Out[24]:
In [27]:
c = (b[1:] + b[:-1])/2
In [28]:
[distance_prior(x, bounds=(0,3000)) for x in c]
Out[28]:
In [49]:
h1, b = np.histogram(distance_prior.sample(100000))
h,b = np.histogram(distance_prior.sample(100000), density=True)
c = (b[1:] + b[:-1])/2
In [50]:
pdf = [distance_prior(x, bounds=(0,3000)) for x in c]
In [51]:
1./np.sqrt(h1)
Out[51]:
In [53]:
resid = np.abs(pdf - h)/pdf
In [54]:
resid
Out[54]:
In [55]:
sigma = 1./np.sqrt(h1)
In [56]:
resid/sigma
Out[56]:
In [29]:
len(c), len(h)
Out[29]:
In [31]:
Out[31]:
In [1]:
from isochrones.priors import salpeter_prior, q_prior, age_prior, distance_prior
In [4]:
import numpy as np
np.histogram(age_prior.sample(100), range=(9,10.15))
Out[4]:
In [5]:
age_prior.sample(100)
Out[5]:
In [2]:
%matplotlib inline
age_prior.test_sampling(plot=True)
In [7]:
distance_prior.sample(10000)
Out[7]:
In [3]:
import numpy as np
np.histogram?
In [ ]:
from scipy.integrate import quad
In [59]:
plt.hist(salpeter_prior.sample(100000));
plt.plot()
In [ ]: