Skip to content

Commit c61e893

Browse files
committed
Initial editorial tweaks for JOSS publication
1 parent affb7dc commit c61e893

2 files changed

Lines changed: 44 additions & 37 deletions

File tree

docs/paper/paper.bib

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ @ARTICLE{sisters:2022
1414
}
1515

1616
@article{scipy,
17-
title={{SciPy} 1.0: Fundamental algorithms for scientific computing in Python},
17+
title={{SciPy} 1.0: Fundamental algorithms for scientific computing in {Python}},
1818
author={Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E and Haberland, Matt and Reddy, Tyler and Cournapeau, David and Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and Bright, Jonathan and others},
1919
journal={Nature Methods},
2020
volume={17},
@@ -26,7 +26,7 @@ @article{scipy
2626
}
2727

2828
@article{astropy,
29-
title={Astropy: A community Python package for astronomy},
29+
title={Astropy: A community {Python} package for astronomy},
3030
author={Astropy Collaboration and Robitaille, Thomas P. and Tollerud, Erik J. and Greenfield, Perry and Droettboom, Michael and Bray, Erik and Aldcroft, Tom and Davis, Matt and Ginsburg, Adam and Price-Whelan, Adrian M. and others},
3131
journal={Astronomy \& Astrophysics},
3232
volume={558},
@@ -43,21 +43,21 @@ @misc{setuptools
4343
}
4444

4545
@misc{pytest,
46-
title={pytest: simple powerful testing with Python},
47-
author={Krekel, Holger and others},
48-
year={2024},
49-
note={\url{https://docs.pytest.org}}
46+
author = {Holger Krekel and Bruno Oliveira and Ronny Pfannschmidt and Floris Bruynooghe and Brianna Laugher and Florian Bruhin},
47+
title = {pytest x.y},
48+
year = {2004},
49+
howpublished = {\url{https://github.com/pytest-dev/pytest}},
50+
note = {Version x.y. Contributors include Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin, and others.}
5051
}
5152

52-
@misc{h5py,
53-
title={{h5py}: HDF5 for Python},
54-
author={Collette, Andrew and contributors},
55-
year={2024},
56-
note={\url{https://www.h5py.org}}
53+
@Book{h5py,
54+
keywords = {python, hdf5},
55+
year = {2013},
56+
publisher = {O'Reilly},
57+
title = {Python and HDF5},
58+
author = {Andrew Collette}
5759
}
5860

59-
60-
6161
@INCOLLECTION{direct,
6262
author = {{Traub}, W.~A. and {Oppenheimer}, B.~R.},
6363
title = "{Direct Imaging of Exoplanets}",
@@ -87,7 +87,7 @@ @article{subscale
8787

8888
@article{special,
8989
author = {Jonathan W. Arenberg and Anthony D. Harness and Rebecca M. Jensen-Clem},
90-
title = {{Special Section on Starshades: Overview and a Dialogue}},
90+
title = {Special Section on Starshades: Overview and a Dialogue},
9191
volume = {7},
9292
journal = {Journal of Astronomical Telescopes, Instruments, and Systems},
9393
number = {2},
@@ -128,8 +128,8 @@ @BOOK{NAP26141
128128

129129
@ARTICLE{bluestein,
130130
author={Bluestein, L.},
131-
journal={IEEE Transactions on Audio and Electroacoustics},
132-
title={A linear filtering approach to the computation of discrete Fourier transform},
131+
journal={IEEE Transactions on Audio and Electroacoustics},
132+
title={A linear filtering approach to the computation of discrete {Fourier} transform},
133133
year={1970},
134134
volume={18},
135135
number={4},
@@ -171,7 +171,7 @@ @article{mennesson
171171

172172
@inproceedings{hwo_ss,
173173
author = {Stuart Shaklan and Dylan McKeithen and Doug Lisman and Philip Dumont},
174-
title = {{A starshade for NASA’s habitable worlds observatory concept: exoplanet characterization in the UV}},
174+
title = {{A starshade for NASA’s Habitable Worlds Observatory concept: exoplanet characterization in the UV}},
175175
volume = {12680},
176176
booktitle = {Techniques and Instrumentation for Detection of Exoplanets XI},
177177
editor = {Garreth J. Ruane},
@@ -245,7 +245,7 @@ @article{harness
245245

246246
@INPROCEEDINGS{hcipy,
247247
author = {{Por}, Emiel H. and {Haffert}, Sebastiaan Y. and {Radhakrishnan}, Vikram M. and {Doelman}, David S. and {van Kooten}, Maaike and {Bos}, Steven P.},
248-
title = "{High Contrast Imaging for Python (HCIPy): an open-source adaptive optics and coronagraph simulator}",
248+
title = {{High Contrast Imaging for Python (HCIPy)}: an open-source adaptive optics and coronagraph simulator},
249249
booktitle = {Adaptive Optics Systems VI},
250250
year = 2018,
251251
editor = {{Close}, Laird M. and {Schreiber}, Laura and {Schmidt}, Dirk},
@@ -316,19 +316,27 @@ @software{exovista
316316
note = {Zenodo archive, version 1.0.0}
317317
}
318318

319-
@software{exosims,
320-
author = {Savransky, Dmitry and Delacroix, Christian and Garrett, Daniel},
321-
title = {EXOSIMS: Exoplanet Open-Source Imaging Mission Simulator},
322-
version = {1.0},
323-
year = {2019},
324-
doi = {10.5281/zenodo.3376663},
325-
url = {https://github.com/dsavransky/EXOSIMS},
326-
note = {Zenodo archive}
319+
@ARTICLE{exosims,
320+
author = {{Savransky}, Dmitry and {Garrett}, Daniel},
321+
title = "{WFIRST-AFTA coronagraph science yield modeling with EXOSIMS}",
322+
journal = {Journal of Astronomical Telescopes, Instruments, and Systems},
323+
keywords = {Astrophysics - Instrumentation and Methods for Astrophysics},
324+
year = 2016,
325+
month = jan,
326+
volume = {2},
327+
eid = {011006},
328+
pages = {011006},
329+
doi = {10.1117/1.JATIS.2.1.011006},
330+
archivePrefix = {arXiv},
331+
eprint = {1511.02869},
332+
primaryClass = {astro-ph.IM},
333+
adsurl = {https://ui.adsabs.harvard.edu/abs/2016JATIS...2a1006S},
334+
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
327335
}
328336

329337
@unpublished{taaki_hwo_sim_2025,
330338
author = {Taaki, Jamila S. and Kamalabadi, Farzad and Kemball, Athol J. and Corrales, Lia and Hero, Alfred O.},
331-
title = {Efficient Exoplanet Imaging Simulations of the Habitable Worlds Observatory},
339+
title = {Efficient Exoplanet Imaging Simulations of the {Habitable Worlds Observatory}},
332340
year = {2025},
333341
note = {in preparation},
334342
}

docs/paper/paper.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,11 @@ authors:
1111
orcid: 0000-0001-5475-1975
1212
affiliation: 1
1313
corresponding: true
14-
1514
- name: Athol Kemball
1615
orcid: 0000-0001-6233-8347
1716
affiliation: "2, 3"
18-
1917
- name: Farzad Kamalabadi
2018
affiliation: 2
21-
2219
affiliations:
2320
- name: Michigan Institute for Data Science, University of Michigan, USA
2421
index: 1
@@ -33,26 +30,28 @@ bibliography: paper.bib
3330

3431
# Summary
3532

36-
A key challenge in detecting exoplanets and characterizing their atmospheres is distinguishing their faint reflected or emitted light from that of their host star. Direct imaging addresses this challenge by suppressing the star's light to reveal the orbiting exoplanet. There are two approaches to direct imaging: internal occulters, called coronagraphs, which use optics within the telescope to block starlight; and external occulters, called starshades, which are petal-shaped masks spanning tens of meters in diameter, flown in tandem with a telescope [@special]. Current direct imaging efforts using ground-based coronagraphs at the Very Large Telescope (VLT) and at the Gemini Observatory have successfully imaged young, massive exoplanets at wide separations [@Follette_2023]. However, observing a faint, Earth-like planet in the habitable zone of a Sun-like star requires extreme starlight suppression to the level of $10^{8}$ - $10^{10}$ star-to-planet flux ratio [@angel].
33+
A key challenge in detecting exoplanets and characterizing their atmospheres is distinguishing their faint reflected or emitted light from that of their host stars. Direct imaging addresses this challenge by suppressing the star's light to reveal the orbiting exoplanet. There are two approaches to direct imaging: internal occulters, called _coronagraphs_, which use optics within the telescope to block starlight; and external occulters, called _starshades_, which are petal-shaped masks spanning tens of meters in diameter, flown in tandem with a telescope [@special]. Current direct imaging efforts using ground-based coronagraphs at the Very Large Telescope (VLT) and at the Gemini Observatory have successfully imaged young, massive exoplanets at wide separations [@Follette_2023]. However, observing a faint, Earth-like planet in the habitable zone of a Sun-like star requires extreme starlight suppression to the level of $10^{8}$ - $10^{10}$ star-to-planet flux ratio [@angel].
3734

3835
Although no starshade has been flown in space yet, subscale starshades have demonstrated $\leq 10^{9}$ starlight suppression at a wavelength of 633 nm in laboratory demonstrations [@subscale], and $\leq 10^{10}$ across the broad wavelength range necessary for detecting biomarkers such as water, oxygen, and methane in computational simulations [@mennesson]. Beyond demonstrating starlight suppression, critical questions remain regarding the properties and orbital configurations of exoplanetary systems that can be observed by starshade missions, as well as optimal instrument designs. `PyStarshade` is a Python toolbox that efficiently performs optical simulations of starshades with exoplanetary scenes to assess the utility of starshades in future direct-imaging missions.
3936

40-
Several starshade concepts have been proposed but not yet adopted. These include: a 26-meter-diameter design to rendezvous with the Nancy Grace Roman Space Telescope (scheduled for launch in 2026) [@ngrst_rendezvous]; a 52-meter design as part of the Habex concept [@habex]; a 60-meter starshade operating over visible-to-infrared wavelengths 500–1,000 nm) and a 35-meter UV (250–500 nm) starshade, proposed for the Habitable Worlds Observatory (HWO), a NASA mission is in the early design phase, aiming to find and characterize a handful of Earth-like exoplanets [@NAP26141]. An example use of `PyStarshade` to evaluate the complementary role of a 60-meter HWO starshade [@hwo_ss] paired with two different 6-meter segmented and obscured telescope apertures featuring centimeter-scale details is presented in [@taaki_hwo_sim_2025] where we report $core$ $throughput$ for these apertures. Core throughput is defined as the fraction of exoplanet light recovered and is a key metric that governs the exposure time needed to image an exoplanet and therefore the overall exoplanetary yield of a mission.
37+
Several starshade concepts have been proposed but not yet adopted. These include: a 26-meter-diameter design to rendezvous with the Nancy Grace Roman Space Telescope [scheduled for launch in 2026, @ngrst_rendezvous]; a 52-meter design as part of the HabEx concept [@habex]; a 60-meter starshade operating over visible-to-infrared wavelengths (500–1,000 nm) and a 35-meter UV (250–500 nm) starshade, proposed for the Habitable Worlds Observatory (HWO), a NASA mission is in the early design phase, aiming to find and characterize a handful of Earth-like exoplanets [@NAP26141]. An example use of `PyStarshade` to evaluate the complementary role of a 60-meter HWO starshade [@hwo_ss] paired with two different 6-meter segmented and obscured telescope apertures featuring centimeter-scale details is presented in @taaki_hwo_sim_2025, where we report _core throughput_ for these apertures. Core throughput is defined as the fraction of exoplanet light recovered and is a key metric that governs the exposure time needed to image an exoplanet and therefore the overall exoplanetary yield of a mission.
4138

4239
# Statement of need
43-
`PyStarshade` provides a toolbox for performing optical simulations from source to focal plane with a configurable starshade telescope design. Complex electric fields are calculated at three planes of propagation: the starshade, the telescope aperture, and the focal plane, using the Fresnel or Fraunhofer diffraction formula where appropriate. First-order imaging characteristics of a starshade can be determined from analytic relations that depend on the size of the starshade, the size of the telescope aperture, the wavelength of the observations, and the flight distance. `PyStarshade` allows for second-order imaging characteristics to be studied, including imaging simulations with a pixelized exoplanetary input scene of integrated flux per pixel and wavelength. It also allows for the study of throughput and post-processing methods with varying starshade masks and telescope aperture masks to study throughput and post-processing methods. An example imaged scene is shown in \autoref{fig:example} at a snapshot in time and wavelength. The scene consists of a planet, a star, and a dust disk. These spectral- and time-dependent scenes were generated with ExoVista [@Stark_2022]. `PyStarshade` is intended to be flexible and efficient in studying exoplanet retrievals and instrument design.
4440

45-
![A starshade imaging simulation shown at a wavelength of 500 nm with a synthetic exoplanetary input scene (generated with ExoVista): three exoplanets are directly visible, while two more sit inside the starshade suppression zone. The scene assumes a 60 m HWO starshade paired with a 6 m segmented telescope; the planets in the scene have planet-to-star flux ratios between $10^{-8}$ and $10^{-10}$. \label{fig:example}](exo_scene.png){ width=50% }
41+
`PyStarshade` provides a toolbox for performing optical simulations from source to focal plane with a configurable starshade telescope design. Complex electric fields are calculated at three planes of propagation: the starshade, the telescope aperture, and the focal plane, using the Fresnel or Fraunhofer diffraction formula where appropriate. First-order imaging characteristics of a starshade can be determined from analytic relations that depend on the size of the starshade, the size of the telescope aperture, the wavelength of the observations, and the flight distance. `PyStarshade` allows for second-order imaging characteristics to be studied, including imaging simulations with a pixelized exoplanetary input scene of integrated flux per pixel and wavelength. It also allows for the study of throughput and post-processing methods with varying starshade masks and telescope aperture masks to study throughput and post-processing methods. An example imaged scene is shown in \autoref{fig:example} at a snapshot in time and wavelength. The scene consists of a planet, a star, and a dust disk. These spectral- and time-dependent scenes were generated with ExoVista [@Stark_2022]. `PyStarshade` is intended to be flexible and efficient in studying exoplanet retrievals and instrument design.
4642

47-
Fourier optics simulations of starshades and telescope apertures require fine spatial pixel scales to accurately model diffraction without aliasing errors across multiple stages of propagation. Traditional fast Fourier transforms (FFTs) require large zero-padding factors to accomplish this, increasing computational cost. `PyStarshade` implements the Bluestein FFT [@bluestein] (related to the chirp Z-transform) to compute optical fields at arbitrary spatial scales without zero-padding, thereby achieving greater efficiency than the FFTs or discrete Fourier transforms (DFTs). `PyStarshade` implements the Bluestein FFT using `NumPy`[@numpy] FFTs and array operations.
43+
![A starshade imaging simulation shown at a wavelength of 500 nm with a synthetic exoplanetary input scene (generated with ExoVista). Three exoplanets are directly visible, while two more sit inside the starshade suppression zone. The scene assumes a 60 m HWO starshade paired with a 6 m segmented telescope; the planets in the scene have planet-to-star flux ratios between $10^{-8}$ and $10^{-10}$. \label{fig:example}](exo_scene.png){ width=50% }
44+
45+
Fourier optics simulations of starshades and telescope apertures require fine spatial pixel scales to accurately model diffraction without aliasing errors across multiple stages of propagation. Traditional fast Fourier transforms (FFTs) require large zero-padding factors to accomplish this, increasing computational cost. `PyStarshade` implements the Bluestein FFT [@bluestein, related to the chirp Z-transform] to compute optical fields at arbitrary spatial scales without zero-padding, thereby achieving greater efficiency than the FFTs or discrete Fourier transforms (DFTs). `PyStarshade` implements the Bluestein FFT using NumPy [@numpy] FFTs and array operations.
4846

4947
Furthermore, `PyStarshade` implements a novel technique to chunk Bluestein FFT calculations, which mitigates memory bottlenecks. A set of unit tests is provided to validate the Fourier diffraction tools. `PyStarshade` precomputes fields, point spread functions, and throughput grids for different stages of the optical propagation chain. This allows flexibility in modifying instrument parameters or telescope aperture masks. `PyStarshade` optionally interfaces with HCIPy [@hcipy] to generate telescope apertures and the resulting imaging.
5048

5149
# Related software
52-
The Starshade Imaging Simulation Toolkit for Exoplanet Reconnaissance (`SISTER`) [@sisters:2022], implemented in MATLAB, performs detailed, end-to-end simulations of starshade imaging, further including instrument noise sources such as solar glint, and tools for modeling an exoplanetary system and background objects. The optical simulation pipeline of `PyStarshade` follows a similar approach to that of `SISTER`, employing a precomputed PSF basis for image simulation. However, SISTER computes diffraction from the starshade to the telescope aperture using the boundary diffraction wave method [@cady], performing a 1D integral along the starshade's edge, followed by a DFT to obtain the final PSF basis. Several other libraries focus exclusively on calculating the starshade diffraction incident on the telescope aperture. One such library is `fresnaq`, a MATLAB library that efficiently computes diffraction by a starshade via the non-uniform FFT [@barnett]. `diffraq` [@diffraq] is a Python implementation of `freqnaq`. This library also provides an implementation of the boundary diffraction wave method and tools to generate starshade masks [@harness]. The starshade masks used in `PyStarshade` are obtained from `SISTER` or were generated with `diffraq`. Outside of imaging simulations, the Exoplanet Open-Source Imaging Mission Simulator (`EXOSIMS`) [@exosims] provides methods for orbital simulation of starshades and fuel consumption calculations.
50+
51+
The Starshade Imaging Simulation Toolkit for Exoplanet Reconnaissance [`SISTER`, @sisters:2022], implemented in MATLAB, performs detailed, end-to-end simulations of starshade imaging, further including instrument noise sources such as solar glint, and tools for modeling an exoplanetary system and background objects. The optical simulation pipeline of `PyStarshade` follows a similar approach to that of `SISTER`, employing a precomputed point spread function (PSF) basis for image simulation. However, SISTER computes diffraction from the starshade to the telescope aperture using the boundary diffraction wave method [@cady], performing a 1D integral along the starshade's edge, followed by a DFT to obtain the final PSF basis. Several other libraries focus exclusively on calculating the starshade diffraction incident on the telescope aperture. One such library is `fresnaq`, a MATLAB library that efficiently computes diffraction by a starshade via the non-uniform FFT [@barnett]. `diffraq` [@diffraq] is a Python implementation of `freqnaq`. This library also provides an implementation of the boundary diffraction wave method and tools to generate starshade masks [@harness]. The starshade masks used in `PyStarshade` are obtained from `SISTER` or were generated with `diffraq`. Outside of imaging simulations, the Exoplanet Open-Source Imaging Mission Simulator [`EXOSIMS`, @exosims] provides methods for orbital simulation of starshades and fuel consumption calculations.
5352

5453
# Acknowledgements
5554

56-
This project is supported by Schmidt Sciences, LLC. We acknowledge the use of the following software libraries in our work: NumPy [@numpy], SciPy [@scipy], Astropy [@astropy], setuptools [@setuptools], h5py [@h5py], pytest [@pytest] and HCIPy [@hcipy].
55+
This project is supported by Schmidt Sciences, LLC. We acknowledge the use of the following software libraries in our work: NumPy [@numpy], SciPy [@scipy], Astropy [@astropy], setuptools [@setuptools], h5py [@h5py], pytest [@pytest] and HCIPy [@hcipy].
5756

5857
# References

0 commit comments

Comments
 (0)