LimbScanner.predict_limbs

giant.relative_opnav.estimators.ellipse_matching:

LimbScanner.predict_limbs(scan_center, line_of_sight_sun, target, camera_temperature)[source]

Predict the limb locations for a given target in the camera frame.

This is done by

  1. get the angle between the illumination vector and the x axis of the image

  2. Generate number_of_scan_lines scan angles evenly distributed between the sun angle - scan_range /2 the and sun angle + scan_range /2

  3. convert the image scan line directions into directions in the camera frame

  4. use Shape.find_limbs() to find the limbs of the target given the scan center and the scan directions in the camera frame

The limbs will be returned as a 3xn array in the camera frame.

This method is automatically called by extract_limbs() and will almost never be used directly, however, it is exposed for the adventurous types.

Parameters:
  • scan_center (ndarray) – the beginning of the scan in the image (pixels)

  • line_of_sight_sun (ndarray) – the line of sight to the sun in the image (pixels)

  • target (SceneObject) – The target the limbs are to be predicted for

  • camera_temperature (Real) – The temperature of the camera

Returns:

The predicted limb locations in the camera frame

Return type:

Tuple[ndarray, ndarray, ndarray]