Se escribe un catálogo y un CMD con esta nueva información.
In [1]:
from astropy.io import ascii
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
tbl = ascii.read('n121_match.cat')
def transform(v,i):
c1f555 = [-0.09,-0.124]
c2f555 = [0.034,0.018]
c1f814 = [0.06,0.001]
c2f814 = [-0.099,0.013]
for j in range(8):
tcol = v-i
v = np.where(tcol<0.6, (tbl['f555wMAG']+c1f555[0]*tcol+c2f555[0]*tcol*tcol), (tbl['f555wMAG']+c1f555[1]*tcol+c2f555[1]*tcol*tcol))
i = np.where(tcol<0.1, (tbl['f814wMAG']+c1f814[0]*tcol+c2f814[0]*tcol*tcol), (tbl['f814wMAG']+c1f814[1]*tcol+c2f814[1]*tcol*tcol))
return v,i
tbl['V'], tbl['I'] = transform(tbl['f555wMAG'],tbl['f814wMAG'])
# Genera catalogo
data = [tbl['V'],tbl['I'],tbl['f814wALPHA'],tbl['f814wDELTA']]
ascii.write(data,'n121_ubvri.cat',delimiter='\t')
# Genera plots
fig, ax = plt.subplots(2,1,figsize=(13,20))
for axis in ax:
axis.set_xlim(-0.5,1.5)
axis.set_ylim(24,16)
axis.set_xlabel('$V-I$',fontsize=20)
axis.set_ylabel('$V$',fontsize=20)
ax[0].plot(tbl['V']-tbl['I'],tbl['V'],'k.',alpha=0.4,ms=3)
hess = ax[1].hexbin(tbl['V']-tbl['I'],tbl['V'],bins='log',gridsize=220,mincnt=1)
leg = fig.colorbar(hess,ax=ax[1])
leg.set_label('Cuentas (log)')
plt.savefig('cmd_n121_ubvri', dpi=300)
plt.show()
plt.close()
In [2]:
from isochrones.dartmouth import Dartmouth_Isochrone
iso = Dartmouth_Isochrone(bands=['V','I'])
model = iso.isochrone(age=10.021189299,feh=-1.56,distance=61000,AV=0.1272,dm=1e-5)
fig, ax = plt.subplots(figsize=(10,10))
ax.set_xlim(-0.5,1.5)
ax.set_ylim(24,16)
ax.set_xlabel('$V-I$',fontsize=20)
ax.set_ylabel('$V$',fontsize=20)
ax.plot(tbl['V']-tbl['I'],tbl['V'],'k.',alpha=0.4,ms=3)
ax.plot(model.V_mag - model.I_mag,model.V_mag,'g',lw=2)
plt.show()
plt.close()
Se obtuvo la isócrona de la imagen (línea verde). Al menos pasa cerca de los puntos obtenidos por fotometría. Sin embargo, para una mejro aproximación sería necesaria una magnitud V mayor, de forma que todo el CMD se mueva a la derecha y hacia abajo.
Se grafica en azul la línea ajustada. Se ajustarán la magnitudes en la última pregunta con tal de poder comparar esta isócrona con el ridge line y un mejor fit.
In [3]:
s = 0.22
x = []
y1 = np.arange(16.5,19.4,step=s)
y2 = np.arange(19.5,23.5,step=s)
y = np.append(y1,y2)
for i in y:
a = np.where((i<tbl['V']) & (tbl['V']<i+s) & (tbl['V']-tbl['I']>0.4))
x.append(np.median(tbl['V'][a]-tbl['I'][a]))
fig, ax = plt.subplots(figsize=(10,10))
ax.set_xlim(-0.5,1.5)
ax.set_ylim(24,16)
ax.set_xlabel('$V-I$',fontsize=20)
ax.set_ylabel('$V$',fontsize=20)
ax.plot(tbl['V']-tbl['I'],tbl['V'],'k.',alpha=0.4,ms=3)
# ajuste de polinomio a la ridge line
p = np.poly1d(np.polyfit(y,x,7))
ax.plot(p(y),y,'b',lw=2)
#nueva isocrona que se acerque a nuestra ridge line
iso = Dartmouth_Isochrone(bands=['V','I'])
model = iso.isochrone(age=9.89,feh=-1.55,distance=61000,dm=1e-5)
ax.plot(model.V_mag - model.I_mag,model.V_mag,'r',lw=2)
plt.show()
plt.close()
In [4]:
fig, ax = plt.subplots(figsize=(10,10))
ax.set_xlim(-0.5,1.5)
ax.set_ylim(24,16)
ax.set_xlabel('$V-I$',fontsize=20)
ax.set_ylabel('$V$',fontsize=20)
ax.plot(tbl['V']-tbl['I']+0.15,tbl['V']+0.15,'k.',alpha=0.4,ms=3)
#nueva isocrona que se acerque a nuestra ridge line
iso = Dartmouth_Isochrone(bands=['V','I'])
model = iso.isochrone(age=10.021189299,feh=-1.56,distance=61000,AV=0.1272,dm=1e-5)
ax.plot(model.V_mag - model.I_mag,model.V_mag,'r',lw=2)
plt.show()
plt.close()
Otras isócronas que podrían haberse utilizado son las de Teramo y las de Padova. En la literatura, ambas entregan edades mayores de este cúmulo (11.8 Gyr y 11.2 Gyr respectivamente, según katharina Glatt et al. 2008)