def illumf(method, target, ilusrc, et, fixref, abcorr, obsrvr, spoint):
    """
    Compute the illumination angles---phase, incidence, and
    emission---at a specified point on a target body. Return logical
    flags indicating whether the surface point is visible from
    the observer's position and whether the surface point is
    illuminated.

    The target body's surface is represented using topographic data
    provided by DSK files, or by a reference ellipsoid.

    The illumination source is a specified ephemeris object.
    
    https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/illumf_c.html
    
    :param method: Computation method.
    :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, 
     Visibility flag, Illumination flag
    :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)
    visibl = ctypes.c_int()
    lit    = ctypes.c_int()
    libspice.illumf_c(method, target, ilusrc, et, fixref, abcorr, obsrvr, spoint,
                      ctypes.byref(trgepc), srfvec, ctypes.byref(phase),
                      ctypes.byref(incdnc), ctypes.byref(emissn),
                      ctypes.byref(visibl), ctypes.byref(lit))
    return trgepc.value, stypes.cVectorToPython(srfvec), \
           phase.value, incdnc.value, emissn.value, bool(visibl.value), bool(lit.value)
def illumf ( method , target , ilusrc , et , fixref , abcorr , obsrvr , spoint ) : 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 ) visibl = ctypes . c_int ( ) lit = ctypes . c_int ( ) libspice . illumf_c ( method , target , ilusrc , et , fixref , abcorr , obsrvr , spoint , ctypes . byref ( trgepc ) , srfvec , ctypes . byref ( phase ) , ctypes . byref ( incdnc ) , ctypes . byref ( emissn ) , ctypes . byref ( visibl ) , ctypes . byref ( lit ) ) return trgepc . value , stypes . cVectorToPython ( srfvec ) , phase . value , incdnc . value , emissn . value , bool ( visibl . value ) , bool ( lit . value )
Compute the illumination angles---phase, incidence, and
    emission---at a specified point on a target body. Return logical
    flags indicating whether the surface point is visible from
    the observer's position and whether the surface point is
    illuminated.

    The target body's surface is represented using topographic data
    provided by DSK files, or by a reference ellipsoid.

    The illumination source is a specified ephemeris object.
    
    https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/illumf_c.html
    
    :param method: Computation method.
    :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, 
     Visibility flag, Illumination flag
    :rtype: tuple