code: def azel2radec(az_deg: float, el_deg: float,
                 lat_deg: float, lon_deg: float,
                 time: datetime, usevallado: bool = False) -> Tuple[float, float]:
      
  
      if usevallado or Time is None:  # non-AstroPy method, less accurate
          return vazel2radec(az_deg, el_deg, lat_deg, lon_deg, time)
  
      obs = EarthLocation(lat=lat_deg * u.deg, lon=lon_deg * u.deg)
  
      direc = AltAz(location=obs, obstime=Time(str2dt(time)),
                    az=az_deg * u.deg, alt=el_deg * u.deg)
  
      sky = SkyCoord(direc.transform_to(ICRS()))
  
      return sky.ra.deg, sky.dec.deg
docs: viewing angle (az, el) to sky coordinates (ra, dec)
  
      Parameters
      ----------
      az_deg : float or numpy.ndarray of float
           azimuth [degrees clockwize from North]
      el_deg : float or numpy.ndarray of float
               elevation [degrees above horizon (neglecting aberration)]
      lat_deg : float
                observer latitude [-90, 90]
      lon_deg : float
                observer longitude [-180, 180] (degrees)
      time : datetime.datetime
             time of observation
      usevallado : bool, optional
                   default use astropy. If true, use Vallado algorithm
  
      Returns
      -------
      ra_deg : float or numpy.ndarray of float
           ecliptic right ascension (degress)
      dec_deg : float or numpy.ndarray of float
           ecliptic declination (degrees)