GithubHelp home page GithubHelp logo

pyxao's Introduction

pyxao

A python extreme AO library.

The goals of this library is to create a set of AO tools that are:

  1. Not too slow. i.e. a reasonable simulation (e.g. a minute of clock time) should be able to be completed overnight on a fast desktop.
  2. Ability to be parallelized.
  3. Understandable an extensible by a senior undergrad student within a couple of weeks of effort.
  4. Easy to install.
  5. Using a popular programming language, preferably a free one for student use.
  6. Able to work in the case of extreme-AO.

There are many adaptive optics libraries and codes in existence, so it may seem silly to be creating a new code here. However, none seem to be extensible easily to fit these needs. The codes I've found are:

a: COMPASS (http://compass.lesia.obspm.fr). This doesn't seem to be publicly available and much of this documentation is in French. It also appears very complex.

b: OOMAO (https://github.com/rconan/OOMAO). No longer actively supported (see CEO) but appears reasonable. Unfortunately in the proprietary MATLAB language.

c: CEO (https://github.com/rconan/CEO). A replacement of OOMAO, which includes GPU support. A very complex set of tools, that unfortunately does not include scintillation, so is inappropriate for extreme AO and difficult to extend.

d: yao (https://github.com/frigaut/yao). Again - doesn't include scintillation, and is written in the yao language. Learning this is not a useful skill for the typical physics/astro student.

e: CAOS (https://www-n.oca.eu/caos/). This is written in IDL, which is again proprietary and not the most useful language for students to learn.

f: soapy (https://github.com/soapy/soapy). Again doesn't include scintillation (although has the tools to do this) and also appears to be very incomplete and so difficult to extend quite yet.

If someone is reading this page and strongly disagrees, please contact the author!

Dependencies are numpy, scipy, astropy and pyfftw. All of these are in anaconda, except for fftw... which is a bit of a pain to install.

./configure --enable-shared --enable-float --enable-threads --enable-mpi make sudo make install ./configure --enable-shared --enable-threads --enable-mpi make sudo make install ./configure --enable-shared --enable-long-double --enable-threads --enable-mpi make sudo make install

FFTW really does help - on a quad core i7, it is about a factor of 10 speed up, and about 250 double-precision 1024 x 1024 FTs per second. For an 8-10m simulation, an array size of 512 x 512 (and ~4cm subapertures) is just fine.

pyxao's People

Contributors

mikeireland avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.