Closed mperrin closed 6 years ago
Comment by josePhoenix Sunday Sep 11, 2016 at 20:04 GMT
What else is missing?
From a software-engineering perspective rather than an optics perspective, I would say documentation and testing. In particular, an example optical system in a notebook would be nice to play with (or just look at) for evaluating the ergonomics of the API. Also, since this models a physical system, a test case that, e.g., shows it really does recover the right Zernikes (to some precision) when used as a SH sensor would be a useful sanity check.
How does the structure seem?
See my line comments for things that stood out.
Should it be stored in separate file (as it is here) or just another class within optic.py (or something else?)
Hmm. optics.py is already almost 2000 lines, so I think it should be its own file. The existing optics in POPPY are exposed in the main namespace through judicious use of __all__
and from .modulename import *
(see https://github.com/mperrin/poppy/blob/master/poppy/__init__.py#L97-L101 for example) so you'll probably want to add a few lines to ensure poppy.Subapertures
is a valid identifier.
(It's possible there's a sensible way to split up optics.py into a package with submodules too, but that would probably be a separate PR.)
Comment by douglase Monday Sep 12, 2016 at 17:45 GMT
@josePhoenix, thanks for feedback. Yes, I thinking refactoring into some helper functions is a good idea. I have to think about the mutable arguments, thanks for the warning.
you mentioned wanting to see a notebook, do you want to see something beyond the notebook linked above? I put it in the gist because I didn't want to clog up the poppy git history with lots of iterations of notebook graphics.
Comment by josePhoenix Monday Sep 12, 2016 at 18:09 GMT
Hahah, I totally overlooked that link. (Maybe I was using my phone?)
That's great!
Comment by coveralls Tuesday Sep 20, 2016 at 17:41 GMT
Coverage decreased (-0.09%) to 64.429% when pulling b50253d8f52d9ae1a18e33574e6c44c6f589dd29 on douglase:new_lenslet_optic into b3852afcd4393d8463a3c0d7d23cd16d3c2a460c on mperrin:master.
Comment by coveralls Wednesday Nov 09, 2016 at 00:20 GMT
Coverage decreased (-0.04%) to 64.475% when pulling a977db8991ea45e17fbab2a7f6f9b4a154033f25 on douglase:new_lenslet_optic into b3852afcd4393d8463a3c0d7d23cd16d3c2a460c on mperrin:master.
Comment by coveralls Monday Nov 14, 2016 at 15:49 GMT
Coverage decreased (-0.09%) to 64.475% when pulling 6bd713b1b83b786b55e2b6cfad2e8ebafd6395b9 on douglase:new_lenslet_optic into 5df300a7c8ae481b306429e0c174f1be1b7b477a on mperrin:master.
Comment by coveralls Monday Nov 14, 2016 at 16:43 GMT
Coverage decreased (-0.2%) to 64.399% when pulling 559f5e317d30131b284779cf046a931ce125ef6f on douglase:new_lenslet_optic into 5df300a7c8ae481b306429e0c174f1be1b7b477a on mperrin:master.
Comment by coveralls Monday Jan 16, 2017 at 15:28 GMT
Coverage decreased (-0.2%) to 64.399% when pulling 4f24c2cd68958c4efe1fe86dc2b80403e67a26b1 on douglase:new_lenslet_optic into 802a249c6e03ffec760a7bfbc960c73be1c6bc2c on mperrin:master.
Comment by coveralls Monday Jan 23, 2017 at 20:46 GMT
Coverage decreased (-0.2%) to 64.399% when pulling 15459c38ccbc8a362b300fca9f781bf2425e20e4 on douglase:new_lenslet_optic into 802a249c6e03ffec760a7bfbc960c73be1c6bc2c on mperrin:master.
Comment by mperrin Monday Jul 10, 2017 at 23:04 GMT
@douglase is this optic still not ready to merge? I'm hoping to get a poppy release out soon, and my default plan is to leave this out unless you tell me you'd prefer otherwise. In which case, I see there is now a merge conflict with more recent edits in poppy_core that would need to get resolved...
Comment by douglase Tuesday Jul 11, 2017 at 00:40 GMT
I am still working on test cases for this, please leave it out. If you prefer to not have the clutter I can close the PR.
On Mon, Jul 10, 2017 at 17:05 Marshall Perrin notifications@github.com wrote:
@douglase https://github.com/douglase is this optic still not ready to merge? I'm hoping to get a poppy release out soon, and my default plan is to leave this out unless you tell me you'd prefer otherwise. In which case, I see there is now a merge conflict with more recent edits in poppy_core that would need to get resolved...
— You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/mperrin/poppy/pull/185#issuecomment-314274513, or mute the thread https://github.com/notifications/unsubscribe-auth/AA-nn6fUciKG7UPJSje-HkR8ogaLBbGdks5sMq4cgaJpZM4J5w6w .
Issue by douglase Saturday Sep 10, 2016 at 16:48 GMT Originally opened as https://github.com/mperrin/poppy/pull/185
Here's my first draft of a Shack-Hartmann simulator. Not a finished product, just getting it out there for feedback early.
I've tried to keep it general and make it a "sub_aperture" class which could feed into an IFS or other instrument that samples a wavefront via a regular grid.
Here's a demo notebook showing sampling a wavefront, generating an array of PSFs and a modal retrieval of the input wavefront (this is my first foray into SH wavefront sensing, so it's not at all optimized but it does seem to recover the right Zernikes): https://gist.github.com/douglase/9f70aaffbd683f3af5edf805847a444e
Things needed before merging:
Things that raise a Not Implemented:
Community questions:
douglase included the following code: https://github.com/mperrin/poppy/pull/185/commits