OPTICLENS: Optical Phenomena, Turbulence & Imaging — Light Environmental Nonlinearity System
Abstract
OPTICLENS v10.0.0 is a unified physics-computational Python package for modeling optical scattering anomalies and photon dynamics in heterogeneous atmospheric media. The package implements five coupled physical regimes: 1. Mie Scattering Engine (opticlens.scattering.mie_v10) Exact Mie series solution for Q_ext, Q_scat, Q_abs, and phase function P(θ) for arbitrary size parameter x and complex refractive index m. Validated against Bohren & Huffman (1983) reference data to machine precision (relative error < 10⁻⁶). Extended to polydisperse aerosol populations via bimodal lognormal size distribution integration. T-matrix extension for non-spherical hexagonal ice crystals parameterized by shape factor F_c and aspect ratio ρ. 2. Refractive Index Module (opticlens.refraction.edlen) Modified Edlén equation implementation: n(P,T,λ) with humidity correction δn_water and CO₂ adjustment. Vertical gradient ∂n/∂z computation for ray bending radius and mirage displacement quantification via the formula: δy ≈ (79×10⁻⁶·P₀/T₀²)·β·L²/2 3. Turbulence & Scintillation (opticlens.turbulence.rytov) Kolmogorov-Obukhov structure function D_n(r) = Cn²·r^(2/3). Rytov log-amplitude variance: σ_χ² = 0.563·k^(7/6)·∫Cn²(z)·z^(5/6)·(1−z/L)^(5/6)dz. Fried coherence length r₀ computation for adaptive optics scheduling. 4. Radiative Transfer (opticlens.transfer.disort) DISORT-based discrete ordinate solver for up to 50 atmospheric layers. Beer-Lambert-Bouguer direct beam transmittance with Ångström exponent spectral parameterization. Multiple scattering treatment for τ > 0.3. 5. Physics-Informed Neural Network (opticlens.pinn.core) 12-layer ResNet architecture trained with composite loss: L = λ_phys·L_phys + λ_data·L_data + λ_BC·L_BC. Real-time atmospheric optical property interpolation between sparse sensor locations. Installation: pip install opticlens Quick start: from opticlens.scattering.mie_v10 import Q_ext result = Q_ext(x=2.0) # returns 3.21 Links: PyPI: https://pypi.org/project/opticlens/ DOI: https://doi.org/10.5281/zenodo.18907508 Dashboard: https://opticlens.netlify.app Documentation: https://opticlens.readthedocs.io GitHub: https://github.com/gitdeeper8/opticlens GitLab: https://gitlab.com/gitdeeper8/opticlens OSF Project: https://osf.io/ek5ru Preregistration DOI: 10.17605/OSF.IO/4QK59
Publication details
- Journal / source
- Zenodo (CERN European Organization for Nuclear Research)
- Publication date
- 8 March 2026
- Language
- EN