PhaseCorrector.compute_phase_correction¶
giant.relative_opnav.estimators.unresolved
:
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 usingsimple_phase_correction()
while the more accurate phase correction is performed usingrastered_phase_correction()
.- Parameters:
target_ind (int) – The index of the target in the
Scene.target_objs
attribute we are consideringtarget (SceneObject) – The actual target object we are considering. The
SceneObject.shape
attribute of this object should be aSurface
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
. IfNone
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.