2020
2121
2222def azel2radec (
23- az_deg : "ndarray" , el_deg : "ndarray" , lat_deg : "ndarray" , lon_deg : "ndarray" , time : datetime , usevallado : bool = False
23+ az_deg : "ndarray" , el_deg : "ndarray" , lat_deg : "ndarray" , lon_deg : "ndarray" , time : datetime , * , use_astropy : bool = True
2424) -> typing .Tuple ["ndarray" , "ndarray" ]:
2525 """
2626 viewing angle (az, el) to sky coordinates (ra, dec)
@@ -37,8 +37,8 @@ def azel2radec(
3737 observer longitude [-180, 180] (degrees)
3838 time : datetime.datetime or str
3939 time of observation
40- usevallado : bool, optional
41- default use astropy. If true, use Vallado algorithm
40+ use_astropy : bool, optional
41+ default use astropy.
4242
4343 Returns
4444 -------
@@ -48,20 +48,21 @@ def azel2radec(
4848 ecliptic declination (degrees)
4949 """
5050
51- if usevallado or Time is None : # non-AstroPy method, less accurate
52- return vazel2radec (az_deg , el_deg , lat_deg , lon_deg , time )
51+ if use_astropy and Time is not None :
5352
54- obs = EarthLocation (lat = lat_deg * u .deg , lon = lon_deg * u .deg )
53+ obs = EarthLocation (lat = lat_deg * u .deg , lon = lon_deg * u .deg )
5554
56- direc = AltAz (location = obs , obstime = Time (str2dt (time )), az = az_deg * u .deg , alt = el_deg * u .deg )
55+ direc = AltAz (location = obs , obstime = Time (str2dt (time )), az = az_deg * u .deg , alt = el_deg * u .deg )
5756
58- sky = SkyCoord (direc .transform_to (ICRS ()))
57+ sky = SkyCoord (direc .transform_to (ICRS ()))
5958
60- return sky .ra .deg , sky .dec .deg
59+ return sky .ra .deg , sky .dec .deg
60+
61+ return vazel2radec (az_deg , el_deg , lat_deg , lon_deg , time )
6162
6263
6364def radec2azel (
64- ra_deg : "ndarray" , dec_deg : "ndarray" , lat_deg : "ndarray" , lon_deg : "ndarray" , time : datetime , usevallado : bool = False
65+ ra_deg : "ndarray" , dec_deg : "ndarray" , lat_deg : "ndarray" , lon_deg : "ndarray" , time : datetime , * , use_astropy : bool = False
6566) -> typing .Tuple ["ndarray" , "ndarray" ]:
6667 """
6768 sky coordinates (ra, dec) to viewing angle (az, el)
@@ -78,8 +79,8 @@ def radec2azel(
7879 observer longitude [-180, 180] (degrees)
7980 time : datetime.datetime or str
8081 time of observation
81- usevallado : bool, optional
82- default use astropy. If true, use Vallado algorithm
82+ use_astropy : bool, optional
83+ default use astropy.
8384
8485 Returns
8586 -------
@@ -89,13 +90,11 @@ def radec2azel(
8990 elevation [degrees above horizon (neglecting aberration)]
9091 """
9192
92- if usevallado or Time is None :
93- return vradec2azel (ra_deg , dec_deg , lat_deg , lon_deg , time )
94-
95- obs = EarthLocation (lat = lat_deg * u .deg , lon = lon_deg * u .deg )
96-
97- points = SkyCoord (Angle (ra_deg , unit = u .deg ), Angle (dec_deg , unit = u .deg ), equinox = "J2000.0" )
93+ if use_astropy and Time is not None :
94+ obs = EarthLocation (lat = lat_deg * u .deg , lon = lon_deg * u .deg )
95+ points = SkyCoord (Angle (ra_deg , unit = u .deg ), Angle (dec_deg , unit = u .deg ), equinox = "J2000.0" )
96+ altaz = points .transform_to (AltAz (location = obs , obstime = Time (str2dt (time ))))
9897
99- altaz = points . transform_to ( AltAz ( location = obs , obstime = Time ( str2dt ( time ))))
98+ return altaz . az . degree , altaz . alt . degree
10099
101- return altaz . az . degree , altaz . alt . degree
100+ return vradec2azel ( ra_deg , dec_deg , lat_deg , lon_deg , time )
0 commit comments