Skip to main content

Python optical interferometry simulation (pois)

results.png A python package providing the building blocks to simulate the operation of a ground-based optical interferometer perturbed by atmospheric seeing perturbations. It is provided as supplementary material for the book “Practical Optical Interferometry”, and is derived from the code which was used to provide data for many of the figures in the book.

The package includes functions to:

  • generate simulated atmospheric turbulent wavefront perturbations

  • correct these perturbations using adaptive optics

  • combine beams from an arbitrary number of telescopes, with or without spatial filtering, to provide complex fringe visibility measurements.

The code has been written following a functional-programming style (in other words minimising “side-effects” in the code where possible) in order to try and make it modular and extensible.

Requirements

The simulator runs under Python3 and requires numpy. Some of the test code uses astropy for manipulating and saving data tables.

Installation

On unix-like systems do

pip3 install pois

or if that does not work because of file permission errors, then

sudo pip3 install pois

Alternatively download and unpack a copy of this repository and then use

python3 setup.py install

This should install the package into Python path.

Basic usage

An interferometric simulation can be written as a for loop with some custom data processing, for example:

from pois import *

results=[]
for phaseScreens in PhaseScreens(numTelescope=3,
                                 r0=15,
                                 pupilSize=30,
                                 screenSize=1024,
                                 numIter=1000)):
    pupils=AdaptiveOpticsCorrect(phaseScreens,pupilSize=30,radialOrder=5)
    complexPupils=ComplexPupil(pupils)
    fluxes,coherentFluxes=SingleModeCombine(complexPupils)
    # process() is a user-written data processing function
    results.append(process(fluxes,coherentFluxes))

More example code using the package is in the tests directory. The file tests/test_visibility.py includes a complete simulation for determining visibility losses and single-mode fibre coupling losses as a function of the diameter of the telescopes.

Pronunciation

The package name should be pronounced as it would be in the phrase “petits pois”.

Licencing

The code is licenced under a 2-clause BSD licence (see LICENCE.txt).

Metadata

Release files for pois 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pois 0.4.0
File Size Uploaded
pois-0.4.0.tar.gz 189.2 kB Details

Release files / pois-0.4.0.tar.gz

Download URL pois-0.4.0.tar.gz
Size 189.2 kB
Tags Source
SHA-256 checksum
How to use checksums
95de3c2d34f14af374eeb8dcf3d478429f228f08a96ede283a2e5e87ef3a8b5f
BLAKE2b-256 checksum
How to use checksums
47fc7e534ae095032f9ca772b6479c098ad48fa7c60f5e1a56fd23ee106a0a21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.4.0 This release

1 release file

0.3.0

1 release file

0.2.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page