AOtools: a Python package for adaptive optics modelling and analysis.

AOtools is a Python package that is open-source and aimed at providing tools for adaptive optics users and researchers. We present version 1.0, which contains tools for adaptive optics processing, including analysing data in the pupil plane, images and point spread functions in the focal plane, wavefront sensors, modelling of atmospheric turbulence, physical optical propagation of wavefronts, and conversion between frequently used adaptive optics and astronomical units. The main drivers behind AOtools is that it should be easy to install and use. To achieve this the project features extensive documentation, automated unit testing and is registered on the Python Package Index. AOtools is under continuous active development to expand the features available, and we encourage everyone involved in adaptive optics to become involved and contribute to the project.

[1]  Prasanth H. Nair,et al.  Astropy: A community Python package for astronomy , 2013, 1307.6212.

[2]  Tim Clark,et al.  Extruding Kolmogorov-type phase screen ribbons. , 2008, Journal of the Optical Society of America. A, Optics, image science, and vision.

[3]  K. Jarrod Millman,et al.  Python for Scientists and Engineers , 2011, Comput. Sci. Eng..

[4]  Jason D. Schmidt,et al.  Numerical Simulation of Optical Wave Propagation With Examples in MATLAB , 2010 .

[5]  Jennifer J. Hunter,et al.  Vision science and adaptive optics, the state of the field , 2017, Vision Research.

[6]  Richard W. Wilson,et al.  Determination of the profile of atmospheric optical turbulence strength from SLODAR data , 2006 .

[7]  Albert A. Michelson,et al.  Studies in Optics , 1995 .

[8]  Eric Gendron,et al.  Wavefront sensing with a brightest pixel selection algorithm , 2011, 1109.2748.

[9]  Richard W. Wilson,et al.  SLODAR: measuring optical turbulence altitude with a Shack–Hartmann wavefront sensor , 2002 .

[10]  Gaël Varoquaux,et al.  The NumPy Array: A Structure for Efficient Numerical Computation , 2011, Computing in Science & Engineering.

[11]  Peter Greenfield What Python Can Do for Astronomy , 2011 .

[12]  R. Noll Zernike polynomials and atmospheric turbulence , 1976 .

[13]  John D. Hunter,et al.  Matplotlib: A 2D Graphics Environment , 2007, Computing in Science & Engineering.

[14]  F. Roddier V The Effects of Atmospheric Turbulence in Optical Astronomy , 1981 .

[15]  C. Vérinaud,et al.  Modelling astronomical adaptive optics – I. The software package caos , 2005 .

[16]  Richard Myers,et al.  Durham adaptive optics real-time controller. , 2010, Applied optics.

[17]  Carlos Correia,et al.  Object-oriented Matlab adaptive optics toolbox , 2014, Astronomical Telescopes and Instrumentation.

[18]  A. Basden,et al.  Durham extremely large telescope adaptive optics simulation platform. , 2007, Applied optics.

[19]  O. V. D. Luehe,et al.  A study of a correlation tracking method to improve imaging quality of ground-based solar telescopes , 1983 .

[20]  A. Kolmogorov The local structure of turbulence in incompressible viscous fluid for very large Reynolds numbers , 1991, Proceedings of the Royal Society of London. Series A: Mathematical and Physical Sciences.

[21]  Eric Gendron,et al.  Method for simulating infinitely long and non stationary phase screens with optimized memory storage. , 2006, Optics express.

[22]  Yamaç Dikmelik,et al.  Fiber coupling efficiency for free-space optical communication through atmospheric turbulence , 2004, SPIE LASE.

[23]  David E. Keyes,et al.  High Performance Pseudo-analytical Simulation of Multi-Object Adaptive Optics over Multi-GPU Systems , 2014, Euro-Par.

[24]  Francois Rigaut,et al.  Simulating Astronomical Adaptive Optics Systems Using Yao , 2013 .

[25]  Andrew P. Reeves Soapy: an adaptive optics simulation written purely in Python for rapid concept development , 2016, Astronomical Telescopes + Instrumentation.

[26]  Alastair Basden,et al.  The Durham adaptive optics real-time controller: capability and Extremely Large Telescope suitability , 2012, 1205.4532.