docs: def illumg(method, target, ilusrc, et, fixref, abcorr, obsrvr, spoint):
      """
      Find the illumination angles (phase, incidence, and 
      emission) at a specified surface point of a target body. 
   
      The surface of the target body may be represented by a triaxial 
      ellipsoid or by topographic data provided by DSK files. 
   
      The illumination source is a specified ephemeris object.
      param method: Computation method.
      
      https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/illumg_c.html
      
      :type method: str
      :param target: Name of target body.
      :type target: str 
      :param ilusrc: Name of illumination source.
      :type ilusrc: str
      :param et: Epoch in ephemeris seconds past J2000.
      :type et: float
      :param fixref: Body-fixed, body-centered target body frame.
      :type fixref: str
      :param abcorr: Desired aberration correction.
      :type abcorr: str
      :param obsrvr: Name of observing body.
      :type obsrvr: str
      :param spoint: Body-fixed coordinates of a target surface point.
      :type spoint: 3-Element Array of floats
      :return: Target surface point epoch, Vector from observer to target
       surface point, Phase angle at the surface point, Source incidence 
       angle at the surface point, Emission angle at the surface point, 
      :rtype: tuple
      """
      method = stypes.stringToCharP(method)
      target = stypes.stringToCharP(target)
      ilusrc = stypes.stringToCharP(ilusrc)
      et     = ctypes.c_double(et)
      fixref = stypes.stringToCharP(fixref)
      abcorr = stypes.stringToCharP(abcorr)
      obsrvr = stypes.stringToCharP(obsrvr)
      spoint = stypes.toDoubleVector(spoint)
      trgepc = ctypes.c_double(0)
      srfvec = stypes.emptyDoubleVector(3)
      phase  = ctypes.c_double(0)
      incdnc = ctypes.c_double(0)
      emissn = ctypes.c_double(0)
      libspice.illumg_c(method, target, ilusrc, et, fixref, abcorr, obsrvr, spoint,
                        ctypes.byref(trgepc), srfvec, ctypes.byref(phase),
                        ctypes.byref(incdnc), ctypes.byref(emissn))
      return trgepc.value, stypes.cVectorToPython(srfvec), \
             phase.value, incdnc.value, emissn.value