Skip to content

Commit

Permalink
adding Smith polarimeter optimization tutorial, not in website yet
Browse files Browse the repository at this point in the history
  • Loading branch information
Jashcraf committed Sep 14, 2024
1 parent 5e6b2a7 commit deea56f
Show file tree
Hide file tree
Showing 2 changed files with 744 additions and 0 deletions.
711 changes: 711 additions & 0 deletions docs/notebooks/PolarimeterOptimization.ipynb

Large diffs are not rendered by default.

33 changes: 33 additions & 0 deletions katsu/polarimetry.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,39 @@
from scipy.optimize import curve_fit


def drrp_data_reduction_matrix(Mg, Ma, invert=False):
"""Compute the polarimetric data reduction matrix from a generator and analyzer matrix
Parameters
----------
Mg : numpy.ndarray
polarization state generator matrix
Ma : numpy.ndarray
polarization state analyzer matrix
invert : bool, optional
whether to return the pseudo-inverse of the matrix, by default False
Returns
-------
numpy.ndarray
polarimetric data reduction matrix
"""

PSA = Ma[..., 0, :]
PSG = Mg[..., :, 0]

# polarimetric data reduction matrix, flatten Mueller matrix dimension
Wmat = broadcast_kron(PSA[..., np.newaxis], PSG[..., np.newaxis])
Wmat = Wmat.reshape([*Wmat.shape[:-2], 16])

if invert:
return np.linalg.pinv(Wmat)

else:
return Wmat




def full_mueller_polarimetry(thetas, power, angular_increment,
return_condition_number = False,
Expand Down

0 comments on commit deea56f

Please sign in to comment.