LimbScannerOptions

class giant.image_processing.limb_scanning.LimbScannerOptions(psf: giant.point_spread_functions.psf_meta.PointSpreadFunction = <factory>, number_of_scan_lines: int = 51, scan_range: float = 2.356194490192345, number_of_sample_points: int = 501, brdf: giant.ray_tracer.illumination.IlluminationModel = <factory>, peak_finder: Callable[[numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]]], numpy.ndarray[tuple[Any, ...], numpy.dtype[numpy.float64]]] = <function parabolic_peak_finder_1d at 0x324f593a0>, interpolator_method: Literal['linear', 'nearest', 'slinear', 'cubic', 'quintic', 'pchip'] = 'linear')[source]
Parameters:
  • psf (PointSpreadFunction)

  • number_of_scan_lines (int)

  • scan_range (float)

  • number_of_sample_points (int)

  • brdf (IlluminationModel)

  • peak_finder (Callable[[ndarray[tuple[Any, ...], dtype[float64]]], ndarray[tuple[Any, ...], dtype[float64]]])

  • interpolator_method (Literal['linear', 'nearest', 'slinear', 'cubic', 'quintic', 'pchip'])

psf: PointSpreadFunction

The point spread function to apply to the predicted intensity lines.

This should provide a apply_1d() that accepts in a numpy array where each row is an intensity line and returns the blurred intensity lines as a numpy array.

number_of_scan_lines: int = 51

The number of scan lines to generate/limb points to extract

scan_range: float = 2.356194490192345

The extent about the illumination direction in radians in which to distribute the scan lines.

The scan lines are distributed +/- scan_range/2 about the illumination direction. This therefore should generally be less than \(\frac{\pi}{2}\) unless you are 100% certain that the phase angle is perfectly 0

number_of_sample_points: int = 501

The number of points to sample each scan line along for the extracted/predicted intensity lines

brdf: IlluminationModel

The illumination function to use to render the predicted scan lines.

peak_finder(fit_size=1)

the callable to use to return the peak of the correlation lines.

Parameters:
  • correlation_lines (ndarray)

  • fit_size (int)

Return type:

ndarray[tuple[Any, …], dtype[float64]]

interpolator_method: Literal['linear', 'nearest', 'slinear', 'cubic', 'quintic', 'pchip'] = 'linear'

The method to use from scipy’s RegularGridInterpolator.

Generally linear is more than sufficient