PhaseCorrector.compute_phase_correction

giant.relative_opnav.estimators.unresolved:

PhaseCorrector.compute_phase_correction(target_ind, target, temperature, line_of_sight_sun_image=None)[source]

The method computes the phase correction assuming a spherical target.

The phase correction attempts to move the observed center-of-brightness measurement to be closer to what the actual observed center-of-figure of the object should be (akin to what you would receive from something like cross correlation).

This is done by either assuming a spherical target, computing the apparent diameter of the assumed spherical target, and then computing the phase correction in the sun direction using a predefined model of phase shift for a spherical target, or by using rasterization to render the target and computing the shift in the center of brightness to the center of figure using the rasterized illumination data. Which technique is used is set by the phase_correction_type. The simple phase correction is performed using simple_phase_correction() while the more accurate phase correction is performed using rastered_phase_correction().

Parameters:
  • target_ind (int) – The index of the target in the Scene.target_objs attribute we are considering

  • target (SceneObject) – The actual target object we are considering. The SceneObject.shape attribute of this object should be a Surface if the raster method is chosen.

  • temperature (Real) – The temperature of the camera at the time the image was captured. This is used for projecting points into the camera

  • line_of_sight_sun_image (ndarray | None) – The line of sight from the sun towards the target in the image. This is essentially the slope of the line from the target to the sun projected into the image. This should be a length 2 array or None. If None it will be computed from the scene if required.

Returns:

The phase correction as a length 2 numpy array which goes from the observed center of brightness to what the center of figure should be.