PAOS, the Physical Optics Simulator, is a fast, modern, and reliable Python package for Physical Optics studies. It implements Physical Optics Propagation in Fresnel approximation and paraxial ray tracing to analyze complex waveform propagation through both generic and off-axes optical systems.
Project description
PAOS
Introduction
PAOS, the Physical Optics Simulator, is a fast, modern, and reliable Python package for Physical Optics studies.
It implements Physical Optics Propagation in Fresnel approximation and paraxial ray tracing to analyze complex waveform propagation through both generic and off-axes optical systems.
It handles diffractive materials and can implement wavefront aberrations as Zernike polynomials, orthonormal polynomials, or grid sags.
Table of contents
How to install
Instructions on how to install PAOS.
Install from PyPI
PAOS is available on PyPI and can be installed via pip as
pip install paos
Install from source code
PAOS is compatible (tested) with Python 3.9+
To install from source, clone the repository and move inside the directory.
Then use pip as
pip install .
Test your installation
Try importing PAOS as
python -c "import paos; print(paos.__version__)"
Or running PAOS itself with the help flag as
paos -h
Or the Graphical User Interface with the help flag as
paos_gui -h
If there are no errors then the installation was successful!
Interactive Marimo Notebooks
PAOS provides interactive marimo notebooks to showcase (some of) its capabilities. These notebooks allow you to explore PAOS features in a live, browser-based environment.
Available marimo notebooks:
notebook/paos_demo.pynotebook/material.pynotebook/psd.py
Note: These notebooks are available only in PAOS version 1.2.6 and later.
How to run a marimo notebook:
After installing PAOS, marimo is already available.
To launch a notebook (for example):
marimo run notebook/paos_demo.py
This will open the interactive notebook in your browser.
Documentation
PAOS comes with an extensive documentation, which can be built using Sphinx.
The documentation includes a tutorial, a user guide and a reference guide.
To build the documentation, install the needed packages first via poetry:
pip install poetry
poetry install --with docs
Build the html documentation
To build the html documentation, move into the docs directory and run
make html
The documentation will be produced into the build/html directory inside docs.
Open index.html to read the documentation.
Build the pdf documentation
To build the pdf, move into the docs directory and run
make latexpdf
The documentation will be produced into the build/latex directory inside docs.
Open paos.pdf to read the documentation.
The developers use pdflatex; if you have another compiler for LaTex, please refer to sphinx documentation.
How to contribute
You can contribute to PAOS by reporting bugs, suggesting new features, or contributing to the code itself.
If you wish to contribute to the code, please follow the steps described in the documentation under Developer Guide.
How to cite
@INPROCEEDINGS{2024SPIE13092E..4KB,
author = {{Bocchieri}, Andrea and {Mugnai}, Lorenzo V. and {Pascale}, Enzo},
title = "{PAOS: a fast, modern, and reliable Python package for physical optics studies}",
booktitle = {Space Telescopes and Instrumentation 2024: Optical, Infrared, and Millimeter Wave},
year = 2024,
editor = {{Coyle}, Laura E. and {Matsuura}, Shuji and {Perrin}, Marshall D.},
series = {Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series},
volume = {13092},
month = aug,
eid = {130924K},
pages = {130924K},
doi = {10.1117/12.3018333},
adsurl = {https://ui.adsabs.harvard.edu/abs/2024SPIE13092E..4KB},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paos-1.2.13.tar.gz.
File metadata
- Download URL: paos-1.2.13.tar.gz
- Upload date:
- Size: 180.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ea3dff5f0224e45d0be687999d2a537847b8eafe4e26cf03709ce1aa4a7e9f1
|
|
| MD5 |
4b3d4b9ecdd97a709b17ca366225783f
|
|
| BLAKE2b-256 |
71865836b596579e1d23dc659357bc53d2de95b246a686802a20dbe215036c6a
|
File details
Details for the file paos-1.2.13-py3-none-any.whl.
File metadata
- Download URL: paos-1.2.13-py3-none-any.whl
- Upload date:
- Size: 187.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1e0b4fa824493fe3c85a59cd064fa275c96eaca562ec7eec1826c139a2ffbb1
|
|
| MD5 |
b41c8b6228d31b3e7ceef32aaa6c7abe
|
|
| BLAKE2b-256 |
3397d1d1da41dd4cd66a5db1540bbb27efcc6233b1b5b99b2d458f1796c34fbb
|