code: def azel2radec(
      az_deg: float,
      el_deg: float,
      lat_deg: float,
      lon_deg: float,
      time: datetime,
  ) -> tuple[float, float]:
      """
      viewing angle (az, el) to sky coordinates (ra, dec)
  
      Parameters
      ----------
      az_deg : float
           azimuth [degrees clockwize from North]
      el_deg : 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 or str
             time of observation
  
      Returns
      -------
      ra_deg : float
           ecliptic right ascension (degress)
      dec_deg : float
           ecliptic declination (degrees)
      """
  
      try:
          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
      except NameError:
          return vazel2radec(az_deg, el_deg, lat_deg, lon_deg, time)
  
imports: from __future__ import annotations
  from datetime import datetime
  from .timeconv import str2dt
  from .vallado import azel2radec
  from .vallado import radec2azel
label_desc: Use image node_id 1 for calling a global function with example usage: azel2radec(az_deg, el_deg, lat_deg, lon_deg, time) and returns: sky,  sky, vazel2radec