scalable-angular-spectrum-method-sas

Implementations of the Scalable Angular Spectrum Method

https://github.com/bionanoimaging/scalable-angular-spectrum-method-sas

Science Score: 44.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.8%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Implementations of the Scalable Angular Spectrum Method

Basic Info
  • Host: GitHub
  • Owner: bionanoimaging
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 1.32 MB
Statistics
  • Stars: 55
  • Watchers: 6
  • Forks: 6
  • Open Issues: 3
  • Releases: 0
Created about 3 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Scalable Angular Spectrum Method SAS

Implementations of the Scalable Angular Spectrum (SAS) method for optical wave propagation in Python + PyTorch and Julia Lang. The SAS allows to propagate optical waves accurately over long distances and high magnifications. It features a much higher speed than the Angular Spectrum (AS) method and is more precise than the single-step Fresnel (SFT-Fr) method. It's implementation essentially consists of three FFTs and some phase factors.

This image compares the three methods for accuracy.

The calculation time for Fresnel was 0.04s, the one for SAS around 0.12s. But AS takes around 6s because of large padding!

Publication and Citation

For more details about the mathematics and physics behind this method, see this OPTICA publication. Please consider citing this, if you find it useful: @article{Heintzmann:23, author = {Rainer Heintzmann and Lars Loetgering and Felix Wechsler}, journal = {Optica}, keywords = {Fourier transforms; Inverse design; Phase retrieval; Spatial frequency; Synthetic aperture radar; Wave propagation}, number = {11}, pages = {1407--1416}, publisher = {Optica Publishing Group}, title = {Scalable angular spectrum propagation}, volume = {10}, month = {Nov}, year = {2023}, url = {https://opg.optica.org/optica/abstract.cfm?URI=optica-10-11-1407}, doi = {10.1364/OPTICA.497809} }

License

Check the conditions of the license.

Julia Code

Tested with Julia 1.9. Download the software and install it on your computer. Open the REPL and type (type really a ] to enter the package manager. Delete the ] to go back to REPL): ```julia julia > ]add Pluto

julia > using Pluto ``` Pluto.jl is an interactive notebook environment. Download the file SAS_examples.jl. From within Pluto, open this file. Everything should go fine from now on.

Reproducibility

Pluto notebooks are highly reproducible because of the pinned versions of all dependencies. So running this notebook with Julia 1.9.1 is reproducible. You do not have to handle the versions yourself. Everything is done by Pluto.jl.

Python

Implementation in Python and PyTorch. Hence, it can be used within neural networks and automatic differentiation. See this Jupyter notebook. Install pip install numpy matplotlib torch notebook to run the Python notebook.

Implementations

There is an efficient implementation of the Angular Spectrum method and the Scalable Angular Spectrum method in WaveOpticsPropagation.jl. There is one JAX implementation in chromatix.

Bugs, Issues

Please feel free to file issues and bugs here on GitHub! Also, if you have any question regarding the paper, post it here too!

Owner

  • Name: Nanoimaging at the IPHT Leibniz Institut Jena
  • Login: bionanoimaging
  • Kind: organization
  • Location: Jena, Germany

Citation (CITATION.bib)

@article{Heintzmann:23,
author = {Rainer Heintzmann and Lars Loetgering and Felix Wechsler},
journal = {Optica},
keywords = {Fourier transforms; Inverse design; Phase retrieval; Spatial frequency; Synthetic aperture radar; Wave propagation},
number = {11},
pages = {1407--1416},
publisher = {Optica Publishing Group},
title = {Scalable angular spectrum propagation},
volume = {10},
month = {Nov},
year = {2023},
url = {https://opg.optica.org/optica/abstract.cfm?URI=optica-10-11-1407},
doi = {10.1364/OPTICA.497809}
}

GitHub Events

Total
  • Issues event: 1
  • Watch event: 9
  • Issue comment event: 4
Last Year
  • Issues event: 1
  • Watch event: 9
  • Issue comment event: 4

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 56
  • Total Committers: 2
  • Avg Commits per committer: 28.0
  • Development Distribution Score (DDS): 0.125
Past Year
  • Commits: 4
  • Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
roflmaostc f****t@m****g 49
RainerHeintzmann h****n@g****m 7
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 1 year ago

All Time
  • Total issues: 1
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ShiTan-677 (1)
  • roflmaostc (1)
Pull Request Authors
  • RainerHeintzmann (2)
  • roflmaostc (1)
Top Labels
Issue Labels
Pull Request Labels