Other polarization operations

pySCATMECH.mueller.HermitianToMueller(h)

Convert a Hermitian coherency matrix to its equivalent Mueller matrix.

Parameters:

h (ndarray((4,4),complex)) – A Hermitian coherency matrix

Returns:

m – The Mueller matrix form of the coherency matrix.

Return type:

MuellerMatrix

pySCATMECH.mueller.JonesDiattenuator(diatten=None, angle=0, DOCP=None, jones=None)

Return the Jones matrix for a homogeneous diattenuator with a given phase and axes.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Returns:

jones – Jones matrix diattenuator

Return type:

2x2 numpy array of complex

pySCATMECH.mueller.JonesMueller(jones)

Convert a Jones matrix to a Mueller matrix

Parameters:

jones (2x2 list or array of int, float, or complex) – A Jones matrix

Returns:

mueller – The Mueller matrix associated with jones.

Return type:

MuellerMatrix

pySCATMECH.mueller.JonesPolarizer(diatten=None, angle=0, DOCP=None, jones=None)

Return the Jones matrix for a homogeneous diattenuator with a given phase and axes.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Returns:

jones – Jones matrix diattenuator

Return type:

2x2 numpy array of complex

pySCATMECH.mueller.JonesRetarder(phase=None, angle=0, DOCP=None, jones=None)

Return the Jones matrix for a homogeneous retarder with a given phase and axes.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Returns:

jones – Jones matrix retarder

Return type:

2x2 numpy array of complex

pySCATMECH.mueller.JonesRotator(angle)

Return a Jones matrix that rotates the polarization by angle”

Parameters:

angle (float) – Angle that matrix will rotate in radians

Returns:

R – The rotation matrix

Return type:

2x2 np.array

pySCATMECH.mueller.JonesStokes(jones)

Convert a Jones vector to a Stokes vector

Parameters:

jones (2 element list or array of int, float, or complex) –

pySCATMECH.mueller.JonesUnit()

Return a unit Jones matrix

pySCATMECH.mueller.JonesZero()

Return a zero Jones matrix

pySCATMECH.mueller.MuellerDiagonal(a)

Return a diagonal Mueller matrix

Parameters:

a (4 element list or array of float) –

pySCATMECH.mueller.MuellerDiattenuator(diatten=0, angle=0, DOCP=None, jones=None)

Return the Mueller matrix for a homogeneous diattenuator with a given phase and axis.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Return type:

MuellerMatrix diattenuator

pySCATMECH.mueller.MuellerExp(L)

Return matrix exponential.

Returns:

L – The matrix exponent of M

Return type:

4x4 np.array

pySCATMECH.mueller.MuellerPolarizer(diatten=0, angle=0, DOCP=None, jones=None)

Return the Mueller matrix for a homogeneous diattenuator with a given phase and axis.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Return type:

MuellerMatrix diattenuator

pySCATMECH.mueller.MuellerRetarder(phase=0, angle=0, DOCP=None, jones=None)

Return the Mueller matrix for a homogeneous retarder with a given phase and axis.

Parameters:
  • angle (float) – Angle (in radians) of axis (default is 0)

  • DOCP (float) – Degree of circular polarization of the axis. Cannot define both DOCP and jones.

  • jones (2-element list of complex) – Jones vector associated with axis Cannot define both DOCP and jones. (Default is [1,0])

Returns:

jones – Jones matrix retarder

Return type:

2x2 numpy array of complex

pySCATMECH.mueller.MuellerRotator(angle)

Return a Mueller matrix that rotates the polarization by angle”

Parameters:

angle (float) – Angle that matrix will rotate in radians

Returns:

R – The rotation matrix

Return type:

MuellerMatrix

pySCATMECH.mueller.MuellerToHermitian(m)

Convert a Mueller matrix into its equivalent Hermitian coherency matrix.

Parameters:

m (MuellerMatrix) – The Mueller matrix to be converted.

Returns:

h – Hermitian coherence matrix

Return type:

4x4 complext np.array

pySCATMECH.mueller.MuellerUnit(attenuation=1)

Return a unit Mueller matrix

Parameters:

attenuation (float, optional) – Default is 1

pySCATMECH.mueller.MuellerZero()

Return a zero Mueller matrix

Returns:

m – Zero matrix

Return type:

MuellerMatrix

pySCATMECH.mueller.Polarization(*args, **kwargs)

Return a StokesVector with a given name

Parameters:
  • args (str or float) –

    Can be any of:

    P or p for p-polarization S or s for s-polarization L or l for LCP-polarization R or r for RCP-polarization U or u for unpolarized any float for linear polarization at angle name in radians

  • state (str) – Any of the aboves strings that can be used in args

  • I (float, optional) – The intensity. (Default is 1)

  • DOP (float, optional) – The degree of polarization. (Default is 1)

  • angle (float, optional) – The principal angle of the polarization. (Default is set by args or state.)

  • ellipticity (float) – The ellipticity of the polarization

Returns:

s – The Stokes vector with the given parameters

Return type:

StokesVector

pySCATMECH.mueller.Sensitivity(*args, **kwargs)

Return a StokesVector with a given name that corresponds to a sensitivity.

Parameters:

name (str or float) –

Can be any of:

P or p for p-polarization S or s for s-polarization L or l for LCP-polarization R or r for RCP-polarization U or u for unpolarized any float for linear polarization at angle name

pySCATMECH.mueller.StokesZero()

Return zero Stokes vector