/
mk_radecname.py
114 lines (76 loc) · 3 KB
/
mk_radecname.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
from __future__ import division, print_function
import numpy as np
from astropy.coordinates import SkyCoord
import astropy.units as u
def mk_radecname(ra, dec, precision=0, prefix='',
shortform=False):
""" make a radec name from ra, dec e.g. HHMMSSsDDMMSS
"""
sep = ''
radec = SkyCoord(ra=ra * u.degree, dec=dec * u.degree)
if not shortform:
radecname = radec.to_string('hmsdms', decimal=False,
sep=sep,
precision=precision)
if shortform:
radec_string = radec.to_string('hmsdms', decimal=False,
sep=sep, precision=0)
radecname = radec_string[0:4] + radec_string[7:12]
radecname = np.core.defchararray.replace(radecname, ' ', '')
if prefix != '':
# radecname = prefix + radecname does not work
radecname = np.core.defchararray.add(prefix, radecname)
return str(radecname)
def mk_jname(ra, dec, sep='', prefix='J', shortform=False):
"""
http://docs.astropy.org/en/stable/api/astropy.coordinates.Angle.html#astropy.coordinates.Angle.to_string
"""
radec = SkyCoord(ra=ra * u.degree, dec=dec * u.degree, frame='icrs')
if not shortform:
jname = radec.to_string('hmsdms', decimal=False,
sep=sep, precision=2)
jname = jname.replace(' ', sep)
jname = prefix + jname
jname = jname[:-1]
if shortform:
radec_string = radec.to_string('hmsdms', decimal=False,
sep=sep, precision=0)
jname = prefix + radec_string[0:4] + radec_string[7:12]
return jname
if __name__=='__main__':
import time
import numpy as np
t0 = time.time()
n = 10000
ra = np.zeros(n)
dec = np.zeros(n)
t0 = time.time()
radecnames = mk_radecname(ra, dec, precision=0, prefix='')
print('radecnames[0]:', radecnames[0])
print('Elapsed time:', time.time() - t0)
t0 = time.time()
radecnames = mk_radecname(ra, dec, precision=0, prefix='J')
print('radecnames[0]:', radecnames[0])
print('Elapsed time:', time.time() - t0)
t0 = time.time()
for isource, source in enumerate(ra):
radecnames = mk_radecname(ra[isource], dec[isource],
precision=0, prefix='')
print('Run loop:', n)
print('Elapsed time:', time.time() - t0)
t0 = time.time()
for isource, source in enumerate(ra):
radecnames = mk_radecname(ra[isource], dec[isource],
precision=0, prefix='J')
print('Run loop:', n)
print('Elapsed time:', time.time() - t0)
ra = 180.0
dec = -0.1
radecname = mk_radecname(ra, dec, precision=1, prefix='')
print('radecname:', radecname)
ra = 180.0
dec = 0.2
radecname = mk_radecname(ra, dec, precision=0, prefix='')
print('radecname:', radecname)
radecname = mk_radecname(ra, dec, precision=1, prefix='')
print('radecname:', radecname)