In [225]:
from isochrones.dartmouth import Dartmouth_Isochrone
dar = Dartmouth_Isochrone()
In [226]:
from isochrones.utils import addmags
import numpy as np
M1 = 1.
M2 = 0.7
age = np.log10(5e9)
feh = 0.0
distance = 200
AV = 0.1
#Simulate true magnitudes
unresolved_bands = ['J','H','K']
resolved_bands = ['i']
args = (age, feh, distance, AV)
unresolved = {b:addmags(dar.mag[b](M1, *args), dar.mag[b](M2, *args)) for b in unresolved_bands}
resolved_1 = {b:dar.mag['i'](M1, *args) for b in resolved_bands}
resolved_2 = {b:dar.mag['i'](M2, *args) for b in resolved_bands}
In [227]:
import pandas as pd
instruments = ['twomass','RAO']
bands = {'twomass':['J','H','K'],
'RAO':['i']}
mag_unc = {'twomass': 0.02, 'RAO':0.1}
resolution = {'twomass':4.0, 'RAO':0.1}
relative = {'twomass':False, 'RAO':True}
separation = 0.5
PA = 100.
columns = ['name', 'band', 'resolution', 'relative', 'separation', 'pa', 'mag', 'e_mag']
df = pd.DataFrame(columns=columns)
i=2
for inst in ['twomass']: #Unresolved observations
for b in bands[inst]:
row = {}
row['name'] = inst
row['band'] = b
row['resolution'] = resolution[inst]
row['relative'] = relative[inst]
row['separation'] = 0.
row['pa'] = 0.
row['mag'] = unresolved[b]
row['e_mag'] = mag_unc[inst]
df = df.append(pd.DataFrame(row, index=[i]))
i += 2
for inst in ['RAO']: #Resolved observations
for b in bands[inst]:
mags = [resolved_1[b], resolved_2[b]]
pas = [0, PA]
seps = [0., separation]
for mag,sep,pa in zip(mags,seps,pas):
row = {}
row['name'] = inst
row['band'] = b
row['resolution'] = resolution[inst]
row['relative'] = relative[inst]
row['separation'] = sep
row['pa'] = pa
row['mag'] = mag
row['e_mag'] = mag_unc[inst]
df = df.append(pd.DataFrame(row, index=[i]))
i += 2
df
Out[227]:
In [228]:
from isochrones.observation import ObservationTree
In [229]:
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [230]:
from isochrones.starmodel import StarModel
In [231]:
mod = StarModel(dar, obs=t)
In [232]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1],use_cache=False)
In [233]:
mag = addmags(dar.mag['W1'](M1, *args), dar.mag['W1'](M2, *args))
e_mag = 0.02
row = {}
row['name'] = 'some telescopes'
row['band'] = 'W1'
row['resolution'] = 5.0
row['relative'] = False
row['separation'] = 0.
row['pa'] = 0.
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[0]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [234]:
mod = StarModel(dar, obs=t)
In [235]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1],use_cache=False)
In [236]:
mag = addmags(dar.mag['W2'](M1, *args), dar.mag['W2'](M2, *args))
e_mag = 0.02
row = {}
row['name'] = 'some telescopes'
row['band'] = 'W2'
row['resolution'] = 5.0
row['relative'] = False
row['separation'] = 0.
row['pa'] = 0.
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[1]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [237]:
mod = StarModel(dar, obs=t)
In [238]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1],use_cache=False)
In [239]:
mag = addmags(dar.mag['r'](M1, *args), dar.mag['r'](M2, *args))
e_mag = 0.01
row = {}
row['name'] = 'some telescopes'
row['band'] = 'r'
row['resolution'] = 3.5
row['relative'] = False
row['separation'] = 0.
row['pa'] = 0.
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[3]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [240]:
mod = StarModel(dar, obs=t)
In [241]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1],use_cache=False)
In [242]:
resolved_1 = {'z':dar.mag['z'](M1, *args)}
resolved_2 = {'z':dar.mag['z'](M2, *args)}
e_mag = 0.02
mags = [resolved_1['z'], resolved_2['z']]
pas = [0, PA]
seps = [0., separation]
for mag,sep,pa in zip(mags,seps,pas):
row = {}
row['name'] = 'some instruments'
row['band'] = 'z'
row['resolution'] = 0.15
row['relative'] = True
row['separation'] = sep
row['pa'] = pa
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[7]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [243]:
mod = StarModel(dar, obs=t)
In [244]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1], use_cache=False)
In [245]:
resolved_1 = {'Kepler':dar.mag['Kepler'](M1, *args)}
resolved_2 = {'Kepler':dar.mag['Kepler'](M2, *args)}
e_mag = 0.01
mags = [resolved_1['Kepler'], resolved_2['Kepler']]
pas = [0, 95]
seps = [0., 0.55]
for mag,sep,pa in zip(mags,seps,pas):
row = {}
row['name'] = 'some instruments'
row['band'] = 'Kepler'
row['resolution'] = 0.1
row['relative'] = True
row['separation'] = sep
row['pa'] = pa
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[11]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [246]:
mod = StarModel(dar, obs=t)
In [247]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1], use_cache=False)
In [248]:
resolved_1 = {'g':dar.mag['g'](M1, *args)}
resolved_2 = {'g':dar.mag['g'](M2, *args)}
e_mag = 0.02
mags = [resolved_1['g'], resolved_2['g']]
pas = [0, 96]
seps = [0., 0.54]
for mag,sep,pa in zip(mags,seps,pas):
row = {}
row['name'] = 'some instruments'
row['band'] = 'g'
row['resolution'] = 0.09
row['relative'] = True
row['separation'] = sep
row['pa'] = pa
row['mag'] = mag
row['e_mag'] = e_mag
df = df.append(pd.DataFrame(row, index=[13]))
t = ObservationTree.from_df(df, name='First')
t.define_models(dar)
t.print_ascii()
In [249]:
mod = StarModel(dar, obs=t)
In [250]:
%timeit mod.lnlike(p = [1.0,1.0,10,0.0,200,0.1], use_cache=False)
In [251]:
%matplotlib inline
import matplotlib.pyplot as plt
In [254]:
x = range(4,11,1)
y = [88.5,101,113,125,143,163,181]
In [259]:
plt.scatter(x,y)
plt.xlabel('numbers of nodes')
plt.ylabel(r'time($\mu$s)')
plt.title('time it takes to run lnlike method vs nodes')
Out[259]:
In [ ]: