@spiceErrorCheck<EOL>def spkcpo(target, et, outref, refloc, abcorr, obspos, obsctr, obsref):
target = stypes.stringToCharP(target)<EOL>et = ctypes.c_double(et)<EOL>outref = stypes.stringToCharP(outref)<EOL>refloc = stypes.stringToCharP(refloc)<EOL>abcorr = stypes.stringToCharP(abcorr)<EOL>obspos = stypes.toDoubleVector(obspos)<EOL>obsctr = stypes.stringToCharP(obsctr)<EOL>obsref = stypes.stringToCharP(obsref)<EOL>state = stypes.emptyDoubleVector(<NUM_LIT:6>)<EOL>lt = ctypes.c_double()<EOL>libspice.spkcpo_c(target, et, outref, refloc, abcorr, obspos, obsctr,<EOL>obsref, state, ctypes.byref(lt))<EOL>return stypes.cVectorToPython(state), lt.value<EOL>
Return the state of a specified target relative to an "observer,"
where the observer has constant position in a specified reference
frame. The observer's position is provided by the calling program
rather than by loaded SPK files.

http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkcpo_c.html

:param target: Name of target ephemeris object.
:type target: str
:param et: Observation epoch.
:type et: float
:param outref: Reference frame of output state.
:type outref: str
:param refloc: Output reference frame evaluation locus.
:type refloc: str
:param abcorr: Aberration correction.
:type abcorr: str
:param obspos: Observer position relative to center of motion.
:type obspos: 3-Element Array of floats
:param obsctr: Center of motion of observer.
:type obsctr: str
:param obsref: Frame of observer position.
:type obsref: str
:return:
        State of target with respect to observer,
        One way light time between target and observer.
:rtype: tuple