comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Annular Zernike polynomials
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Annular Zernike polynomials [message #83540] Mon, 11 March 2013 12:49 Go to next message
Mats Löfdahl is currently offline  Mats Löfdahl
Messages: 263
Registered: January 2012
Senior Member
Den måndagen den 11:e mars 2013 kl. 20:04:28 UTC+1 skrev rr...@stsci.edu:
> On Sunday, March 10, 2013 5:02:41 PM UTC-4, Mats Löfdahl wrote:
>
>> Does anybody know where I can find a publicly available IDL implementation of annular Zernike polynomials? When googling for it, I find what appears to be articles that mention IDL but no pointers to actual code.
>
> Is this what you were looking for?
>
> http://solar.njit.edu/~cdenker/idl/zernike.pro

Thanks, but no. This routine implements the ordinary Zernike polynomials, that are defined and orthonormal over a circle, like a circular telescope pupil. I'm looking for annular Zernike polynomials, useful for telescope pupils that are shaped like an annulus, i.e., with a central obscuration.
Re: Annular Zernike polynomials [message #83542 is a reply to message #83540] Mon, 11 March 2013 12:04 Go to previous messageGo to next message
Russell Ryan is currently offline  Russell Ryan
Messages: 122
Registered: May 2012
Senior Member
On Sunday, March 10, 2013 5:02:41 PM UTC-4, Mats Löfdahl wrote:
> Does anybody know where I can find a publicly available IDL implementation of annular Zernike polynomials? When googling for it, I find what appears to be articles that mention IDL but no pointers to actual code.
>
>
>
> /Mats


Is this what you were looking for?

http://solar.njit.edu/~cdenker/idl/zernike.pro

R
Re: Annular Zernike polynomials [message #83634 is a reply to message #83540] Fri, 15 March 2013 09:56 Go to previous message
kagoldberg is currently offline  kagoldberg
Messages: 26
Registered: November 2012
Junior Member
I have a lot of experience with this issue: Zernike polynomials on all types of pupils.

If you use textbook definitions of the polynomials, you quickly find that they are not orthogonal on a discrete domain. That means if you care about accuracy, *any time* you pixellate a circle, you should perform a Gram-Schmidt operation to produce a new basis that is very much like the analytic Zernike basis, but contains subtle differences that make it orthogonal. Here is a reference for a *stable* Gram-Schmidt routine
http://en.wikipedia.org/wiki/GramSchmidt_process#Algorithm

Fortunately, the domain you choose is entirely arbitrary. So this process allows you to insert your discrete, annular domain, instead of a discrete circular pupil, and it works in the same way.

The coefficients you find during the Gram-Schmidt process are the elements of the transformation matrix between the analytic Zernike polynomials, and the ones that are orthogonal on your discrete domain, whatever domain you chose. That transformation matrix can be stored and reused, for example, and it's good for the domain you specified.

I have used this approach for fitting on domains with central obscurations, spiders, contamination: basically any pupil 'mask' array. Just be careful that your pupil mask does not refer to points outside of the unit circle, where it's not appropriate to use the Zernike basis.

If you do use textbook analytic Zernikes (Mahajan, etc.) you'll find that your functions won't be orthogonal, and they won't be balanced.




On Monday, March 11, 2013 12:49:28 PM UTC-7, Mats Löfdahl wrote:
> Den måndagen den 11:e mars 2013 kl. 20:04:28 UTC+1 skrev rr...@stsci.edu:
>
>> On Sunday, March 10, 2013 5:02:41 PM UTC-4, Mats Löfdahl wrote:
>
>>
>
>>> Does anybody know where I can find a publicly available IDL implementation of annular Zernike polynomials? When googling for it, I find what appears to be articles that mention IDL but no pointers to actual code.
>
>>
>
>> Is this what you were looking for?
>
>>
>
>> http://solar.njit.edu/~cdenker/idl/zernike.pro
>
>
>
> Thanks, but no. This routine implements the ordinary Zernike polynomials, that are defined and orthonormal over a circle, like a circular telescope pupil. I'm looking for annular Zernike polynomials, useful for telescope pupils that are shaped like an annulus, i.e., with a central obscuration.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Re: Storing !NULL in struct
Next Topic: qualifying object classes on the fly

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 13:47:34 PDT 2025

Total time taken to generate the page: 0.00548 seconds