MuellerMatrix class¶
- class pySCATMECH.mueller.MuellerMatrix(*x)¶
Bases:
ndarray
A class for handling Mueller matrices
- Parameters:
x (4x4 list or array of float or int, optional) – Default is a zero Mueller matrix
- Closest_NonDepolarizing()¶
Return the largest matrix in the Cloude decomposition, which may be interpreted as the closest non-depolarizing Mueller matrix.
- Returns:
M – The largest matrix in the Cloude decomposition.
- Return type:
- Cloude_Decomposition()¶
Return a list of four non-depolarizing Mueller matrices that sum to the Mueller matrix.
- Parameters:
M (MuellerMatrix) – Mueller matrix to be decomposed
- Returns:
M1, M2, M3, M4 – The decomposed Jones-Mueller matrices sorted so that M1[0,0] >= M2[0,0] >= M3[0,0] >= M4[0,0]
- Return type:
- MuellerExp()¶
Return matrix exponential.
- Returns:
L – The matrix exponent of M
- Return type:
4x4 np.array
- MuellerLog()¶
Return matrix logarithm (logarithmic decomposition).
- Returns:
The matrix logarithm of M
- Return type:
4x4 numpy.array
- Reverse_Lu_Chipman_Decomposition()¶
Return a diattenuator, retarder, and depolarizer whose ordered product is the Mueller matrix.
See: S.-Y. Lu and R.A. Chipman, “Interpretation of Mueller matrices based on polar decomposition,” J. Opt. Soc. Am. A 13, 1106-1113 (1996) and J. Morio and G. Goudail, “Influence of the order of diattenuator, retarder, and polarizer in polar decomposition of Mueller matrices,” Opt. Lett. 29, 2234-2236 (2004).
- Parameters:
M (MuellerMatrix) – The matrix to be decomposed
- Returns:
diattenuator (MuellerMatrix)
retarder (MuellerMatrix)
depolarizer (MuellerMatrix) – M = diattenuator @ retarder @ depolarizer
- Symmetric_Decomposition()¶
Perform the symmetric decomposition described by Ossikovski.
See: R. Ossikovski, J. Opt. Soc. Am. A 26, 1109-1118 (2009).
- Parameters:
M (MuellerMatrix) –
- Returns:
diatten2 (MuellerMatrix)
ret2 (MuellerMatrix)
depol (MuellerMatrix)
ret1 (MuellerMatrix)
diatten1 (MuellerMatrix) – M = diatten2 @ ret2 @ depol @ ret1 @ diatten1
- Tmax()¶
Return the maximum transmittance.
- Returns:
Tmax – The maximum transmittance of the MuellerMatrix
- Return type:
float
- Tmin()¶
Return the minimum transmittance.
- Returns:
Tmax – The minimum transmittance of the MuellerMatrix
- Return type:
float
- depolarization_index()¶
Return the depolarization index.
- Returns:
PI – The depolarization index
- Return type:
float
- diattenuation()¶
Return the diattenuation.
- Returns:
diattenuation – The diattenuation
- Return type:
float
- entropy()¶
The polarization entropy.
- Returns:
entropy – Returns the polarization entropy defined in S.R. Cloude and E. Pottier, “Concept of polarization entropy in optical scattering,” Opt. Eng. 34(6) 1599-1610 (1995).
- Return type:
float
- extinction_ratio()¶
Return the extinction ratio.
- Returns:
ER – The extinction ratio
- Return type:
float
- inverse()¶
Mueller matrix inverse.
- Returns:
M – The inverted Mueller matrix
- Return type:
- linear_diattenuation()¶
Return the linear diattenuation.
- Returns:
diattenuation – The linear diattenuation
- Return type:
float
- normalized()¶
The normalized Mueller matrix.
- Returns:
M – The Mueller matrix normalized so that its [0,0] element is 1.
- Return type:
- parity()¶
Mueller matrix with a parity conversion.
- Returns:
M – Mueller matrix for a parity conversion
- Return type:
- physically_valid()¶
Test if a matrix is physically valid.
The function physically_valid() calculates the Mueller matrix coherency matrix, which is the coherency matrix for the four Jones-Mueller matrices generated by the Pauli matrices. This coherency matrix must be a valid coherency matrix (positive semi-definite) if the matrix is the convex sum of Jones-Mueller matrices. This test is a more stringent test than valid() for the validity of the Mueller matrix.
See B.N. Simon, et al, “A complete characterization of pre-Mueller and Mueller matrices in polarization optics,” J. Opt. Soc. Am. A 27(2), 188-199 (2010).
- Returns:
bool
True if the matrix is physically valid, that is, if it is a convex
sum of Jones-Mueller matrices.
- polarizance()¶
Return the polarizance.
- Returns:
polarizance – The polarizance
- Return type:
float
- polarization_dependent_loss()¶
Return the polarization dependent loss.
- Returns:
pdl – The polarization dependent loss
- Return type:
float
- rotate(angle)¶
Return a Mueller matrix rotated by an angle.
The angle is measured clockwise looking into the beam.
- Parameters:
angle (float) – The angle in radians
- Returns:
M – Mueller matrix rotated by angle
- Return type:
- transpose()¶
Mueller matrix transpose.
- Returns:
M – The transposed Mueller matrix
- Return type:
- valid()¶
Test if a matrix is a Stokes-Stokes mapping matrix.
Uses the condition described in C.R. Givens and A.B. Kostinski, ‘A simple necessary and sufficient condition on physically realizable Mueller matrices,’ Journal of Modern Optics 40, 471-481 (1993).
- Returns:
bool
True if the matrix will always map a valid Stokes vector to a
valid Stokes vector; otherwise, False.