-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathget_extinction.py
66 lines (56 loc) · 1.85 KB
/
get_extinction.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from astropy.table import Table
from astropy.io import ascii
from astropy.coordinates import SkyCoord
from astropy import units as u
from dustmaps.bayestar import BayestarWebQuery
from dustmaps.sfd import SFDWebQuery
from dustmaps.marshall import MarshallQuery
import os
def main():
data = ascii.read("analysis/distance_1arcsec.csv")
selected_obj = data['obj_name']
ra_deg = []
dec_deg = []
for name in selected_obj:
position = SkyCoord.from_name(name)
ra = position.ra
ra_deg.append(ra.deg * u.deg)
dec = position.dec
dec_deg.append(dec.deg * u.deg)
coef = 2.742
distance = data['r_med_geo']
d = []
for dis in distance:
d.append(dis * u.parsec)
q = BayestarWebQuery(version='bayestar2019')
sfd = SFDWebQuery()
E_baye = []
for i in range(len(d)):
c_icrs = SkyCoord(ra=ra_deg[i], dec=dec_deg[i], distance=d[i], frame='icrs')
c_gla = c_icrs.galactic
E_baye.append(coef * q(c_gla, mode='median'))
coords = SkyCoord(ra_deg, dec_deg, frame='icrs')
E_sfd = coef * sfd(coords)
coef = 2.742
distance = data['r_med_geo']
d = []
for dis in distance:
d.append(dis * u.parsec)
q2 = MarshallQuery()
E_marsh = []
for i in range(len(d)):
c_icrs = SkyCoord(ra=ra_deg[i], dec=dec_deg[i], distance=d[i], frame='icrs')
c_gla = c_icrs.galactic
E_marsh.append(coef * q2(c_gla))
t_out = Table()
t_out['name'] = selected_obj
t_out['l, b'] = coords.galactic
t_out['distance'] = distance
t_out['extinction_baye'] = E_baye
t_out['extinction_sfd'] = E_sfd
t_out['extinction_marshall'] = E_marsh
direc = 'analysis'
os.makedirs(direc, exist_ok=True)
t_out.write(os.path.join(direc, f'extinction_1arcsec.csv'), format = 'ascii.csv', overwrite=True)
if __name__ == '__main__':
main()