In [1]:
try:
    reload(apogee.modelspec.ferre)
except NameError:
    import apogee.modelspec.ferre
import apogee.spec.plot as splot
from galpy.util import bovy_plot
from apogee.tools import paramIndx
numpy.random.seed(1)

A closer look at the low-[O/Fe] stars in the bulge found in APOGEE

Read the location and APOGEE IDs


In [2]:
with open('bulge-lowAlpha-id','r') as sfile:
    apids= []
    locids= []
    for line in sfile:
        if line[0] == '#': continue
        apids.append(line.split()[0])
        locids.append(int(line.split()[1]))
apids= numpy.array(apids)
locids= numpy.array(locids)
# Randomly re-arrange
randindx= numpy.random.permutation(len(locids))
apids= apids[randindx]
locids= locids[randindx]

ASPCAP fit for the first one


In [3]:
fparam= apogee.modelspec.ferre.fit(locids[1],apids[1])

In [4]:
felem= apogee.modelspec.ferre.elemfitall(locids[1],apids[1],fparam=fparam)

In [5]:
print fparam, felem


[[  3.88601200e+03   1.28680000e+00   3.13822945e-01  -6.25700000e-01
   -3.76000000e-02   8.30000000e-03   1.58100000e-01]] {'S': array([-0.4191]), 'Ni': array([-0.6961]), 'C': array([-0.6624]), 'Mn': array([-0.6884]), 'Mg': array([-0.4062]), 'Na': array([-0.8066]), 'K': array([-0.5217]), 'V': array([-0.7603]), 'Al': array([-0.476]), 'O': array([-0.4429]), 'N': array([-0.6127]), 'Si': array([-0.272]), 'Fe': array([-0.6643]), 'Ti': array([-0.5522]), 'Ca': array([-0.519])}

Let's look at the ASPCAP fit:


In [6]:
splot.waveregions(locids[1],apids[1],ext=1,zorder=1)
splot.waveregions(locids[1],apids[1],ext=3,zorder=0,overplot=True)


Oxygen in particular, because this drives the [a/Fe] abundances:


In [7]:
splot.windows(locids[1],apids[1],'O1',ext=1,zorder=1)
splot.windows(locids[1],apids[1],'O1',ext=3,zorder=0,overplot=True)


/Users/bovy/Repos/apogee/apogee/spec/window.py:88: RuntimeWarning: invalid value encountered in greater
  mask= ((win > 0.)*(True-numpy.isnan(win))).astype('int')

/Users/bovy/Repos/apogee/apogee/spec/window.py:202: RuntimeWarning: invalid value encountered in less
  *(win > 0.1)

/Users/bovy/Repos/apogee/apogee/spec/window.py:202: RuntimeWarning: invalid value encountered in greater
  *(win > 0.1)

These both look quite good. Next we calculate the chi^2 surface in (Teff,abundance) for (O,C,S,Mg,Si,Ca)


In [29]:
def plotchi2(locid,apid,nabu=21,nteff=21,abus=['O','C','S','Mg','Si','Ca']):
    fparam= apogee.modelspec.ferre.fit(locid,apid,initcannon=True)
    print fparam
    felem= apogee.modelspec.ferre.elemfitall(locid,apid,fparam=fparam)
    print felem
    figsize(18,12) 
    abudiff= (-0.5,0.5,21)
    teffs= fparam[:,paramIndx('teff')]+numpy.linspace(-250.,250.,21)
    for ii,abu in enumerate(abus):
        if abu.lower() == 'c': cm= felem[abu]-numpy.ones_like(teffs)*fparam[:,paramIndx('metals')]
        else: cm= numpy.ones_like(teffs)*fparam[:,paramIndx('c')]
        if abu.lower() == 'n': nm= felem[abu]-numpy.ones_like(teffs)*fparam[:,paramIndx('metals')]
        else: nm= numpy.ones_like(teffs)*fparam[:,paramIndx('n')]
        if abu.lower() in ['o','s','mg','si','ca','ti']: am= felem[abu]-numpy.ones_like(teffs)*fparam[:,paramIndx('metals')]
        else: am= numpy.ones_like(teffs)*fparam[:,paramIndx('alpha')]
        c2= apogee.modelspec.ferre.elemchi2([locid for teff in teffs],
                                            [apid for teff in teffs],
                                            abu,abudiff,
                                            teff=teffs,
                                            logg=numpy.ones_like(teffs)*fparam[:,paramIndx('logg')],
                                            metals=numpy.ones_like(teffs)*fparam[:,paramIndx('metals')],
                                            am=am,cm=cm,nm=nm)
        c2-= numpy.nanmin(c2)
        subplot(2,3,ii+1)
        imshow(c2,origin='lower',cmap='gray',extent=((abudiff[0],abudiff[1],teffs[0]-fparam[:,paramIndx('teff')],
                                                                             teffs[-1]-fparam[:,paramIndx('teff')])),
               aspect=1./500.,vmin=0.,vmax=30.,interpolation='nearest')
        contour(c2,origin='lower',levels=[2.3,6.18,11.8],colors='w',extent=((abudiff[0],abudiff[1],
                                                                             teffs[0]-fparam[:,paramIndx('teff')],
                                                                             teffs[-1]-fparam[:,paramIndx('teff')])),
                aspect=1./500.)
        xlabel(r'$\Delta [\mathrm{%s/Fe}]$' % abu)
        ylabel(r'$\Delta T_{\mathrm{eff}}$')
        bovy_plot.bovy_text(r'$\mathrm{%s}$' % abu,top_left=True,size=16.)
        if ii == 0: bovy_plot.bovy_text(r'$%i,\ \mathrm{%s}$' % (locid,apid),title=True,size=16.)
        tight_layout()

In [9]:
plotchi2(locids[1],apids[1],nabu=21,nteff=21)


[[  3.91280640e+03   1.29730000e+00   3.13102843e-01  -6.46500000e-01
    2.58000000e-02   4.65000000e-02   2.77200000e-01]]
{'S': array([-0.3083]), 'Ni': array([-0.6765]), 'C': array([-0.6112]), 'Mn': array([-0.6695]), 'Mg': array([-0.3937]), 'Na': array([-0.7851]), 'K': array([-0.4899]), 'V': array([-0.6785]), 'Al': array([-0.4262]), 'O': array([-0.3067]), 'N': array([-0.544]), 'Si': array([-0.2682]), 'Fe': array([-0.6533]), 'Ti': array([-0.4995]), 'Ca': array([-0.4799])}

Another few:


In [10]:
plotchi2(locids[2],apids[2],nabu=21,nteff=21)


[[  3.72695610e+03   7.36300000e-01   3.49996384e-01  -7.75900000e-01
   -8.64000000e-02   5.55000000e-02   1.67700000e-01]]
{'S': array([-0.5989]), 'Ni': array([-0.8165]), 'C': array([-0.8771]), 'Mn': array([-0.8142]), 'Mg': array([-0.4556]), 'Na': array([-1.3607]), 'K': array([-0.7564]), 'V': array([-0.8329]), 'Al': array([-0.613]), 'O': array([-0.54]), 'N': array([-0.7192]), 'Si': array([-0.5412]), 'Fe': array([-0.7847]), 'Ti': array([-0.602]), 'Ca': array([-0.5984])}

In [11]:
plotchi2(locids[3],apids[3],nabu=21,nteff=21)


[[  3.82145310e+03   8.41300000e-01   3.43325371e-01  -7.96000000e-01
   -8.32000000e-02  -2.61000000e-02   1.36500000e-01]]
{'S': array([-0.6935]), 'Ni': array([-0.9107]), 'C': array([-0.8844]), 'Mn': array([-0.8184]), 'Mg': array([-0.352]), 'Na': array([-0.6848]), 'K': array([-0.7002]), 'V': array([-0.8815]), 'Al': array([-0.6322]), 'O': array([-0.6389]), 'N': array([-0.815]), 'Si': array([-0.611]), 'Fe': array([-0.8364]), 'Ti': array([-0.7914]), 'Ca': array([-0.6719])}

In [12]:
plotchi2(locids[4],apids[4],nabu=21,nteff=21)


[[  3.79445560e+03   9.92000000e-01   3.33568175e-01  -7.09800000e-01
   -4.67000000e-02   6.26000000e-02   1.18500000e-01]]
{'S': array([-0.5694]), 'Ni': array([-0.6825]), 'C': array([-0.7712]), 'Mn': array([-0.7167]), 'Mg': array([-0.7584]), 'Na': array([-1.0326]), 'K': array([-0.974]), 'V': array([-0.7734]), 'Al': array([-0.4774]), 'O': array([-0.5497]), 'N': array([-0.6442]), 'Si': array([-0.295]), 'Fe': array([-0.7253]), 'Ti': array([-0.5594]), 'Ca': array([-0.6048])}

In [13]:
plotchi2(locids[5],apids[5],nabu=21,nteff=21)


[[  3.90946700e+03   1.41540000e+00   3.04920086e-01  -6.70600000e-01
   -2.50000000e-03   5.50000000e-02   2.00600000e-01]]
{'S': array([-0.5636]), 'Ni': array([-0.7036]), 'C': array([-0.692]), 'Mn': array([-0.7244]), 'Mg': array([-0.4656]), 'Na': array([-0.7039]), 'K': array([-0.7693]), 'V': array([-0.8233]), 'Al': array([-0.4755]), 'O': array([-0.427]), 'N': array([-0.669]), 'Si': array([-0.336]), 'Fe': array([-0.6854]), 'Ti': array([-0.6203]), 'Ca': array([-0.5545])}

In [14]:
plotchi2(locids[6],apids[6],nabu=21,nteff=21)


[[  3.91563750e+03   1.47780000e+00   3.00533531e-01  -6.30800000e-01
   -2.70000000e-02  -1.18000000e-02   1.31100000e-01]]
{'S': array([-0.4757]), 'Ni': array([-0.6947]), 'C': array([-0.6619]), 'Mn': array([-0.6757]), 'Mg': array([-0.4018]), 'Na': array([-0.6916]), 'K': array([-0.6149]), 'V': array([-0.6369]), 'Al': array([-0.5825]), 'O': array([-0.4851]), 'N': array([-0.6657]), 'Si': array([-0.513]), 'Fe': array([-0.6658]), 'Ti': array([-0.5072]), 'Ca': array([-0.609])}

A few examples with N and Ti


In [30]:
plotchi2(locids[7],apids[7],nabu=21,nteff=21,abus=['O','C','S','Mg','N','Ti'])


[[  3.75280180e+03   7.92500000e-01   3.46438553e-01  -7.25800000e-01
   -9.68000000e-02   5.42000000e-02   1.05900000e-01]]
{'S': array([-0.6272]), 'Ni': array([-0.7687]), 'C': array([-0.8298]), 'Mn': array([-0.7852]), 'Mg': array([-0.494]), 'Na': array([-0.9319]), 'K': array([-0.7994]), 'V': array([-0.83]), 'Al': array([-0.6393]), 'O': array([-0.5592]), 'N': array([-0.6323]), 'Si': array([-0.3864]), 'Fe': array([-0.7341]), 'Ti': array([-0.6995]), 'Ca': array([-0.6781])}

In [24]:
plotchi2(locids[12],apids[12],nabu=21,nteff=21,abus=['O','C','S','Mg','N','Ti'])


[[  3.64643430e+03   8.07600000e-01   3.45477635e-01  -6.96000000e-01
    8.10000000e-02   1.01200000e-01   2.59300000e-01]]
{'S': array([-0.4031]), 'Ni': array([-0.67]), 'C': array([-0.6355]), 'Mn': array([-0.6424]), 'Mg': array([-0.3851]), 'Na': array([-0.7138]), 'K': array([-0.6399]), 'V': array([-0.6391]), 'Al': array([-0.5453]), 'O': array([-0.3728]), 'N': array([-0.5741]), 'Si': array([-0.4106]), 'Fe': array([-0.6842]), 'Ti': array([-0.4502]), 'Ca': array([-0.6002])}

In [27]:
plotchi2(locids[15],apids[15],nabu=21,nteff=21,abus=['O','C','S','Mg','N','Ti'])


[[  3.84649340e+03   1.26840000e+00   3.15081966e-01  -5.90000000e-01
    4.00000000e-03  -5.03000000e-02   1.61600000e-01]]
{'S': array([-0.4153]), 'Ni': array([-0.5723]), 'C': array([-0.5866]), 'Mn': array([-0.5869]), 'Mg': array([-0.2785]), 'Na': array([-0.812]), 'K': array([-0.6139]), 'V': array([-0.6574]), 'Al': array([-0.3391]), 'O': array([-0.3676]), 'N': array([-0.64]), 'Si': array([-0.2574]), 'Fe': array([-0.5669]), 'Ti': array([-0.243]), 'Ca': array([-0.6904])}

In [ ]: