code: def aer2geodetic(az: float, el: float, srange: float,
                   lat0: float, lon0: float, h0: float,
                   ell=None,
                   deg: bool = True) -> Tuple[float, float, float]:
      
      x, y, z = aer2ecef(az, el, srange, lat0, lon0, h0, ell=ell, deg=deg)
  
      return ecef2geodetic(x, y, z, ell=ell, deg=deg)
docs: gives geodetic coordinates of a point with az, el, range
      from an observer at lat0, lon0, h0
  
      Parameters
      ----------
      az : float or numpy.ndarray of float
           azimuth to target
      el : float or numpy.ndarray of float
           elevation to target
      srange : float or numpy.ndarray of float
           slant range [meters]
      lat0 : float
             Observer geodetic latitude
      lon0 : float
             Observer geodetic longitude
      h0 : float
           observer altitude above geodetic ellipsoid (meters)
      ell : Ellipsoid, optional
            reference ellipsoid
      deg : bool, optional
            degrees input/output  (False: radians in/out)
  
      Returns
      -------
  
      In reference ellipsoid system:
  
      lat : float or numpy.ndarray of float
            geodetic latitude
      lon : float or numpy.ndarray of float
            geodetic longitude
      alt : float or numpy.ndarray of float
            altitude above ellipsoid  (meters)