Pylarization is a Python module that aids in processing light polarization states. For given method of polarization description it can calculate all parameters of a polarization ellipse.
The following should do, as pylarization does not have any platform-specific dependancies.
pip install pylarization
PolarizationEllipse is the base class for all classes describing different methods of describing the state of polarization.
To create an instance it is necessary to supply light amplitudes along the X and Y axes and the phase difference between the amplitudes.
light = PolarizationEllipse(0.445, 0.89, 1.57)
light = JonesVector(0.445, 0.89j)
light = StokesVector(1, 0.6, 0, 0.8)
matrix_values = numpy.matrix([[1, 0], [0, -1j]])
light = JonesMatrix(matrix_values) * JonesVector(1, -1j)
light.vector
matrix([[ 1.+0.j],
[-1.+0.j]])
matrix_values = numpy.matrix([[0.5, 0.5, 0, 0], [0.5, 0.5, 0, 0], [0 , 0, 0, 0], [0 , 0, 0, 0]]) light = MuellerMatrix(matrix_values) * StokesVector(1, 0, 0, 0) light.vector matrix([[0.5], [0.5], [0. ], [0. ]])
Florian Ratajczak, Optyka Ośrodków Anizotropowych, Wydawnictwo Naukowe PWN, Warszawa, 1994
Eugene Hecht, Optyka, PWN, Warszawa, 2012
Harland G. Tompkins, Eugene A. Irene, Handbook of Ellipsometry, William Andrew, Inc., Norwich, New York, 2005
http://kestrel.nmt.edu/~mce/Polarization.pdf
https://spie.org/publications/fg05_p07-09_polarization_ellipse?SSO=1
http://orca.phys.uvic.ca/~tatum/physopt/physopt4.pdf
https://arxiv.org/pdf/1401.1911.pdf
http://www.waves.utoronto.ca/prof/svhum/ece422/notes/03-polarization.pdf
http://www.ece.mcmaster.ca/faculty/nikolova/antenna_dload/current_lectures/L05_Polar.pdf
http://www.eecs.ucf.edu/~tomwu/course/eel6482/notes/12%20Polarization%202.pdf