Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document existing polarization APIs #25

Open
JLBegin opened this issue Jul 26, 2021 · 4 comments
Open

Document existing polarization APIs #25

JLBegin opened this issue Jul 26, 2021 · 4 comments
Assignees
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers

Comments

@JLBegin
Copy link
Contributor

JLBegin commented Jul 26, 2021

List all publications and public code on polarization APIs. Document features of each to help us narrow down what we want to include in our package.

@JLBegin JLBegin added documentation Improvements or additions to documentation good first issue Good for newcomers labels Jul 26, 2021
@JLBegin
Copy link
Contributor Author

JLBegin commented Aug 19, 2021

Some APIs to look at:

@JLBegin
Copy link
Contributor Author

JLBegin commented Aug 19, 2021

Example / info regarding our API

We currently have:

  • JonesMatrix
  • JonesVector and some visualization
  • Tissue API

    @mirequem @shadimasoumi I understand this part is still not well documented, so here's a little info for now: This Tissue API is used to create a birefringent material (tissue) with different layer properties (scattering, birefringence, optic axis) and propagate or backscatter a JonesVector or a Pulse(array of jones vectors of different wavelengths) or a PulseCollection(multiple Pulse with different polarization states) to retrieve the output pulse(s) (propagatedThrough or backscattered). It is mainly used to simulate PS-OCT signal (with 2 or more input polarization states) that is backscattered on birefringent tissues (see polarizartion.tests.testsTissue.TestTissue.testPSOCT()). If you are interested to play around, you can easily generate a random tissue by calling RandomTissue2D() (and .display()) and send stuff at it with vectorOut = tissue.propagate(vector) or vectorOut = tissue.backscatter(vector), etc. . A TissueStack is a single "column" of tissue (by default, RandomTissue2D will have a width of 200 (ie. 200 tissue stacks). In each stack there is a list of layers (with knowledge of their thicknesses). Multiple stacks are required because the tissue layers vary in thickness throughout the tissue.... One thing I would like to do later with this API, for example, is to have an interactive material view where you can play with the input pulse (source) or vector and the material properties to see the effect on the propagated light (retarding effect mainly), probably for teaching purposes.

We will add:

  • StokesVector
  • MuellerMatrix
  • More visualization methods for JonesMatrix, multiple JonesVector (Pulses), Tissues, etc.
  • ...

@shadimasoumi
Copy link
Contributor

Here I include what Mireille and I have done regarding this issue:

an overleaf file including all the public code on polarization APIs:
https://www.overleaf.com/8841224334gpwmhfzbpypk

brief documentation of their features:
https://docs.google.com/spreadsheets/d/1s7LxRlwB6ZRfQIgLcTKkyV8AxX0_4RFNhmK6nrnt8aA/edit?usp=sharing

@JLBegin
Copy link
Contributor Author

JLBegin commented Sep 22, 2021

Thank you this is great, I will make sure to read through that before our user-story meeting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants