https://github.com/arielmission-space/paos

PAOS is a fast, modern, and reliable Python package for Physical Optics studies.

https://github.com/arielmission-space/paos

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary

Keywords

fresnel gui open-source optics optics-simulation paos psf python ray-tracing wavefront
Last synced: 5 months ago · JSON representation

Repository

PAOS is a fast, modern, and reliable Python package for Physical Optics studies.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 4
  • Forks: 0
  • Open Issues: 0
  • Releases: 24
Topics
fresnel gui open-source optics optics-simulation paos psf python ray-tracing wavefront
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Code of conduct

README.md

PAOS

PyPI version GitHub version Downloads License Documentation Status Contributor Covenant

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.py
  • notebook/material.py
  • notebook/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

bibtex @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} }

Owner

  • Name: arielmission-space
  • Login: arielmission-space
  • Kind: organization

GitHub Events

Total
  • Release event: 16
  • Watch event: 4
  • Delete event: 28
  • Push event: 295
  • Pull request event: 49
  • Create event: 96
Last Year
  • Release event: 16
  • Watch event: 4
  • Delete event: 28
  • Push event: 295
  • Pull request event: 49
  • Create event: 96

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 24
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 0
  • Pull requests: 24
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 minute
  • Issue authors: 0
  • Pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
Pull Request Authors
  • abocchieri (23)
  • dependabot[bot] (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (1) python (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 73 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 17
  • Total maintainers: 1
pypi.org: paos

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.

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 73 Last month
Rankings
Dependent packages count: 10.0%
Average: 38.1%
Dependent repos count: 66.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

pyproject.toml pypi
  • decorator >=5.1.1
  • h5py >=3.6.0
  • ipykernel >=6.9.0
  • joblib >=1.1.0
  • matplotlib >=3.5.1
  • numpy >=1.22.2
  • photutils >=1.3.0
  • pysimplegui >=4.56.0
  • scipy >=1.8.0
  • tqdm >=4.62.3