def get_vsini(file_list, vsini_filename=VSINI_FILE):
"""
Get the vsini for every fits file in file_list. Uses the OBJECT keyword and a pre-tabulated vsini table.
This is really only useful for my project...
:param file_list:
:return:
"""
vsini = pd.read_csv(vsini_filename, sep='|', skiprows=8)[1:]
vsini_dict = {}
prim_vsini = []
for fname in file_list:
root = fname.split('/')[-1][:9]
if root in vsini_dict:
prim_vsini.append(vsini_dict[root])
else:
header = fits.getheader(fname)
star = header['OBJECT']
try:
v = vsini.loc[vsini.Identifier.str.strip() == star]['vsini(km/s)'].values[0]
prim_vsini.append(float(v) * 0.8)
vsini_dict[root] = float(v) * 0.8
except IndexError:
logging.warn('No vsini found for star {}! No primary star removal will be attempted!'.format(star))
prim_vsini.append(None)
return prim_vsini
评论列表
文章目录