https://github.com/ivankuznetsoff/vectorpsfs.jl
Julia package for vectorial point spread functions simulation
https://github.com/ivankuznetsoff/vectorpsfs.jl
julia psf
Last synced: 10 months ago
JSON representation
Julia package for vectorial point spread functions simulation
- Host: GitHub
- URL: https://github.com/ivankuznetsoff/vectorpsfs.jl
- Owner: IvanKuznetsoff
- License: mit
- Created: 2024-12-16T18:40:26.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-04T09:45:47.000Z (over 1 year ago)
- Last Synced: 2025-08-22T06:33:58.252Z (10 months ago)
- Topics: julia, psf
- Language: Julia
- Homepage: https://ivankuznetsoff.github.io/VectorPSFs.jl/
- Size: 456 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# VectorPSFs
[](https://ivankuznetsoff.github.io/VectorPSFs.jl/)
[](https://github.com/IvanKuznetsoff/VectorPSFs.jl/actions/workflows/CI.yml?query=branch%3Amain)
[](https://codecov.io/gh/IvanKuznetsoff/VectorPSFs.jl)
## Overview
**VectorPSFs.jl** provides a comprehensive toolkit for **computing fully vectorial point spread functions (PSFs)** under various conditions, including the presence or absence of **aberrations** induced by plane-parallel plates. The package features specialized optimizations for modeling the PSFs of **NV centers** and supports **quantitative aberration analysis** by computing Strehl ratios and identifying plate thicknesses that preserve near-diffraction-limited performance ($\mathrm{Strehl} > 0.8$).
## Features
- **PSF Computations**:
The `PSF(...)` function handles scenarios involving normal or tilted incidence, immersion objectives, and spectral weighting. Users can specify `(x, y, z)` coordinates in micrometers, a chosen objective, and optionally a plane-parallel plate with a tilt angle.
- **Aberrations**:
Refractive-index mismatched transparent materials situated in the path of converging rays introduce **aberrations**. This package enables the computation of aberrated PSFs using a fully vectorial approach.
- **Plane-Parallel Plate Materials**:
Create `PlaneParallelPlate` objects for various materials, including diamond, fused silica, BK7 (borosilicate crown), magnesium fluoride, sapphire, or custom transparent plates whose refractive indices are given by Sellmeier equation.
- **Aberration Quantification**:
Compute **Strehl ratios** across defocus ranges or tilt scenarios, and automate the search for plate thicknesses that ensure near-diffraction-limited performance (\(\mathrm{Strehl} \geq 0.8\)).
- **Microscope Objective Conditioning**:
Define `Objective` structures to capture parameters such as focal length, numerical aperture, refractive index, and immersion medium (e.g., air, oil).
- **NV-Center Integration**:
Includes a specialized workflow for NV photoluminescence, utilizing spline-interpolated spectral data to compute polychromatic PSFs at different wavelengths.
For installation and setup instructions, see the [Document](https://ivankuznetsoff.github.io/VectorPSFs.jl/).