{"id":306,"date":"2011-01-20T21:02:13","date_gmt":"2011-01-20T21:02:13","guid":{"rendered":"http:\/\/www.loft.optics.arizona.edu\/wp\/"},"modified":"2025-04-02T01:46:25","modified_gmt":"2025-04-02T01:46:25","slug":"subroutine-download","status":"publish","type":"page","link":"https:\/\/wp.optics.arizona.edu\/loft\/subroutines\/subroutine-download\/","title":{"rendered":"Subroutine Download"},"content":{"rendered":"<h2>Subroutines<\/h2>\n<p>1. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/SF_Spec_Calc.zip\">SF_Spec_Calc.zip<\/a> by Stacie Manuel<\/p>\n<p>This Matlab function calculates the polishing specification for a telescope, following the discussion by Hill in &#8220;Optical Design, Error Budget and Specifications for the Columbus Project Telescope&#8221; (Proc. SPIE 1236, 86-107 (1990)).<\/p>\n<p>2. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/zStd.zip\"> zStd.zip<\/a> by Ping Zhou<\/p>\n<p>This Matlab function generates the circular Zernike polynomials, following the discussion by Noll\u00a0 in &#8220;Zernike polynomials and atmospheric turbulence&#8221;\u00a0 (J. Opt. Soc. Am., 66, 3, 207\u2013211(1976)).\u00a0 The numbering of this set of Zernike polynomials is the same as the &#8220;Standard Zernike Polynomials&#8221; in Zemax.<\/p>\n<p>3. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/zAnnular.zip\">zAnnular.zip<\/a> by Ping Zhou<\/p>\n<p>This Matlab function generates the annular Zernike polynomials, following the discussion by Mahajan in &#8220;Zernike annular polynomials for imaging systems with annular pupils&#8221; (J. Opt. Soc. Am., Vol.71, 75-85 (1981)).\u00a0 The numbering of this set of Zernike polynomials is the same as that in Durango.<\/p>\n<p>4. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/zAnnularStd.zip\">zAnnularStd.zip<\/a> by Ping Zhou<\/p>\n<p>This Matlab function generates the annular Zernike polynomials, following the discussion by Mahajan in &#8220;Zernike annular polynomials for imaging systems with annular pupils&#8221; (J. Opt. Soc. Am., Vol.71, 75-85 (1981)).\u00a0 The numbering of this set of Zernike polynomials is the same as the &#8220;Standard Zernike Polynomials&#8221; in Zemax.<\/p>\n<p>5. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/Stitch.zip\"> Stitch.zip<\/a> by Chunyu Zhao<\/p>\n<p>This Matlab function stitches the subaperture measurements and provide a stitched map.\u00a0 The algorithm was discussed by Otsubo in &#8220;Measurement of large plane surface shapes by connecting small-aperture interferograms&#8221; (Optical Engineering, Vol.33 No.2 608-613 (1994))<\/p>\n<p>6. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OAP_normal.dll\">OAP_Normal.dll<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax dll file models an off-axis parabolic surface.\u00a0 It is useful when designing a CGH for testing an off-axis parabolic surface.\u00a0 &#8220;Param 1&#8221; for off-axis distance measured in the parent coordinate. When it is positive, the parent vertex is on the plus y direction. When it is negative, the parent vertex is on the minus y direction.<\/p>\n<p>7. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OffAxisParabola.dll\">OffAxis<\/a><a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OffAxisParabola.dll\">Parabola.dll<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax dll file models an off-axis parabola.\u00a0 It is useful when designing a CGH for testing an off-axis parabola.\u00a0 Use the same parameter as OAP_Normal.dll.<\/p>\n<p>8. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OAEA_Normal3.dll\">OAEA_Normal3.dll<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax dll file models an off-axis even asphere surface.\u00a0 All the rays incident on this surface come out normal to the surface. It is useful when designing a CGH for testing an off-axis even asphere surface. It has the same parameters as standard even asphere surface as well as<\/p>\n<p>Param 0: a rotation angle about z-axis of the off-axis distance from y-axis following the right hand rule.<br \/>\nParam 1: off-axis distance, following the same sign convention as OAP_Normal.<\/p>\n<p>9. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OffAxisEvenAsphere3.dll\">OffAxisEvenAsphere3.dll<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax dll file models an off-axis even asphere surface. Use same parameters as OAEA_Normal3.dll.<\/p>\n<p>10. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/DistortionFittingAndCorrection.zip\">DistortionFittingAndCorrection.zip<\/a> by Chunyu Zhao<\/p>\n<p>There are two Matlab functions in this zip files.\u00a0 One is for distortion fitting and the other is to correct the distortion using a series of polynomials.<\/p>\n<p>11. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/OrthogonalPoly.zip\">OrthogonalPoly.zip<\/a> by Chunyu Zhao<\/p>\n<p>This Matlab function generates the matrix converting Zernike series to a new orthonormal series in a racetrack area.\u00a0 The algorithm is discussed by Guang-ming Dai and Virendra N. Mahajan in &#8220;Nonrecursive determination of orthonormal polynomials with marix formulation,&#8221; OPTICS LETTERS, Vol.32 No.1, January, 2007.<\/p>\n<p>12. SurfaceAnalyzer by Won Hyun Park<\/p>\n<p>13. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/GET_CGHZERNCOEFF.zip\">GET_CGHZERNCOEFF.zpl<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax macro read in Zernike coefficients in the extra data and write them into a text file.<\/p>\n<p>14. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/SET_ZERNCOEFF.zip\">SET_ZERNCOEFF.zpl<\/a> by Chunyu Zhao<\/p>\n<p>This Zemax macro read in Zernike coefficients from a text file and set the extra data for the specified surface in Zemax.<\/p>\n<p>15. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/NoiseCal.zip\">NoiseCal.zip<\/a> by Ping Zhou<\/p>\n<p>This Matlab function estimates the magnitude of the random error in a map created by averaging multiple measurements.\u00a0 The detail is discussed in &#8220;Limits for interferometer calibration using random ball test&#8221; SPIE Optics and Photonics, San Diego, CA (2009).<\/p>\n<p>16. <a href=\"http:\/\/www.loft.optics.arizona.edu\/subroutine\/MLE_stitching.zip\">MLE_stitching.zip<\/a> by Ping Zhou<\/p>\n<p>This Matlab code uses the maximum-likelihood estimation to stitch the subaperture measurements. All the subaperture maps rotate with a common rotation axis.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Subroutines 1. SF_Spec_Calc.zip by Stacie Manuel This Matlab function calculates the polishing specification for a telescope, following the discussion by Hill in &#8220;Optical Design, Error Budget and Specifications for the Columbus Project Telescope&#8221; (Proc. SPIE 1236, 86-107 (1990)). 2. zStd.zip by Ping Zhou This Matlab function generates the circular Zernike polynomials, following the discussion by Noll\u00a0 in &#8220;Zernike polynomials and<\/p>\n","protected":false},"author":9,"featured_media":1872,"parent":26,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-306","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/pages\/306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/comments?post=306"}],"version-history":[{"count":3,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/pages\/306\/revisions"}],"predecessor-version":[{"id":1873,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/pages\/306\/revisions\/1873"}],"up":[{"embeddable":true,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/pages\/26"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/media\/1872"}],"wp:attachment":[{"href":"https:\/\/wp.optics.arizona.edu\/loft\/wp-json\/wp\/v2\/media?parent=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}