libera_utils.geolocation.sub_observer_point#

libera_utils.geolocation.sub_observer_point(target: SpiceBody, et: float, frame: SpiceFrame, observer: SpiceBody, *, abcorr: str = 'NONE', method: str = 'NEAR POINT/ELLIPSOID')#

Computes the cartesian coordinates of the sub-observer point at time et and the observer altitude above the point. Units in km.

Parameters:
  • target (spice_utils.SpiceBody) – Body on which the sub point will be calculated (usually a planetary body).

  • et (float or numpy.ndarray) – Ephemeris time of observation.

  • frame (spice_utils.SpiceFrame) – Reference frame for returned vectors.

  • observer (spice_utils.SpiceBody) – The object from which to calculate the sub point (e.g. a spacecraft). A-B correction is applied based on the distance between observer and sub observer point.

  • abcorr (str, Optional) – String delineating what kind of A-B light time correction to perform. Default is ‘NONE’.

  • method (str, Optional) – String specifying what kind of method to use to find the vector between the observer and the target. Default is NEAR POINT/ELLIPSOID, which uses the nearest point on the ellipsoid rather than drawing a line through the center of the ellipsoid.

Returns:

Cartesian point on the target body surface in the specified reference frame and also the euclidean distance between the observer and the sub point in order: [x, y, z], obs_alt

Return type:

numpy.ndarray, float