docs: def aer2eci(az: float, el: float, srange: float,
              lat0: float, lon0: float, h0: float, t: datetime,
              ell=None, deg: bool = True,
              useastropy: bool = True) -> np.ndarray:
      """
      gives ECI of a point from an observer at az, el, slant range
  
      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)
      t : datetime.datetime
          Observation time
  
      Returns
      -------
  
      Earth Centered Inertial x,y,z
  
      x : float or numpy.ndarray of float
          ECEF x coordinate (meters)
      y : float or numpy.ndarray of float
          ECEF y coordinate (meters)
      z : float or numpy.ndarray of float
          ECEF z coordinate (meters)
      """
      x, y, z = aer2ecef(az, el, srange, lat0, lon0, h0, ell, deg)
  
      return ecef2eci(np.column_stack((x, y, z)), t, useastropy)