Sterncat / opticspy

python optics module
MIT License
458 stars 127 forks source link

Are aspherics supported now? #44

Open dibyendumajumdar opened 3 years ago

dibyendumajumdar commented 3 years ago

If so is there an example I can look at?

Sterncat commented 3 years ago

http://opticspy.org

On Sat, Feb 20, 2021 at 6:02 AM Dibyendu Majumdar notifications@github.com wrote:

If so is there an example I can look at?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBMM7PGMHS3YHADOBALS766IXANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

Hi, I saw there that asphere fitting is still pending? But I saw some code for aspherics hence my question. Also wasn't clear if there is an example with aspherics

Sterncat commented 3 years ago

There is asphere surface but no asphere furface fitting

On Sat, Feb 20, 2021 at 8:14 AM Dibyendu Majumdar notifications@github.com wrote:

Hi, I saw there that asphere fitting is still pending? But I saw some code for aspherics hence my question. Also wasn't clear if there is an example with aspherics

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44#issuecomment-782707643, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBOZ3CELUPUVQYRVNRTS77NWNANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

I don't quite follow. I would like to setup a lens configuration for example: https://nbviewer.jupyter.org/github/cameragossip/cameragossip.github.io/blob/master/lensdesigns/Nikkor-Z-Noct-58mm-f0.95.ipynb

Can I do this in opticspy? I could not find any example that uses the asphere surface.

Sterncat commented 3 years ago

Sorry for the late reply. Correction, it can't do asphere now. But it can do all-spherical surface. The example you show is a all spherical surface lens. Opticspy can do it. here's an example: https://sterncat.github.io/files/Double_Gauss.html

Thanks!

Dibyendu Majumdar notifications@github.com 于2021年2月20日周六 下午2:11写道:

I don't quite follow. I would like to setup a lens configuration for example: https://nbviewer.jupyter.org/github/cameragossip/cameragossip.github.io/blob/master/lensdesigns/Nikkor-Z-Noct-58mm-f0.95.ipynb

Can I do this in opticspy? I could not find any example that uses the asphere surface.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44#issuecomment-782757133, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBNFCUMSH5JV6KIG6FDTAAXSFANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

Hi, thanks for the response. That example does use aspheric surfaces. In rayopt they are specified as follows:

## Aspheric data
s[1].conic      = 0.0
s[1].aspherics  = [0, -3.82177E-07, -6.06486E-11, -3.80172E-15, -1.32266E-18]
s[20].conic     = 0.0
s[20].aspherics = [0, -1.15028E-06, -4.51771E-10, 2.72670E-13, -7.66812E-17]
s[28].conic     = 0.0
s[28].aspherics = [0, 3.18645E-06, -1.14718E-08, 7.74567E-11, -2.24225E-13, 3.34790E-16, -1.70470E-19]

These days almost all photo lenses have aspheric surfaces, only older generation lenses are pure spherical surfaces.

Sterncat commented 3 years ago

I see, then you may want to try Rayopt.

Dibyendu Majumdar notifications@github.com 于2021年2月24日周三 上午6:58写道:

Hi, thanks for the response. That example does use aspheric surfaces. In rayopt they are specified as follows:

Aspheric data

s[1].conic = 0.0 s[1].aspherics = [0, -3.82177E-07, -6.06486E-11, -3.80172E-15, -1.32266E-18] s[20].conic = 0.0 s[20].aspherics = [0, -1.15028E-06, -4.51771E-10, 2.72670E-13, -7.66812E-17] s[28].conic = 0.0 s[28].aspherics = [0, 3.18645E-06, -1.14718E-08, 7.74567E-11, -2.24225E-13, 3.34790E-16, -1.70470E-19]

These days almost all photo lenses have aspheric surfaces, only older generation lenses are pure spherical surfaces.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44#issuecomment-785134422, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBNHN5LCQLWE7GCMGRDTAUHZJANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

I see, then you may want to try Rayopt.

I already use Rayopt but I was looking for alternatives. I have a hobby of converting patent data into something more helpful - but I am not an optical expert and some of the data produced by rayopt doesn't match other tools.

Sterncat commented 3 years ago

What tools you use? I know some tools or program packages may help.

Dibyendu Majumdar notifications@github.com 于2021年2月24日周三 下午2:26写道:

I see, then you may want to try Rayopt.

I already use Rayopt but I was looking for alternatives. I have a hobby of converting patent data into something more helpful - but I am not an optical expert and some of the data produced by rayopt doesn't match other tools.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44#issuecomment-785425630, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBJMB6NUKCJKILTRJRTTAV4IVANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

What tools you use? I know some tools or program packages may help.

Apart from rayopt, I use GNU Optical, and also another package called KDP. Also there is a resource maintained by Bill Claff at https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBenchHub.htm.

But the difficulty is I cannot get results that agree between these ... and I am interested in working out something that can be used to measure objectively the difference between various lens designs.

dibyendumajumdar commented 3 years ago

Also planning to try https://github.com/mjhoptics/ray-optics

Sterncat commented 3 years ago

https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBench.htm is so cool!

I agree! It is really hard to get results agree with these as well as lens data transfer from one to another! Programming language also different from one to another. When I worked on Opticspy ray tracing package, I am referring to Codev results. And you can see for rayopt, the code owner more rely on Zemax. So if I were you, I will rely on CodeV or Zemax for comparison since there are the commercialize softwares. Another thing for patent data of optics you may know is that they always have some intended gap between there real system and the patent data.

Dibyendu Majumdar notifications@github.com 于2021年2月24日周三 下午3:27写道:

What tools you use? I know some tools or program packages may help.

Apart from rayopt, I use GNU Optical, and also another package called KDP. Also there is a resource maintained by Bill Claff at https://www.photonstophotos.net/GeneralTopics/Lenses/OpticalBench/OpticalBenchHub.htm .

But the difficulty is I cannot get results that agree between these ... and I am interested in working out something that can be used to measure objectively the difference between various lens designs.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Sterncat/opticspy/issues/44#issuecomment-785461345, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIRBIGXJ3COAZWRLMABQ3TAWDMXANCNFSM4X544EFQ .

dibyendumajumdar commented 3 years ago

CodeV and Zemax are so expensive I could not justify getting license - I can buy lenses instead with that money!