Skip to content

Commit

Permalink
reorder material
Browse files Browse the repository at this point in the history
  • Loading branch information
benjaminpope committed Jul 22, 2024
1 parent 195ff6f commit 90523c3
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions joss/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,17 @@ In this paper we introduce `dLux`[^dlux], an open-source Python package for diff
<!-- describe problem and relevant citations -->
One of the foundational problems in optical astronomy is that of imaging scenes at resolutions close to the diffraction limit of a telescope. One of the most stringent cases for high-dynamic-range, high-resolution imaging is exoplanet direct imaging [@Follette2023], whether with adaptive optics systems on large telescopes on Earth [@Guyon2018], or with space-based imagers such as the James Webb Space Telescope coronagraphs [@Boccaletti2022 ; @Girard2022] and interferometer [@Sivaramakrishnan2023]. In each case, a central issue is in accurately modelling the point spread function (PSF) of the telescope: the diffraction pattern by which light from a point source is spread out over the detector, which is affected by wavelength-scale irregularities at each optical surface the light encounters, and which can drown out the signals of faint planets and circumstellar material.

While there are many data-driven approaches to nonparametrically inferring and subtracting this PSF [@Cantalloube2021], the motivation for our work here is to use principled deterministic physics to model optical systems; to perform high-dimensional inferences from data, jointly about telescopes and the scenes they observe; to train neural networks to model electronics together with optics; and to produce principled, high-dimensional designs for telescope hardware. These problems necessitate a physical optics model which is fast and *differentiable*, so as to permit high-dimensional optimization by gradient descent [eg in `optax`; @optax] or sampling with Hamiltonian Monte Carlo or similar gradient-based algorithms [@Betancourt2017].
While there are many data-driven approaches to nonparametrically inferring and subtracting this PSF [@Cantalloube2021], the motivation for our work here is to use principled deterministic physics to model optical systems; to perform high-dimensional inferences from data, jointly about telescopes and the scenes they observe; to train neural networks to model electronics together with optics; and to produce principled, high-dimensional designs for telescope hardware. These problems necessitate a physical optics model which is fast and *differentiable*, so as to permit high-dimensional optimization by gradient descent [eg in `optax`; @optax] or sampling with Hamiltonian Monte Carlo or similar gradient-based algorithms [@Betancourt2017]. Physical optics is the study of the wave physics of light, and is taken to be separate from geometric optics, which is the approximation treating light as rays. A physical optics model is usually taken to simulate the propagation of light between one or more pupil planes and focal planes by the Fraunhofer or Fresnel approximation, based around Fourier transform calculations.

<!-- describe what has to happen in physical optics etc -->
Physical optics is the study of the wave physics of light, and is taken to be separate from geometric optics, which is the approximation treating light as rays. A physical optics model is usually taken to simulate the propagation of light between one or more pupil planes and focal planes by the Fraunhofer or Fresnel approximation, based around Fourier transform calculations. Non-differentiable open-source physical optics packages used in astronomy include `poppy` [@poppy], `prysm` [@prysm]; differentiable alternatives to `dLux` used in astronomy so far include `WaveDiff` [@Liaudat2023] and recent versions of `hcipy` [@hcipy].
Non-differentiable open-source physical optics packages used in astronomy include `poppy` [@poppy], `prysm` [@prysm]; differentiable alternatives to `dLux` used in astronomy so far include `WaveDiff` [@Liaudat2023] and recent versions of `hcipy` [@hcipy].

<!-- dLux is open source: briefly explain its use -->
We introduce a new open-source physical optics package, `dLux` (named for taking *partial derivatives of light*), written in Python and using `jax`. It inherits an object oriented framework from `equinox` [@kidger2021equinox], around which we build a thin wrapper `zodiax`[^zodiax] to allow for a more efficient syntax building probabilistic models in `numpyro` [@numpyro].

<!-- alternative packages outside of astronomy -->
Similar approaches using differentiable optical models have been applied in the `DeepOptics` project [@Sitzmann2018]; `WaveBlocks` [@Page2020] in microscopy; `dO` [@Wang2022] for general cameras; and in `WaveOpticsPropagation.jl` [@Wechsler24]. `dLux` similarly leverages the strengths of differentiable simulation, however a focus on generic physical optics modules enables applications spanning domains and encompasses projects from the design to data processing stages.

<!-- dLux is open source: briefly explain its use -->
We introduce a new open-source physical optics package, `dLux` (named for taking *partial derivatives of light*), written in Python and using `jax`. It inherits an object oriented framework from `equinox` [@kidger2021equinox], around which we build a thin wrapper `zodiax`[^zodiax] to allow for a more efficient syntax building probabilistic models in `numpyro` [@numpyro].


# Documentation & Case Studies
Expand Down

0 comments on commit 90523c3

Please sign in to comment.