SLSDualBeamPolarimetry#

class astropop.polarimetry.SLSDualBeamPolarimetry(retarder: str, k: float = None, zero: float = None, compute_k: bool = False, min_snr: float = None, psi_deviation: float = 0.1, iter_tolerance: float = 1e-05, max_iters: int = 100, zero_range: ~typing.List = <factory>)#

Bases: _DualBeamPolarimetry

Polarimetry computation for Stokes Least Squares algorithm.

This method is describe in [1] and consists in fitting the data using theoretical models. This method has the advantage of not need particular sets of retarder positions and can handle missing points. More datailed description of fitted equations are given in [2] and [3].

Parameters:
retarder: str

Retarder type. Must be ‘quarterwave’ or ‘halfwave’.

k: float (optional)

Normalization factor. If None, it is estimated from the data. Default is None.

zero: float (optional)

Zero position of the retarder in degrees. Defult is None. If None, it will be estimated from the data on quarterwave retarders and will be zero for halfwave retarders.

compute_k: bool (optional)

Fit the normalization factor using the data. Default is False. Conflicts with k argument.

min_snr: float (optional)

Minimum signal-to-noise ratio. Points with lower SNR will be discarded. Default is None.

psi_deviation: float (optional)

Maximum deviation of the psi position from the sequence multiple of 22.5 degrees. Default is 0.1 degrees.

iter_tolerance: float (optional)

When fitting the parameter for quarterwave retarders, the iteration stops when the difference between the previous and the current parameters is less than this tolerance. Default is 1e-5.

max_iters: int (optional)

Maximum number of iterations. Default is 100.

zero_range: list([float, float]) (optional)

Minimum and maximum acceptable values for the zero position, in degrees. Default is [0, 90].

Notes

  • The model fitting is performed by cure_fit function, using the Trust Region Reflective trf method.

  • If k or zero arguments are passed, they won’t be computed. Instead, the passed values will be used.

  • If compute_k is True, the value will be estimated from the data. For halfwave retarders, it will be estimated by the ratio of the total flux of the ordinary flux and the extraordinary flux in all positions [2]. For quarterwave retarders, it will be estimated in a iterative process described in [4].

References

Attributes Summary

compute_k

iter_tolerance

k

max_iters

min_snr

psi_deviation

zero

Methods Summary

compute(psi, f_ord, f_ext[, f_ord_error, ...])

Compute the Stokes params from ordinary and extraordinary fluxes.

Attributes Documentation

compute_k: bool = False#
iter_tolerance: float = 1e-05#
k: float = None#
max_iters: int = 100#
min_snr: float = None#
psi_deviation: float = 0.1#
zero: float = None#

Methods Documentation

compute(psi, f_ord, f_ext, f_ord_error=None, f_ext_error=None)#

Compute the Stokes params from ordinary and extraordinary fluxes.

Parameters:
psiarray_like

Retarder positions in degrees. Must be multiple of 22.5 degrees.

f_ordarray_like

Fluxes of ordinary beam. If QFloat, the errors will be considered in the parameters computation.

f_extarray_like

Fluxes of extraordinary beam. If QFloat, the errors will be considered in the parameters computation.

f_ord_errorarray_like, optional

Errors of the ordinary fluxes. Conflicts with the error of f_ord if it is a QFloat.

f_ext_errorarray_like, optional

Errors of the extraordinary fluxes. Conflicts with the error of f_ext if it is a QFloat.

Returns:
StokesParameters:

Instances containing the computed Stokes Parameters.