<<

A FRAMEWORK FOR OPTIMIZING TARGETS FOR THE

JAMES WEBB SPACE TELESCOPE

f t * A thesis presented to the faculty of ^ San Francisco State University In partial fulfilment of t h y * The Requirements for The Degree

Master of Science In Physics with a Concentration in Astronomy

by

Charles Daniel Fortenbach

San Francisco, California

December 2018 Copyright by Charles Daniel Fortenbach 2018 CERTIFICATION OF APPROVAL

I certify that I have read A FRAMEWORK FOR OPTIMIZING EXO­

PLANET TARGETS FOR THE JAMES WEBB SPACE TELESCOPE by Charles Daniel Fortenbach and that in my opinion this work meets the criteria for approving a thesis submitted in partial fulfillment of the requirements for the degree: Master of Science in Physics with a Con­ centration in Astronomy at San Francisco State University.

Associate Professor of Physics and Astronomy

Dr. Jqspph Barranco Dept. Chair, Physics & Astronomy Associate Professor of Physics and Astronomy

Dr. Courtney Dressing-£i—1 Assistant Professor of Astronomy University of California Berkeley A FRAMEWORK FOR OPTIMIZING EXOPLANET TARGETS FOR THE

JAMES WEBB SPACE TELESCOPE

Charles Daniel Fortenbach San Francisco State University 2018

The James Webb Space Telescope (JWST) will devote a significant amount of ob­ serving time to the study of . It will not be serviceable as was the Hubble

Space Telescope, and therefore the spacecraft/instruments will have a relatively lim­ ited life. It is important to get as much science as possible out of this limited observing time. We provide an analysis framework (including a suite of computer tools) that can be used to optimize the list of exoplanet targets for atmospheric char­ acterization. The tools take survey data from K2, TESS, or other sources; estimate planet masses as required; generate model spectra based on potential atmospheric characteristics; and then, given the capabilities of the various JWST instruments, determine an optimal target set. For a simulated survey data set of 1984 targets we categorize and rank the targets by observation time required to detect an atmo­ sphere.

I certify that the Abstract is a correct representation of the content of this thesis.

______Chair, Thesis Committee Date ACKNOWLEDGMENTS

A number of people contributed to this Master’s thesis project.

First, I would like to thank the faculty of the Physics and Math depart­ ments at the College of San Mateo, and in particular. Prof. Mohsen

Janatpour, for helping to bring me back up to speed on undergraduate

Physics and Math and for convincing me that I could still do school.

I would like to thank my SFSU classmate, Josh Lamstein, for his time and patience giving me several LateX tutorials. I also would like to thank another classmate, Shervin Sahba, who pointed me to Oracle VirtualBox to run Linux on a Windows machine.

I would like to thank Dirk Kessler, a super software engineer (co-founder of Gladly), for a key insight into running C code from python. I had been stuck on this problem for weeks and he solved it in about 5 minutes.

I would like to thank my friends, Craig Schuler and Paul Seawell, two of the smartest people I know, for providing editorial advice.

My sincere thanks to Prof. Eliza Kempton (Univ. of Maryland) the lead author of the Exo-Transmit code used to generate model spectra of planetary atmospheres. I had many questions and she had the answers.

I would like to thank Dr. Tom Greene (NASA Ames), an expert on the

JWST instrument suite, among other things, for his insight and guidance on a number of issues. He was generous with his time and patient with my many questions.

I would also like to acknowledge the assistance of Dr. Natasha Batalha

(currently a post-doc at UCSC) the lead author of the Pandexo code used to simulate JWST instrument performance. In order to develop a spectral detection algorithm it was important to gain an understanding of some of the intricacies of Pandexo. Her help on this was invaluable.

I would like to thank Prof. Joseph Barranco for agreeing to be a mem­ ber of my thesis committee and for teaching me about many things in

Astrophysics. I would also like to thank Prof. Andisheh Mahdavi for agreeing to be the chair of my thesis committee and for his explanations of Bayesian statistics, among other things.

I would like to acknowledge Prof. Stephen Kane (now at UC Riverside) for his excellent introduction to the field of exoplanet research, and for helping me to connect with a primary thesis advisor.

Last, but certainly not least, I would like to thank my thesis advisor,

Prof. Courtney Dressing (UC Berkeley), for all of her help on this project. I was very fortunate that she decided to take me on in the midst of moving and beginning a new faculty position. I will be forever grateful for her encouragement and kind guidance along the way.

vi TABLE OF CONTENTS

1 Introduction...... 1

1.1 Background...... 2

1.2 Aim of this thesis ...... 14

1.3 Other related w ork ...... 14

2 Analysis framework and the JET C ode ...... 28

2.1 Top level analysis framework and JET architecture ...... 30

2.2 Generating model transmission spectra (ExoT_Master)...... 32

2.2.1 Reading the survey d a t a ...... 34

2.2.2 Estimating planet masses ...... 36

2.2.3 Deriving other planetary system p a ra m e te rs...... 37

2.2.4 Categorizing targets ...... 42

2.2.5 Determining JWST observing constraints ...... 43

2.2.6 Generating model transmission spectra with Exo-Transmit . . 48

2.3 Detecting transmission spectra with JWST (Pdxo_Master)...... 51

2.3.1 Generating simulated transmission spectra with Pandexo . . . 55

2.3.2 Detecting the transmission s p e c t r a ...... 56

2.3.3 Determining the observing cycle time needed for detection . . 65

2.4 Sorting and ranking targets (Rank-Master)...... 68

3 Validating the JET code ...... 71

vii 3.1 Planet masses...... 72

3.2 System parameters, and transits observable...... 72

3.3 Model s p e c tra ...... 75

3.4 Simulated sp e c tra ...... 76

4 Program installation ...... 82

4.1 Hardware configuration...... 82

4.2 Software co n figuration...... 84

5 Results/Discussion...... 90

5.1 Baseline (full su rv e y )...... 90

5.2 Noise floor variation ...... 96

5.3 Atmospheric equation of state variation...... 98

5.4 Detection threshold variation ...... 100

5.5 Instrument variation ...... 102

6 Conclusions/Future Work ...... 107

6.1 Conclusions...... 107

6.2 Opportunities for further stu d y ...... 110

Appendix A: JET Code ...... 112

Appendix B: Baseline JET R u n ...... 165

viii References LIST OF TABLES

Table Page

1.1 JWST Key Facts and Figures...... 3

1.2 NIRSpec Disperser/Filter Combinations ...... 7

2.1 Excerpt from Catalog of Simulated TESS Detections ...... 35

2.2 Observation Time E le m e n ts...... 67

3.1 Basic Survey Data for V a lid a tio n ...... 73

3.2 Validation of JET Calculation of Planetary Parameters...... 74

4.1 Computer Hardware for Development and Testing...... 83

4.2 General Software Installation List for J E T ...... 88

4.3 Python Packages/Modules for JET Installation ...... 89

5.1 JET Baseline run - Input Parameters...... 91

5.2 Baseline Run Statistics 1 ...... 94

5.3 Baseline Run Statistics 2 ...... 95

5.4 Effect of Instrument Choice on Detection (Sullivan Target 1292) . . . 106

x LIST OF FIGURES

Figure Page

1.1 The Observatory from various aspects...... 5

1.2 The JWST science instrument suite ...... 6

1.3 Illustration of transit and eclipse geometry ...... 12

2.1 Top level JET program architecture...... 31

2.2 Analysis and code flow for JET program element ExoT_Master .... 33

2.3 Key transit param eters...... 40

2.4 JWST field of re g a rd ...... 45

2.5 Target observability as a function of ecliptic latitude ...... 47

2.6 Transmission spectral features as a function of metallicity...... 50

2.7 Sullivan Target 1292 ...... 52

2.8 Model transmission spectra for Sullivan Target 1292 ...... 53

2.9 Analysis and code flow for JET program element Pdxo_Master .... 54

2.10 Simulated spectrum for Sullivan Target 1292, low-m etallicity.....57

2.11 Simulated spectrum for Sullivan Target 1292, high-metallicity .... 58

2.12 dBIC vs transits for Sullivan Target 1292, high m e ta llic ity ...... 66

2.13 Analysis and code flow for JET program element Rank-Master .... 70

3.1 Validation of Exo-Transmit implementation ...... 77

3.2 JET-to-Exo-Transmit residual distribution ...... 78

3.3 Validation of Pandexo implementation ...... 80

3.4 Comparison of JET and Pandexo residual distributions...... 81

xi 5.1 Sullivan target planets by Category ...... 92

5.2 Effect of noise floor on transits for d e te c tio n ...... 97

5.3 Effect of atmospheric metallicity on transits for detection ...... 99

5.4 Effect of detection threshold on transits for detection ...... 101

5.5 Simulated spectrum using NIRSpec G140M ...... 103

5.6 Simulated spectrum using NIRSpec G235M ...... 104

5.7 Simulated spectrum using NIRISS SO SS ...... 105

xii 1

Chapter 1

Introduction

“When I heard the leam’d astronomer, When the proofs, the figures, were ranged

in columns before me, When I was shown the charts and diagrams, to add, divide,

and measure them, When I sitting heard the astronomer where he lectured with much

applause in the lecture-room, How soon unaccountable I became tired and sick, Till

rising and gliding out I wander’d off by myself, In the mystical moist night-air, and from time to time, Look’d up in perfect silence at the stars.”

- Walt Whitman 2

1.1 Background

The launch of the James Webb Space Telescope (JWST) is currently scheduled for early 2021l. If all goes according to plan, JWST will usher in a new era of astronomical observation, studying everything from the history of the Universe, to the formation of extrasolar planetary systems, to the evolution of our own solar system. It will complement and extend what has been achieved with the Hubble

Space Telescope (HST) in a new wavelength regime and with much better sensitivity

(Gardner et al. 2006; Kalirai 2018).

One of the main mission goals of JWST is to “measure the physical and chemical properties of planetary systems, . . . and investigate the potential for life in those systems.”2

For planets outside our own solar system (exoplanets) one of the best ways to investigate the potential for life is to study the planetary atmospheres.

JWST is designed for observing in the infrared. An infrared telescope is key to characterizing exoplanet atmospheres, since it is at infrared wavelengths that molecules in these atmospheres present the largest number of spectral features. For example, the main spectral features of an Earth-like atmosphere in the 0.7 to 5.0 /im range are H20 ( ~ 2.8 /jm. and 3.2pm), and CO2 (~ 4.2/um). The main features in

1 https://www.nasa.gov/press-release/nasa-completes-webb-telescope-review-commits-to- launch-in-early-2021 2https://jwst.nasa.gov/science.html 3

the 4.0 to 2 0 range are CO2 (~ 15 ^/m), O3 (~ 9.6 ^/m), CH4 (~ 7.8//m), H20 (~

5.9 //m), and HNO3 (~ 11.2 ^tm) (Kaltenegger and Traub 2009). Of course the target exoplanets are likely to have atmospheres with significantly different composition.

A summary of key facts and figures for JWST is given in Table 1.1.

Table 1.1: JWST Key Facts and Figures

Item Value

Current launch date ~ early 2021 Launch vehicle Ariane 5 ECA Mission duration 5 yr. nom. - 10 yr. goal Total payload mass ~ 6200 kg Diameter of primary mirror 6.5 m Primary mirror material beryllium coated with gold Clear aperture of primary 25 m2 Focal length 131.4 m Optical resolution ~ 70 milli-arcsec (FWHM) at 2/iin Wavelength coverage 0.6 - 28.5 (im. Size of sun-shield 21.2 m x 14.2 m Orbit 1.5 million km from Earth (L2) Operating temp. under 50 K

Notes. — Ref: NASA/GSFC 4

The JWST Configuration and Instruments:

The Observatory is comprised of three elements, the Integrated Science Instru­

ment Module (ISIM), the Optical Telescope Element (OTE), which includes the

mirrors and backplane, and the Spacecraft Element, which includes the spacecraft

bus and sun-shield as shown in Figure 1.1.3

The JWST science instrument suite consists of four instruments sensitive over a

wide wavelength range from the optical to the mid-infrared (0.6 to 28.3 /xm), with

multiple observing modes (see Figure 1.2).

• Near-Infrared Camera (NIRCam): NIRCam, provided by the University of Ari­

zona is the primary imaging instrument for JWST.4 It offers imaging, coronagraphy,

and grism slitless spectroscopy from 0.6 to 5.0 /um. It will be used extensively in

exoplanet transit spectroscopy. It will also be able to conduct exoplanet direct imag­

ing studies using its coronagraph mode. NIRCam has ten, high quantum efficiency,

very low noise mercury-cadmium-telluride (HgCdTe) detector arrays.

• Near-Infrared Spectrograph (NIRSpec): NIRSpec is provided by the European

Space Agency (ESA), with components from the NASA/Goddard Space Flight Cen­

ter.5 It will deliver medium spectroscopic resolution from 1.0 to 5.0 ^m, and lower resolution from 0.6 to 5.0 fj,m. This instrument has a micro-shutter array for si-

3https://jwst. nasa.gov/observatory.html 4https://jwst-docs.stsci.edu/display/JTI/Near+Infrared+Camera 5https://jwst-docs.stsci.edu/display/JTI/Near+Infrared+Spectrograph Optical Telescope Element (OTE) Primary Mirror 18 hexagonal w gm made of the metal Scteace Instrument ((S IM ) and coated with g o U to Module capture iaint Infrared light Houses alt of Webbs cameras and soenc) Secondary Mirror instruments Reflects gathered light from th* primary mirror Into rt>» science irwmj Trim flap ments Helps srabtae the satellite

Multilayer sunshietd Five layers shield the observatory from the Rght and heat of the Solar power array Earth pointing Sun and Earth Always facing the antenna Sun, panels convert Sends science data Spacecraft bus Star trackers sunlight Into elec- back to Earth and titcrty to power th* receives commands Contains of the SmaR telescopes that abservatory from NASA's Deep spacecraft Hai ring use star patterns to Space Network and control machin­ target the observatory ery, including the computer and the reaction wheels

Figure 1.1: The Observatory from various aspects, showing the major system elements. The ISIM and OTE are behind the sun-shield in the permanently cold zone. The Spacecraft Element includes the bus and sun-shield. (Ref: NAS A/JW ST) Coronography Coronography 00 r nn n n 'Sos NIRCam MIRI X

Aperture Masking Interferometry

Integrated F ield Unit Single Slit >. 1 o0, Multi-Obje<:t u■J\ 1 1 o NIRSpec MIRI u oscu an mm 0.5 0.6 0.7 0.8 0.9 1 1.5 3 4 5 6 7 8 9 10 15 20 30 Wavelength (fim)

Figure 1.2: The JWST science instrument suite consists of four instruments sensitive over a wide wavelength range from the optical to the mid-infrared (0.6 to 28.3 /um), and offers multiple observing modes for imaging and spectroscopy (Ref: NASA/JWST). 05 7

multaneous observing of multiple targets, and uses two HgCdTe detector arrays. It will be used extensively in exoplanet spectroscopy (both transmission and emission).

NIRSpec has nine available disperser/filter combinations, shown in Table 1.2.

Table 1.2: NIRSpec Disperser/Filter Combinations

Disperser/Filter Resolving Power Wavelength range (/xm)

G140M/F070LP - 1000 0.70 - 1.27 G140M/F100LP ~ 1000 0.97- 1.84 G235M/F170LP ~ 1000 1.66 - 3.07 G395M/F290LP ~ 1000 2.87 - 5.10 G140H/F070LP ~ 2700 0.81 - 1.27 G140H/F100LP ~ 2700 0.97 - 1.82 G235H/F170LP ~ 2700 1.66 - 3.05 G395H/F290LP ~ 2700 2.87- 5.14 PRISM/CLEAR ~ 100 0.60 - 5.30 MIRROR/FllOW n /a 1.00 - 1.20 MIRROR/F14QX n /a 0.80 - 2.00

Notes. — Nominal combinations of filters and disperser elements in NIR­ Spec operations. The gratings are used with long-pass filters, and the MIRROR is used with band-pass filters in imaging mode for target acqui­ sition. Wavelength range values presented here are approximate. Details from Dorner et al. (2016). 8

• Nea,r-Infrared Imager and Slitless Spectrograph (NIRISS): NIRISS is combined

with the Fine Guidance Sensor (FGS) and is being provided by the Canadian Space

Agency.6 NIRISS provides four observing modes: (1) Wide field slitless spectroscopy

(WFSS) over the entire field of view, between 0.8 and 2.2 /an; (2) Single object

slitless spectroscopy (SOSS) with a cross-dispersed grism designed to deliver broad

wavelength coverage and spectro-photometric stability, optimized for time-series ob­

servations (e.g., exoplanet transmission spectroscopy); (3) Aperture masking inter-

ferometry through filters, that is enabled by a mask with seven sub-apertures; and

(4) Imaging in seven filters matched to the NIRCam filter set between 0.9 and 5.0

The SOSS mode is optimized for spectroscopic applications requiring extremely high precision and stability. It was specifically designed to obtain spectra of tran­ siting exoplanet systems around stars with J-band magnitudes between 7 and 15.

Stability is demanded because the spectrum of the exoplanet atmosphere must be separated from the spectrum of the host star by subtracting and dividing spectra obtained at different orbital phases.

The Fine Guidance Sensor is packaged with NIRISS, but it is a functionally separate system. As its name suggests, the FGS allows the spacecraft to point precisely, so that it can obtain high-quality images and spectra.

6https://jwst-docs.stsci.edu/display/JTI/Near+Infrared+Imager+and-rSlitless-fSpGCtrograph 9

• Mid-Infrared Instrument (MIRI): MIRI is provided by the European Consor­

tium with the European Space Agency (ESA), and by the NASA Jet Propulsion

Laboratory (JPL).7 It provides both imaging and spectrographic observing modes

at longer wavelengths, 4.9 to 28.8 [im. This spectral regime can be used for: direct

imaging studies of warm exoplanets, thermal emission spectroscopy of exoplanet

atmospheres, characterization of the first galaxies at large redshifts, and analysis of

dust and gas in proto-planetary disks.

MIRI offers a broad range of observing modes, including: (1) Imaging; (2) Low

resolution spectroscopy (LRS), both with and without slits; (3) Medium resolution

integral field unit spectroscopy; and (4) Coronagraphy.

The MIRI-LRS mode can be a particularly useful observing mode for exoplanet

atmosphere thermal emission and for longer wavelength transmission. It covers the

wavelength range from 5.0 to 12 //in at a resolving power of ~ 100.

MIRI uses three arsenic-doped silicon impurity band conduction (Si:As IBC)

Focal Plane Arrays, and has a high efficiency, very low vibration cryocooler that can take the MIRI detectors down to < 7 K (designed for the full extended mission life). All other JWST instruments use HgCdTe FPAs, that are passively cooled to

~ 37 K.

'https://jwst-docs.stsci.edu/display/JTI/Mid-Infrared-f-Instrument%2C-l-MIRI 10

The Mission:

The spacecraft will orbit the sun at the second Sun-Earth Lagrange point. L2.

This is a meta-stable point about 1.5 million kilometers away from the Earth along the Earth-Sun line outward from the Sun (in the opposite direction from the Sun).

This orbital geometry allows the large sunshade to provide protective cooling for the telescope with minimal maneuvering, which would be very difficult, if not impossible, if the spacecraft were in a typical low Earth orbit, as with HST-

Due to this orbital location, JWST's lifetime will be strictly limited. There is currently no plan for on-orbit servicing as there was with HST. The spacecraft will have a nominal five-year mission, but will carry fuel for a ten-year extended mission.

We can estimate the time available for exoplanet observing over its ten-year fuel- limited lifetime. NASA expects JWST to be in routine science mode roughly six months after launch. This allows for cooling down the spacecraft and doing various calibrations and maneuvering operations. This leaves ~ 83,000 hours available for the observing program over the 10 year extended mission.

We have not seen published a detailed apportionment of time for the various major JWST mission elements; however, in our discussions with NASA researchers we understand that roughly 20% of the total available observing time will be de­ voted to exoplanet studies. Of that, about half (~ 10%, or ~ 8300 hours) will be reserved for transmission spectroscopy - our focus in this study.

8https: / /jwst.nasa.gov/faq.html 11

Transmission and Emission Spectroscopy:

There are two primary approaches to characterizing the atmospheres of close-in

planets: transmission and emission spectroscopy (Perryman 2014; Crossfield 2015;

Kreidberg 2017). When a planet is observed in transit, a small fraction of the star’s light passes through the narrow annulus of the planet’s atmosphere as illustrated in Figure 1.3. At wavelengths where the atmospheric constituents absorb more of the light, the observed depth of the transit light curve increases. This transmission spectrum gives us information about the chemical constituents present, particularly in the outer layers of the planet’s atmosphere.

The atmospheric anmilus, where the host star’s light is filtering through, has a radial dimension of approximately 5 times the pressure scale height of the atmo­ sphere. As shown in Equation 6.58 of Perryman (2014) the scale height is defined

t f = — (1.1) t-hn9s where kb is Boltzmann’s constant, T is the atmospheric temperature (this could be equilibrium temperature in well mixed atmospheres), /drn is the mean molecular weight, and gs is the surface gravity of the planet.

The wavelength dependent, fractional amount that the transit depth is increased 12

Planet emission and reflection blocked during eclipse

Host star Starlight passes through planet’s atmosphere during transit

Figure 1,3: Illustration of transit and eclipse geometry. During a transit a small amount of the star’s light passes through the thin (roughly 5H in radial extent, where H is the pressure scale height) annular region surrounding the planet. Out of transit the planet’s reflection and thermal emission add to the total light observed until a secondary eclipse blocks that light. Inspired by Kreidberg (2017) 13

over that of a naked planet is given by Equation 6.59 of Perryman (2014):

(1.2) where Rp is the naked planet’s radius, and R+ is the host star’s radius (with consis­ tent units for Rp, R*, and H).

Ideal candidates for transmission spectroscopy have high equilibrium tempera­ tures, small host stars, low surface gravity, and low mean molecular weight compo­ sition; but even for these ideal cases, the amplitude of spectral features, 6\, is only about 0.1 %. The expected amplitude for spectral features of Earth analogs is two to three orders of magnitude lower, depending on the host star’s size.

The emission spectrum also contains information about the makeup, and the temperature profile of the planet’s atmosphere (Line et al. 2014; Morley et al. 2015).

Observations that span the secondary eclipse (when the planet goes behind the host star as shown in Figure 1.3) can reveal the planet’s spectral features in thermal emission. This is taken from the difference between the total light just before (or after) the eclipse, and that during the eclipse with only the host star’s light observed.

In some cases (where the exoplanet can be spatially resolved through coronog- raphy) it is possible to obtain direct emission spectra (Danielski et al. 2018). 14

1.2 Aim of this thesis

Given the limited lifetime of JWST, the scarce resource of observing time must

be allocated as efficiently as possible. In particular, for the study of exoplanet

atmospheres we want to prioritize targets where the exoplanet atmospheres have

the best chance of successful detection and characterization.

The scientific community needs a tool to implement this target prioritization in

a robust and efficient way. We provide a framework for analysis and an associated

computer program to assist with ranking targets of interest for JWST provided

by survey data from the Transiting Exoplanet Survey Satellite (TESS) and other

precursor efforts.

In addition, our ranking tool(s) will help to prioritize targets for high precision radial velocity (RV) measurements to further constrain the masses of the target planets.

1.3 Other related work

A number of studies have addressed the range of issues associated with optimiz­ ing JWST targets for atmospheric characterization. These issues include: precursor missions, synthetic target surveys, exoplanet mass-radius relationships, model at­ mosphere spectra, simulated instrument spectra, and other target ranking schemes. 15

Precursor Missions:

The Kepler spacecraft discovered a large and diverse set of exoplanet targets.

Unfortunately these targets are mostly at distances that make RV follow-up observa­

tions, and thus planet mass estimates, difficult or impossible. Since planet mass is a

key ingredient in characterizing atmospheres we need to consider planetary systems

that are much closer to us.

There are several space missions (K2, CHEOPS, and TESS), and ground based

surveys (e.g., MEarth, TRAPPIST, and SPECULOOS) that will provide suitable

target lists for atmospheric characterization by JWST

Howell et al. (2014) describes the recently concluded K2 mission (extension to

the Kepler mission). During this three year mission the Kepler spacecraft observed

fields along the ecliptic enabling an exoplanet survey that fills the gaps in duration

and sensitivity between Kepler and TESS, and offers pre-launch exoplanet target

identification for JWST transmission spectroscopy.

Another exoplanet hunting spacecraft, TESS, was launched in April, 2018 (Ricker et al. 2014). Its first candidate planet discovery was announced in September, 2018.

TESS will survey nearly the full sky (an area 400 times larger than that monitored by Kepler) over the course of two years. The cameras on the spacecraft will stare at each of 26 sky sectors for at least 27 days, looking at the brightest stars at a two-minute cadence.

Given the orbital geometry, there will be some missed regions and some overlaps 16

in the observation sectors. A region of ~ 7600 deg2 near the ecliptic plane will not be observed. About 30,000 deg2 will be observed for at least 27 days. Closer

to the ecliptic poles, approximately 2800 deg2 will be observed for more than 80 days. Surrounding the ecliptic poles, a small area of 900 deg2 will be observed for more than 300 days. Unfortunately, this will generally limit the planets to be discovered to those with shorter periods, except near the ecliptic poles. This sky coverage approach was a compromise that was necessary due to budget and schedule limitations.

There is the possibility of detecting planets that transit only once during the

TESS observation window. Some of these objects will be left as ambiguous detec­ tions, but it may be possible to confirm planet detections for some of them with ground-based RV follow-up.

The bulk of the stars in the Kepler field lie at distances of hundreds to thousands of parsecs, making it difficult to obtain ground-based follow-up observations for many systems. TESS will search for planets around nearby stars (within ~ 200 parsecs). These stars will be 30 to 100 times brighter than those surveyed by Kepler.

Planets detected around these stars will be far easier to characterize with follow-up observations, resulting in refined measurements of planet masses, sizes, densities, and atmospheric properties.9

9 https: / /heasarc. gsfc.nasa.gov/docs/tess/objectives.html 17

The CHaracterizing ExOPlanet Satellite (CHEOPS) mission sponsored by the

European Space Agency will follow up on previous ground based RV and transit

searches to dramatically refine potential target planet radii. CHEOPS is planned

to launch in 2019 and will observe about 500 targets in its 3.5 year mission. It will

significantly improve our knowledge of certain existing RV targets in the super-Earth

to Neptune size range (Broeg et al. 2013).

There are several ground based efforts aimed at compiling appropriate lists of ex­

oplanet targets for atmospheric characterization by JWST. For example, the MEarth

project is focused on M-dwarf stars. M-dwarfs are very useful targets to search for

transiting planets, particularly super-Earths. A planet of 2 i?© orbiting an M5 dwarf

in the habitable zone will display a 0.5 % transit depth signal, with a two week pe­

riod (Irwin et al. 2008). This can be detected from the ground using relatively small

telescopes. Such planets would be very amenable to follow-up studies due to the brightness of the parent stars, and the favorable planet-star flux ratio.

MEarth is a dedicated ground-based transit survey of ~ 3000 nearby M-dwarfs designed to take advantage of these properties, operating from two sites: the Fred

Lawrence Whipple Observatory on Mt Hopkins, Arizona, and Cerro Tololo Inter-

American Observatory, Chile (Irwin et al. 2014). Each site has eight 0.4 m robotic

telescopes. MEarth-North has been fully operational since late 2008, and MEarth-

South since early 2014. The first discovery by the MEarth project was the mini-

Neptune GJ 1214b (Charbonneau et al. 2009), which we have used as a reference 18

object in this work.

Another ground based transit survey is the TRAPPIST (TRAnsiting Planets and Planeteslmals Small Telescope) project led by the University of Liege (Belgium).

The single 0.6 meter telescope system was installed in early 2010 at the ESO La

Silla Observatory (Chile). The science goal of TRAPPIST is the study of planetary systems through two approaches: the detection and study of exoplanets, and the study of comets (Gillon et al. 2011).

The TRAPPIST project’s most famous discovery to date, as described in Gillon et al. (2016), occurred in late 2015 when it identified a multi-planet system orbiting an ultra-cool dwarf star at ~ 12 pc.

Another project of the University of Liege, is the Search for habitable Planets

EClipsing ULtra-cOOl Stars (SPECULOOS) (Burdanov et al. 2018). It consists of four 1-meter primary aperture telescopes at Paranal Observatory in Chile searching for Earth-sized exoplanets around 1,000 ultra-cool stars and brown dwarfs.

Synthetic Target Surveys:

The earliest simulation of exoplanet yield from an all-sky survey of bright stars was described in Deming et al. (2009). This was specifically aimed at simulating the TESS survey yield. It was a particularly notable effort given that the Kepler mission had not even been launched at the time of their work. This was an exercise in scaling, and extrapolating from the limited data available. 19

We have chosen to use the target catalog of Sullivan et al. (2015) as the basis of our analysis and code development. This catalog is a simulation of expected

TESS planet detection results based on existing occurrence rate information. The

TESS exoplanet statistics have been reviewed recently by several groups, including

Bouma et al. (2017), Ballard (2018), Muirhead et al. (2018), and Barclay et al.

(2018). These studies considered TESS mission extension, yields of planets around

M-dwarf hosts, and updates of planet yields using the actual TESS catalog of target stars.

These updated studies do show some significant differences with the Sullivan work. Specifically, Ballard (2018) found M-dwarf planet occurrence rates up to

50% higher than those shown in the Sullivan work, Bouma et al. (2017) showed

30% fewer Earths and 22% fewer super-Earths for the primary 2 x 105 target stars that will be sampled at a 2-minute cadence, and Barclay et al. (2018) showed 36 % fewer Earths and 60% fewer super-Earths for the primary target stars.

Notwithstanding these recent results, we continue to use the Sullivan survey data and catalog format as our baseline simulated target survey. Our study was quite advanced when these new studies were released. The JET code can certainly be adapted (with modest effort) to work with the format of any synthetic target survey or with the actual TESS datasets. 20

Mass-Radius Relationships:

There have been a number of studies of exoplanet mass-radius relationships in recent years. The results of these studies have generally been parametric models, and in particular power law models. Weiss and Marcy (2014) studied 65 exoplanets with Rp < 4 i?©, and derived a broken power law model that could be used to estimate mass given radius. There was significant scatter in the data, indicating a large variation in planet composition in this radius regime.

Wolfgang and Lopez (2015) applied a statistical (hierarchical Bayesian modeling) approach to the problem of mass estimation for Kepler planet candidates. They focused on planets with periods < 25 days and Rp > 1.2 i?©. Much of their study was concerned with how planetary compositions and densities change with radius.

Chen and Kipping (2017) developed a mass-radius forecasting model based on

316 well constrained objects. Their publicly available code, Forecaster, implements their Bayesian/Markov Chain Monte Carlo (MCMC) analysis. Their basis sample contains dwarf planets to late-type stars covering nine orders of magnitude in mass, with four type classifications.

We discuss our approach to estimating planet mass, based on the Chen and Kip­ ping (2017) analysis further in Section 2.2.2.

Model Atmosphere Spectra:

We will get to the subject of Target Ranking Studies, but first we should give 21

some background on the efforts to generate model exoplanet atmosphere spectra, and efforts to simulate JWST instrument performance.

As previously mentioned, our focus in this work is on transmission spectroscopy.

As we will describe in more detail in Chapter 2, our analysis approach depends on our ability to model the transmission spectrum from a transiting exoplanet given assumptions about the orbital distance, surface gravity, and equilibrium tempera­ ture, among other things. Kempton et al. (2017) presents a detailed description of Exo-Transmit, an open source code for generating model exoplanet transmission spectra. This is an extension of a super-Earth radiative transfer code originally described by Miller-Ricci et al. (2009), and Miller-Ricci and Fortney (2010).

The Exo-Transmit code can generate spectra for atmospheres of a wide variety of compositions. It was originally developed to work with low-mass exoplanets, but it does have the ability to vary the atmospheric equation of state parameters and can be used to model giant planets as well. The models can be set up with or with­ out clouds, and can vary the effects of Rayleigh scattering to the user’s specification.

Simulated Instrument Spectra:

Several studies have addressed how the JWST instruments will perform and what spectral features could potentially be detected using transmission and emission spectroscopy. These studies have primarily been based on analysis of the noise characteristics of the various inst ruments. A great deal of experience has been gained 22

over the years with other space telescopes’ instruments (e.g., HST, and Spitzer), which have many similarities to those that will be carried on JWST. This valuable experience has been brought to bear on the characterization of the JWST instrument

suite.

Deming et al. (2009) described an instrument model for NIRSpec and MIRI.

Their model included all sources of random and systematic error known at the time

(2009) for these instruments. The authors demonstrated that the JWST instru­

ments should be able to detect the temperature and certain atmospheric absorption

features in small numbers of Earth-like planets identified by TESS.

Among other things, their simulations considered secondary eclipse filter pho­

tometry using MIRI, comparing the 11 and 15 f.im bands to measure C 02 absorption

in super Earths, as well as NIRSpec spectroscopy of water absorption from 1.7 to

3.0 £tm, and CO2 absorption at 4.3 /im .

Others have attempted to model the performance of JWST's instruments in­ cluding: Kaltenegger and Traub (2009), Greene et al. (2016), Beichman et al.

(2014), Howe et al. (2017), Batalha et al. (2017), Batalha and Line (2017), and

Louie et al. (2018). These noise simulations are quite sophisticated, including space­ craft jitter, drift, flat field errors, and background noise; however, other systematic errors could become apparent when the actual on-orbit performance is revealed.

Greene et al. (2016) used a Bayesian approach to determine what could be re­

trieved of the atmospheric properties of various exoplanet categories, with an in­ 23

dependent noise simulator for NIRISS, NIRCam, and MIRI. They used systematic noise floor values, consistent with the best performance of HST and Spitzer, of 20,

30, and 50 ppm, for NIRISS SOSS, NIRCam grism, and MIRI LRS observations, respectively.

They found that “1 to 2.5 jam transmission spectra will often constrain the major molecular constituents (e.g., CH4, CO, C 02, H20, NH3) of clear solar-composition atmospheres well. Cloudy or high mean molecular weight atmospheres will often require full 1 to 11 fxm spectra for good constraints, and emission data may be more useful in cases of sufficiently high planet flux and high planet to star flux ratio.”

Batalha et al. (2017) presented an open-source Python package, Pandexo, to pro­ vide community access to JWST instrument noise simulations. Pandexo relies on the Space Telescope Science Institute’s Exposure Time Calculator, Pandeia (Pick­ ering et al. 2016). It can be used as both an online tool and a Python package for generating instrument simulations of JWST's NIRSpec, NIRCam, NIRISS, MIRI, and H STs WFC3.

PandExo takes as input stellar and planetary modeled spectra, as well as other necessary parameters. It then estimates the S/N for the observation across the plan­ etary spectrum. PandExo can provide interactive and downloadable plots of the pre­ dicted planetary spectra, stellar spectra, error spectra, and several other factors.10

10https://jwst-docs.stsci.edu/display/JPP/Prepaiing+Time-Series+Observations+with+JWST #PreparingTime-SeriesObservationswithJWST-PandExo 24

Pandexo has been shown to be within 10 % of the JWST instrument team’s inde­

pendent noise simulations and has become a trusted tool of the scientific community.

Target Ranking Studies:

A number of studies have considered the issue of taking target survey results from

precursor missions and finding an optimal target set for atmospheric characterization

by JWST. We have previously mentioned the Deming et al. (2009) study. In addition

to modeling the capability of MIRI and NIRSpec, they coupled their simulated

TESS target yield to their sensitivity model. They found that JWST should be

able to characterize dozens of TESS super-Earths with temperatures above the

habitable range. They also found that JWST should be able to measure temperature

and identify absorption features in one to four habitable Earth-like planets orbiting

lower-main-sequence stars.

They asserted that, “although the number of habitable planets capable of being

characterized by JWST will be small, large numbers of warm to hot super Earths and

exo-Neptunes will be readily characterized by JWST, and their aggregate properties

will shed considerable light on the nature of icy and rocky planets in the solar

neighborhood.’

While not specifically addressing target ranking, the Stevenson et al. (2016)

study describes an Early Release Science program. This program focuses on testing certain observing modes to quickly provide data and experience to plan more effi­ 25

cient and successful transiting exoplanet characterization programs in later JWST

observing cycles.

Crossfield and Kreidberg (2017) determined that the prominence of features in

the transmission spectrum for a warm-Neptune exoplanet is related to its equilibrium

temperature and its bulk H/He mass fraction. They were able to construct an

analytical relation to estimate the overall observing time needed to distinguish a gas

giant’s transmission spectrum from a flat line. They suggested that the atmospheric

trends they describe could result in a reduction in the number of TESS targets that

could be detected by JWST by as much as a factor of eight.

Howe et al. (2017) explored the optimization of observations of transiting hot

Jupiters with JWST to characterize their atmospheres. They constructed forward

model sets for hot Jupiters, exploring parameters such as equilibrium temperature

and metallicity, as well as considering host stars with a wide brightness range. They computed posterior distributions of model parameters for each planet with all of the available JWST instrument modes and various programs of combined observa­ tions. From these simulations, trends emerged that provide guidelines for designing a JWST observing program.

Morley et al. (2017) offered a study of atmospheric detection for the seven

TRAPPIST-1 planets, GJ 1132b, and LHS 1140b. These are some of the small­ est planets discovered to date that might have atmospheres within the detection 26

capability of JWST, This was not strictly a target ranking study, but it did in­ volve generating model atmospheres and simulating JWST instrument performance.

They considered the observability of each planet’s atmosphere in both transmission and emission. GJ 1132b and TRAPPIST-lb are excellent targets for emission spec­ troscopy with MIRI, requiring less than 10 eclipse observations. Seven of the nine planets are good candidates for transmission spectroscopy. Using estimated planet masses they determined that less than 20 transits would be required for a 5cr de­ tection of a transmission spectrum.

Another recent study (Louie et al. 2018) was aimed at understanding the suit­ ability of expected TESS planet discoveries for atmospheric characterization using

JWST’s NIRISS by employing a simulation tool to estimate the signal-to-noise ratio

(S/N) achievable in transmission spectroscopy. The tool was applied to predictions of the TESS planet yield and then the S/N for anticipated TESS discoveries was compared to estimates of S/N for 18 known exoplanets. They analyzed the sensi­ tivity of the results to planetary composition, cloud cover, and the presence of an observational noise floor. Several hundred anticipated TESS discoveries with radii

1.5/?© < Rp < 2.5 i?© will produce S/N higher than currently known exoplanets in this radius regime. In the terrestrial planet regime, only a few expected TESS discoveries will result in higher S/N than currently known exoplanets.

A study (Kempton et al. 2018) was published recently that is similar to our work in its general approach to finding an optimal target set for JWST. The authors use 27

a set of two analytic metrics, quantifying S/N values in transmission and thermal emission spectroscopy to rank the target planets in the Sullivan catalog. They use the S/N predictions from the JWST/NIRISS simulation performed by Louie et al.

(2018) for their transmission metric. They also use the community tool Pandexo for generating simulated instrument spectra in thermal emission, but not for transmis­ sion. They determine a sample of ~ 300 atmospheric characterization targets that meet the threshold values of their metrics for observation. 28

Chapter 2

Analysis framework and the JET Code

We have developed an analysis framework that takes precursor transit survey data and processes it to result in a list of prioritized exoplanet targets for atmo­ spheric characterization by JWST

Our analysis of a survey target dataset proceeds in a straightforward way. We first set target selection parameters and other values (e.g., JWST instrument/mode, target list limits, atmosphere model equations of state, etc.).

Next, we take the target survey (e.g., K2, TESS, etc.) data and for each of the targets determine various planetary system parameters: orbital semi-major axis, planet equilibrium temperature, planet mass, etc.

We then make an estimate of the number of transits observable in a 10 year mission, given target position on the sky and spacecraft pointing constraints, for each target.

Then we divide the parameter space into seven demographic categories, by planet 29

radius and equilibrium temperature, and categorize the targets.

Now we can generate model transmission spectra for each target. In our work so far, we have focused exclusively on transmission spectroscopy because, as discussed in Kempton et al. (2018), this is expected to be the best approach for observations of exoplanet atmospheres and provides the best sensitivity to a wide range of plan­ ets. We consider two bounding cases for model atmospheres for each target: low metallicity with no clouds, and high metallicity with a mid-level cloud deck. This should span the range of atmospheres that we might encounter, and their potential detectability (see Section 2.2.6).

Next, we make sure that the host star is not so bright as to saturate the de­ tector of the particular instrument under consideration. If not, then for each of the targets and for each model atmosphere, we run an instrument simulation which includes noise effects. We then determine the number of transits required for a high confidence detection.

Next, we check to see if the number of transits required for detection is available in a 10 yr mission. If so, we can then determine the total observing time for the target, with all of the spacecraft overheads included, for each atmosphere case. From this we can determine an average total observing time value for that particular target.

Finally, we sort the targets by category and then rank them within each category by the average total observing time needed for detection. No attempt is made to 30

prioritize one demographic over another,

We will describe each of these analysis steps in more detail. In addition, we have

developed a suite of computer tools: the JWST Exoplanet Targeting code (JET)

that embodies the analysis procedure that we describe.

2.1 Top level analysis framework and JET architecture

The analysis (and code) can be divided logically into five main parts: (1) General

input, (2) Generating model spectra, (3) Detecting the spectra with JWST, (4)

Sorting and ranking the target list, and (5) Controlling the program execution.

Figure 2.1 presents a flowchart of this top level analysis framework and program

architecture.

JET_Input.txt is a .txt file. As we mentioned, certain target selection parameters

and other values are set here. This is a comma delimited file with reference comments

included to guide the user.

ExoT_Master.py is a Python sub-program that reads in the target data, com­

putes additional planetary system information, and sets up and runs Exo-Transmit to generate model spectra for two bounding atmosphere cases.

PdxoJVlaster.py is a Python sub-program that takes the planetary system infor­ mation and the model spectra and generates simulated instrument spectra for each target/atmosphere case using Pandexo. In addition, this program runs a detection algorithm to determine the number of transits required for a high confidence detec- Figure 2.1: Top level JET program architecture. 32

tion and determines the total observing time needed for each target/atmosphere.

Then, given the observing time results of the two cases, it determines an average total, observing time needed for each target. Pdxo_Ma.ster.py also creates an out­ put file of summary data that includes the survey data, system parameters, and observation requirements listed in target order.

Rank..Mast,er.py is a Python sub-program that takes the full set of summary data from Pdxo..Master.py, sorts it by category, and then ranks the targets within each category by the average total observing time required for detection. It also prepares a final rank-ordered and formatted summary table as output.

Finally, JET_Master.sh is a Linux shell script that runs each of the sub-programs described above in sequence. In addition, it provides directory path pointers for the location of the large Pandexo data files. In this architecture, JET_Master.sh could be considered the main program.

The source code and input text for these JET program elements is provided in

Appendix A.

2.2 Generating model transmission spectra (ExoT_Master)

The first major step in the analysis process is to generate model transmission spectra for the various targets. This task is carried out by the JET program ele­ ment: ExoT-Master. Figure 2.2 presents a flowchart for the ExoT-Master program element. CO Figure 2.2: Analysis and code flow for JET program element ExoT_Master. CO 34

2.2.1 Reading the survey data

Our analysis begins with the target survey data. As we discussed in Section

1.3, there have been several attempts at developing synthetic surveys that would

emulate a full TESS (or other mission) program survey. As previously mentioned,

we have adopted the format of the survey/catalog described m Sullivan et al. (2015).

Of course, when actual TESS (or other mission) data is available, that data would

be used for a production/science run. The important thing is that the dataset that

is used for the JET run needs to be in exactly the same form as the Sullivan dataset.

The actual survey datafile should be labeled target_survey.txt and stored in the JET

working directory.

JET reads the entire target survey datafile (excluding the header), verbatim;

however, it only uses the following columns in the target processing: RA (equatorial,

decimal), Dec (equatorial, decimal), mean radius of planet in Earth radii, orbital

period in days, insolation relative to Earth, stellar radius in Solar radii, target star’s

effective temp in K, and the target star’s J-band magnitude.

The full Sullivan catalog dataset (1984 targets) used for JET development and testing is available in machine readable form.11 An excerpt of the dataset is shown in Table 2.1.

1 lhttp://iopscience.iop.org/0004-637X/809/l/77/suppdata/apj516470t6-mrt.txt Table 2.1: Excerpt from Catalog of Simulated TESS Detections (Sullivan et al. 2015).

o (° ) 6(°) P (days) S/Se K (m s ') R. (*o) Teff (K) V J 0.439 45.217 3.31 9.14 361.7 2.03 1.41 6531 8.47 7.97 7.63 0.480 -66.204 2.19 14.20 2.1 3.11 0.32 3426 15.08 12.83 11.56 0.646 42.939 1.74 4.96 235.0 1.66 0.95 5546 10.12 9.35 8.81 0.924 -26.065 1.48 2.16 1240.1 1.95 1.12 5984 8.06 7.42 6.98 1.314 -24.954 2.29 9.75 5.9 2.95 0.42 3622 14.19 12.15 10.99 1.384 10.606 2.32 13.99 2.1 3.32 0.32 3425 15.04 12.79 11.52 1.783 -71.931 3.29 8.42 4.5 5.23 0.34 3444 15.29 13.06 11.79 1.789 -9.144 2.81 5.62 2.6 9.15 0.17 3228 15.05 12.52 11.13 1.948 -16.995 17.15 1.34 10164.5 16.03 2.11 6668 7.51 7.05 6.72 2.172 -15.533 4.80 17.14 341.2 2.10 2.11 6668 7.51 7.05 6.72 4.071 9.507 1.97 11.45 1.5 4.09 0.22 3300 14.96 12.55 11.21 4.634 -23.500 4.71 5.17 116.3 4.60 0.80 5000 9.52 8.54 7.85 4.788 78.625 1.56 0.62 71.2 8.92 0.22 3283 15.94 13.50 12.14 5.322 -55.554 2.85 18.16 2.4 3.01 0.41 3592 14.23 12.15 10.98 5.704 50.726 2.24 2.75 308.3 2.82 0.80 5188 11.28 10.40 9.77 5.951 -28.675 3.75 17.75 4.3 3.46 0.50 3844 11.73 9 .« 8.89 6.166 32.455 1.11 0.79 53.4 2.95 0.22 3304 14.81 12.41 11.08 6.521 -4.048 1.53 7.51 4.8 2.78 0.32 3435 13.66 11.43 10.17 6.662 -79.377 2.31 1.89 45.5 5.48 0.40 3551 14.42 1130 11.10 7.592 -79.924 7.72 3.92 320.7 7.41 0.91 5623 11.06 10.32 9.79 8.071 -77.185 1.49 1.02 887.9 3.50 0.70 5030 8.00 7.05 6.40 8.396 -53.966 2.38 5.59 6.8 4.55 0.31 3442 14.14 11.91 10.66 8.919 67.419 2.94 29.94 1.3 2.61 0.42 3611 13.33 11.30 10.14 9.843 -11.832 2.82 6.28 62.9 2.98 0.69 4819 11.69 10.60 9.88 10.467 -40.605 1.71 15.14 1.3 2.83 0.26 3359 14.51 12.18 10.87 10.551 -27.297 3.60 5.99 283.9 2.96 1.04 5970 9.85 9.21 8.76 11.067 -52.752 2.40 17.18 0.9 4.35 0.22 3287 15.54 13.10 11.74 11.145 29.347 2.43 8.66 13.3 2.80 0.53 3948 12.80 11.09 10.08 11.145 -49.044 1.51 8.12 6.4 2.27 0.39 3557 13.67 11.56 10.37 11.207 37.355 2.64 1.98 28.9 7.02 0.32 3437 14.67 12/43 11.18 11.547 -44.670 5.26 39.43 56.6 1.90 1.47 6577 8.65 8.16 7.82 11.909 -67.746 3.67 4.78 216.5 3.69 0.84 5598 11.69 10.94 10.40 12.015 74.529 3.85 1.85 11.8 17.24 0.17 3225 16.89 1436 12.95 12.085 -51.662 11.96 40.02 16.1 4.97 0.99 5598 10.31 9.55 9.02 12.261 -60.310 2.12 10.35 3.4 3.19 0.33 3467 13.88 11.68 10.44 12.320 75.640 6.92 5.25 513.2 5.25 1.20 6295 10.12 9.57 9.18 36

2.2.2 Estimating planet masses

Given that the precursor missions are transit surveys, they will not directly

provide planet mass data. There may be special cases where there have been other

studies (e.g., RV, transit timing variations, microlensing, etc.) done on particular

targets to determine masses, but in general we will have to make our own mass

estimates initially.

As previously mentioned, we have chosen to use a planet mass estimating ap­

proach based on Chen and Kipping (2017). They have developed a Python code

called Forecaster, which uses an MCMC method (using a set of 316 well constrained

planets) to estimate planet mass given radius. We have implemented Forecaster

within our code; however, given that we are only interested in the estimated median

values of planet mass and not in the error distribution, we do not need to run the

full code. The full Forecaster analysis routine has been disabled in ExoT_Master.

To estimate the median values of planet mass, we use two power laws that can

be derived from the Chen and Kipping (2017) work. It should be mentioned that our power law derivation here is consistent with that done by Louie et al. (2018).

For Rp < 1.23 R®

Mp = 0.9718 (Rp)3 58 (2.1)

For 1.23 R® < Rv < 10 R®

Mp = 1.436 {Rp)1'70 (2.2) 37

where Mp is the planet mass relative to the mass of the Earth (M©) and, Rp is the planet radius relative to the radius of the Earth (/?©).

We have set an upper limit for Rp of 10 /?© The mass-radius relationship de­ scribed in the Chen arid Kipping (2017) study is ambiguous for radii above this level. This is due to the very wide range of mass for planets with radii similar to that of Jupiter. While there are target planets in the Sullivan catalog (and there will be in actual survey data) that have larger radii, we will flag them as outside the range of our analysis. This is equivalent to imposing a mass upper limit of ~ 72 M© for our analysis.

2.2.3 Deriving other planetary system parameters

In addition to estimating planet mass, we need to determine certain other plan­ etary system parameters for each of the target planets. These parameters include the semi-major axis of the planet’s orbit, the planet’s equilibrium temperature, the planet’s surface gravity, and the transit duration. These parameters are derived directly from the survey data, given certain assumptions.

Semi-major axis (a):

The relative insolation of the planet 5/5®, is given by Equation (13) of Sullivan et al. (2015). By rearranging this we can determine the semi-major axis of each of the target planets as follows: 38

2

O'AU — (2.3) where S is the stellar insolation at the top of the planet’s atmosphere in 5® units,

Teff is the effective temperature of the host star in K, i?* is the radius of the host

star in Solar radii, Teff, © is the Sun’s effective temperature s 5777 K, and a^u is

the semi-major axis of the planet’s orbit in AU.

This value for the semi-major axis can be converted to units of Solar radii, which

can be used in other contexts.

(2.4) where a ah is the planet’s semi-major axis in AU, 1 AU is 1.49597 x 1011 m, Rq is the Sun’s radius = 6.95508 x 108 m, and a is the planet’s semi-major axis in units of Solar radii.

Surface gravity (gs):

The target planet’s surface gravity is needed to calculate the pressure scale height, which is then used to generate model atmosphere spectra. We can estimate surface gravity directly from Newton’s Universal Gravitation as follows:

GMpMe (2.5) g‘ ' (RpRs)2 39

where G is the gravitational constant, 6.67428 x 1CT11 Nm2/kg':; M® is the Earth’s

mass s 5.9736 x 1024 kg; Rp is the planet radius in Earth radii; /?© is the Earth’s radius 3 6.37814 x 106 m; and finally gs is the surface gravity in m /s2.

Equilibrium temperature (Teq):

The planet’s equilibrium temperature is also needed in the generation of spec­ tra of model atmospheres. Again, we are assuming circular obits. In addition, we

are assuming zero albedo, and full day-night heat distribution through the atmo­ sphere. We can estimate equilibrium temperature as follows (see Equation (12) of

Sullivan et al. (2015)):

(2.6) where Teq is the planet’s equilibrium temperature in K. This, of course, ignores any potential greenhouse effects that might exist.

Transit duration (idur):

The transit duration for each target planet is a key element in our analysis. For our purposes, we define the transit duration to be the interval between the first (tj) and fourth (tjy) contacts as shown in Figure 2.3. This interval is otherwise known as t]4.

If we assume circular orbits, and the planet’s orbital inclination (i) to be 90 40

Figure 2,3: Illustration of a transit, showing the four contact points, the impact parameter (b), the ingress/egress time (r), and transit depth (6). Inspired by Winn (2010). 41

deg., which constrains the transit impact parameter b to 0, we can estimate the

total transit time (tdur = ^14 ) as follows:

We begin with the left side of Equation (14) from WTinn (2010):

Ttot — tiv — tj (2.7)

We can define the time interval between contact times 1.5 and 3.5 as T, as

described in Figure 2.3:

(2.8)

where r is the ingress/egress duration.

In the limit that the eccentricity of the planet’s orbit e —» 0, Rp « R* « a (using

consistent units in this case), and b = 0, we have from Equations (18 and 19) of

Winn (2010):

where P is the planet’s orbital period in days, and T is the time interval between contact times 1.5 and 3.5 in hours.

We can now define r as follows:

(2.10) where r is in hours. 42

Finally, given our assumptions, we have the full transit duration:

W = *14 = rM = T + r 3 ( l + 24) (2.11)

where tdUr is in hours.

2.2.4 Categorizing targets

The next step in our analysis process is to categorize the target planets. We

have chosen to divide the survey set into seven categories along planet radius and

equilibrium temperature dimensions.

In this work, we are focusing our attention on planets with generally smaller radii (RP < 10 /?©).

• Cat 1. Cool Terrestrial: Teq < 400 K, and Rp < 1.7 i?©

• Cat 2. Warm Terrestrial: 400 K ^ Teq < 800 K, and Rp < 1.7 i?©

• Cat 3. Hot Terrestrial: Teq > 800 K, and Rp < 1.7

• Cat 4. Cool sub-Neptune: Teq < 400 K, and 1.7 i?© ^ Rp ^ 4.0 i?©

• Cat 5. Warm sub-Neptune: 400 K < Teq ^ 800 K, and 1.7 i?© < R^ ^ 4.0 i?©

» Cat 6. Hot sub-Neptune: Teq > 800 K, and 1.7i?@ ^ Rp < 4.0 i?© 43

• Cat 7. sub-Jovian: Rp > 4.0/2® This category captures all survey targets of large

radii. Targets with Rp > 10.0 R.© are flagged and no transit detection calcula­

tions are made on them. These targets drop to the bottom of the ranking for

Category 7.

These are somewhat arbitrary category divisions; however, the break at

Rp = 1.7 i?® is based on recent exoplanet population studies (Fulton et al. 2017;

Petigura et al. 2017) that seem to indicate that a gap exists in the exoplanet popu­ lation around this radius. The reason for the gap may be due to photoevaporation during planetary evolution as discussed in Eylen et al. (2018).

2.2.5 Determining JWST observing constraints

JWST has viewing constraints that are defined by its orbit and configuration.

As we discussed in Section 1.1, the spacecraft orbits around the Sun (in the ecliptic plane) at the L2 position with a one year period. At all times the large sun-shield must be positioned between the Sun and the science instruments to maintain the very cold environment necessary for infra-red observations. The sun-shield geom­ etry creates limitations on where the spacecraft can point at any particular time and for how long, as shown in Figure 2.4. Targets at low ecliptic latitudes are par­ ticularly impacted by these constraints. This is well described in the on-line User 44

Documentation for JWST Target Viewing Constraints.12

For a target at a particular ecliptic latitude there are only a certain number of days per year that JWST can observe it. This means that depending on the position and transit period of the target system not all transits may be observable.

This could be a problem for low S/N targets (meaning many transit observations necessary) that have long periods, and that are at low ecliptic latitudes.

For each target we compute the number of transits that would be observable over the full 10 year fuel life of the spacecraft. If the transit requirement for detection exceeds the number of transits available we raise a flag in the output.

Within ExoT_Master our algorithm for computation of transits available over the 10 year mission is only approximate. We would need to include the absolute transit timing and absolute JWST orbital position to more accurately determine this parameter for a given target. However, our estimate should be acceptable for our purposes.

We first compute the number of mission days available in the 10 year (fuel limited) mission, less a six month commissioning period:

t mission (10 - 0.5) * 365, days (2.12)

Then we compute the number of transits available (but not necessarily observ-

12https://jwst-docs.stsci.edu/display/JTI/JWST+Targetf Viewing-hConstraints 85° Solar Elongation Field of Regard

Cold Side

Figure 2.4: JWST can point at solar elongations between 85 and 135, as shown above. It can also point to any location in the 360 circle perpendicular to the sun line. This defines a large annulus where JWST can observe at any given time (the field of regard). (Ref: JWST User Documentation) 46

able) in a 10 yr mission:

TltlOyr, available = (1/^ ) * tm issio n (2.13)

where P is the planet’s orbital period in days.

Next, we convert the target’s decimal coordinates into hours-minutes-seconds

coordinates. This is done using the Python Astropy SkyCoord routines.13 Then we

convert to Ecliptic coordinates using the Python Pyephem package.14

We then take advantage of the Space Telescope Science Institute’s (STScI) anal­

ysis that produced an estimate of observable days vs ecliptic latitude for JWST

shown in Figure 2.5. For the target’s particular ecliptic latitude we can then esti­

mate (with a spline interpolation of data drawn from this plot) the number of days

out of 365 that the target will be observable: the observable days factor (fobsdays)•

We are not considering the impact of the six month split for observations below an ecliptic latitude of 45 deg. We only consider aggregate observable days available.

Finally, we can estimate the rough upper bound on the total number of transits that would be observable in the 10 year mission as:

fl' lOyr ’ TltlOyr, available * fobsdays (2..14)

13http://docs. astropy.org/en/stable/api/astropy.coordinates. SkyCoord.html 14https://rhodesmill.org/pyephem/index.htm] 47

Figure 2.5: Here we show the number of days that targets can be observed by JWST each year, as a function of ecliptic latitude. Below 45 deg. this observability comes as two shorter time periods separated by six months. Above 45 deg. one longer viewing period is available, increasing until the continuous viewing zone is reached at approximately 85 deg. ecliptic latitude. (Ref: JWST User Documentation) 48

For further information on target visibility we recommend The JWST General

Target Visibility Tool (GTVT). This is a command-line Python tool that provides

quick-look assessments of target visibilities and position angles for all JWST instru­

ments.15

2.2.6 Generating model transmission spectra with Exo-Transmit

Now we are in a position to generate model transmission spectra. In general we will not know the characteristics of the target planet’s atmosphere. We might be able to make an educated guess, but our approach is to assume that we do not know.

From Kempton et al. (2017) we know that spectral line strength is related to atmospheric metallicity and cloud levels as shown in Figure 2.6. We set up two bounding cases of observability: (1) a relatively easy to detect low-metallicity atmo­ sphere (5xSolar) with no clouds, and (2) a more difficult to detect high-metallicity

(lOOOxSolar) atmosphere with a low (100 mbar) cloud deck. In each case the conden­ sation and removal via rain-out of molecules from the gas phase is included, but it does not include condensation and rain-out of graphite. The specific Exo-Transmit

Eq. of State input file names and other input parameters for the two atmospheres are given later in Table 5.1.

15https://jwst-docs.stsci.edu/display/JPP/JWST+GeneraH-Target+Visibility+Tool+Help 49

It should be mentioned that Exo-Transmit provides the user with over 60 differ­

ent Equation of State (EOS) file choices, modeling various conditions of metallicity,

condensation, etc. We have chosen files with solar constituents, and with high and

low levels of metal abundance. These particular files also allow for condensation

and removal via rainout of molecules from the gas phase - but they do not include

condensation and rainout of graphite. This was an arbitrary choice. Alternative

EOS files are available that would allow consideration of the rain-out of graphite,

which would fully deplete the model atmosphere of all carbon-beaxing species at low

temperature.

For a given target, and for each of the atmosphere cases, our ExoT.Master

program will write the appropriate set of planetary parameters to a transfer input file (userInput.in). The parameters written include the equilibrium temperature (we

assume an isothermal atmosphere); the equation of state (defines the metallicity

and other atmospheric characteristics, e.g, rain-out of condensates); planet surface gravity; planet radius; host star radius; and in the case of clouds, the pressure at the cloud top. We have assumed the default Rayleigh scattering factor (1.0). This can be increased to simulate additional sources of scattering.

In addition, there are two other files that provide input to our spectral analysis code: selectChem.in, and other Input, in. We will describe these files as part of the software installation discussion in Section 4.2.

For each target/atmosphere case our Python program ExoT_Master calls the 50

1 10 100 1000 Metallicity (x Solar

Figure 2.6: Transmission spectral feature prominence as a function of metallicity and cloud levels. Metallicity is scaled relative to Solar. The line strength scale has been normalized to a maximum of one with a cloud-free atmosphere and 5xSolar metallicity. The line strengths were determined by taking the difference in max and min transit depth over the wavelengths of 0.5 - 2 pm. High metallicity (related to high mean molecular weight) and the presence of higher altitude level (lower pressure level) clouds reduce the strength of spectral features. Figure from Kempton et al. (2017). 51

program Exo-Transmit (written in C) to generate the model spectra. Exo-Transmit is a flexible tool aimed at calculating transmission spectra for a wide range of exo­ planet size, surface gravity, equilibrium temperature, and atmospheric composition.

The code essentially solves the equation of radiative transfer for absorption of the host star’s light as it travels through the planet’s atmosphere during a transit.

For each target/atmosphere case Exo-Transmit generates a moderate resolution

(R ~ 1000) spectrum across a wide wavelength range (0.3 - 30 Figure 2.8 presents an example of model spectra generated for Sullivan Target 1292. We have chosen Target 1292 arbitrarily, but it is a reasonable example case. The survey data and JET-computed parameters for this target as well as its location on the sky are shown in Figure 2.7.

For multi-target runs of JET, the full moderate resolution spectrum for each target/atmosphere case is saved as a .txt file to the folder “Spectra” within the working directory. In addition, the system parameters (a, Teq, etc.) are written to the .txt file: Pdxo_Input.txt, also in the working directory.

2.3 Detecting transmission spectra with JWST (Pdxo_Master)

The next major step in the analysis process is to determine if the JWST in­ struments can detect the target transmission spectra. This task is carried out by the JET program element: PdxoJVlaster. Figure 2.9 presents a flowchart for the

Pdxo-Master program element. Sullivan Target 1292

RA Dec Rv P S R, Teff Jjnag a Teq 9 s M in ed tdur ntlQljr [deg] [deg] [fi»] [days] [5®] l*°\ [K] [mag] [*0] [K] [m/s2] [A/®] [hrs]

248.8 -29.47 1.52 14.3 1.4 0.25 3351 9.1 15.3 300 12.4 2.92 1.8 68

survey data------1------JET computed

Figure 2.7: We have arbitrarily chosen Sullivan Target 1292 as a reasonable example case. We show the survey/catalog data and the JET computed parameters for the target, as well as its location on the sky. The chart shows relative Vmag. For reference, Antares has a Vmag of ~0.9. Sullivan 1292 has a Vmag of ~ 12.7. Chart Ref: Andrew L. Johnson, Cloudy Nights LLC. g Transit Depth (%) 0.30 0.34 0.36 0.32 0.38 0.40 0.42 difference (~ 400 ppm) between the low and high metallicity atmospheric spectra. atmospheric substantial a metallicity is high There and low depth. the between transit in ppm) increases 400 vertical by (~ difference represented lines absorption with inverted uin optd y x-rnmt Te ae hw i te ovninl anr o tasiso - transmission for manner conventional the in shown are They Exo-Transmit. by computed lution iue .: oe tasiso seta o Slia Tre 19. h seta hw h fl reso­ full the show spectra The 1292. Target Sullivan for spectra transmission Model 2.8: Figure ol slrod cod t 0 mb 100 at clouds Xsolarcond; O O clouds eoslO no eos_5Xsolar_cond; 0° ToT ° 10 aeegh (jum) Wavelength CO Or Figure 2.9: Analysis and code flow for JET program element Pdxo_Master. 0^ 55

2.3.1 Generating simulated transmission spectra with Pandexo

For each target/atmosphere case, PdxoJVIaster first sets up a Python input dic­ tionary for the instrument simulator, Pandexo. The community tool Pandexo, a

Python package described in Batalha et al. (2017), takes as input: the survey data, the system parameter data (passed through the transfer file: Pdxo_Input.txt), and the model spectrum for the particular target/atmosphere in question. It also takes input from the top level parameters set in JETJnput.txt, that define the particu­ lar instrument considered, its wavelength range, the noise floor, and the detector saturation magnitude, among other things. Pandexo is primarily a noise simula­ tor. At its core, it relies on the Space Telescope Science Institute’s Exposure Time

Calculator, Pandeia.

Pandexo is first run for a single transit. This gives us a baseline simulated instru­ ment spectrum with la error bars for each data point (at n wavelength locations, depending on the instrument and spectral resolution chosen). Figure 2.10 presents a simulated transmission spectrum of Sullivan Target 1292 using NIRSpec 395M, with a low-metallicity atmosphere (5xSolar, no clouds), for one transit. We also present the simulated spectrum for this target for a high metallicity atmosphere

(lOOOxSolar, clouds at 100 mbar) in Figure 2.11. The NIRSpec G395M disperser covers the wavelength regime from 2.87 to 5.18 /nil, with a noise floor estimated to 56

be ~ 25 ppm.16

In the figures, we show the model spectrum in the background, and have re­

binned the data to R ~ 100 to match the resolution set in the Pandexo simulation.

The lower (than native instrument) resolution is used to reduce overall computation

time. In the description of the analysis that follows, the re-binned model spec­

tral values are designated yTebin- The re-binning process is accomplished using the

Python package SpectRes as described in Carnall (2017).

2.3.2 Detecting the transmission spectra

For a particular target/atmosphere, the question that we need to answer is: can the spectrum be detected given the instrument’s noise characteristics. If the observation of one transit is insufficient to detect the spectrum, will the observation of additional transits pull a detectable signal out of the noise.

Specifically we want to determine, in a formal way, whether our simulated spec­ trum is a better fit to the model spectrum or to a flat-line spectrum. We use a

Bayesian Information Criterion (BIC) approach to guide this selection (Wall and

Jenkins 2012; Kass and Raftery 1995). This technique will allow us to determine if the spectrum is detectable at all, and if so, how many transit observations will be needed for a strong detection.

!ij https://jwst-docs.stsd.edu/display/JTI/NIRSpec+BQTS+Operations Transit Depth (%) 0.31- 0.32 1 3 .3 0 - 0.34 0.35 - 0.36 1 0,37 ■ 0.38 0.39 - 0.39 akrudln a enbne ont eouincnitn ihtesmltddt R~ 100). ~ (R data simulated the with consistent resolution a to down binned been has line background Figure 2.10: Simulated spectrum for a single transit of Sullivan Target 1292 with a low-metallicity low-metallicity a with 1292 Target Sullivan of transit single a for spectrum Simulated 2.10: Figure (5xSolar, no clouds) atmosphere using NIRSpec G395M. The model spectrum shown as the grey grey the as shown spectrum model The G395M. NIRSpec using atmosphere clouds) no (5xSolar, aeegh Qjm) Wavelength Cn -J Transit Depth (%) 0.29 0.30 0.30 0.31 0.32 0.33 0.34 0 0.36 . 5 3 - - ­ h ge akrud ie a be bne dw t arslto cnitn wt te iuae data simulated the with consistent resolution a to down binned been has line background grey the Figure 2.11: Simulated spectrum for a single transit of Sullivan Target 1292 with a high-metallicity high-metallicity a with 1292 Target Sullivan of transit single a for spectrum Simulated 2.11: Figure (lOOOxSolar, clouds at 100 mbar) atmosphere using NIRSpec G395M. The model spectrum shown as shown 100). spectrum ~ model (R The G395M. NIRSpec using atmosphere mbar) 100 at (lOOOxSolar, clouds Wavelength Wavelength (/ j m) OO Cn 59

Fortunately, we do not need to re-run the full Pandexo simulation over and

over to determine the results of observations of multiple transits. We can compute

the improvements in signal to noise, and the effects of the instrument noise floor

analytically.

Our one-transit Pandexo run, described in the previous section, generates a

simulated spectrum with n spectral data elements of wavelengths: x; spectral values:

y; and error values: e. In addition, we can extract another set of data from Pandexo

that does not include random noise. We will call these wavelengths, xltmns; the

spectral values, yitrans', and the noise values, eUrans.

We then compute the integrated multi-transit noise (noisemuiti- transit):

. eltrans /o i c\ TIOXS ^multi—transit /—- (2.l0j y ntr

where ntr is the number of transit observations co-added.

If this value is less than the noise floor, then we reset it to the noise floor lower bound. Clearly, this multi-transit noise term will tend to smaller and smaller values

as the number of transits increases (bounded by the noise floor).

Next, we compute a random noise value:

n o iserandom ~ ^O^SCrnxdti--transit * frandom (2. 16) where for each statistical sample, the frandom term is drawn from a standard normal 60

distribution with mean 0 and variance 1.

Now we can recast the spectrum with random noise

2-1 = X \trans (2-17)

SpCC'tTUTnsim Vltrans TIOXSCrandom ^2.18)

Adjusting for transit depth % units:

2/ioo = spectrumsim * 100 (2.19)

GlOO ’noi'S&multi—transit * 100 (2.20)

Next, we compute the BIC value for the model spectrum case. We first deter­ mine the chi-squared statistic (x2), and the reduced chi-squared statistic {xl), for the single transit spectral data:

2 V 1 / 2/100 — Urebin \ Xms = Z j ------(2.21) \ e 100 / 61

- A i ) < 2 -2 2 )

For the model spectrum case we assume the number of degrees of freedom (ridof)

used in the calculation of the reduced chi-squared (Xms,t) ~ 4. Our model spec­ trum is based on many free parameters, but the main drivers are planet mass, planet radius/host star radius, equilibrium temperature, and atmospheric composition. In our view, a value of 4 for n^f is reasonable here.

Next, we compute an error factor to drive xl-tsr t0 1-

fe r r o r ~ yX M S,r (2.23)

Then we determine the rescaled x2 for the model atmosphere case:

®combined ~ y i f error * ^loo)2 (2.24)

and,

2 = W - ^ 0 0 V reM n\ ^ ^ Xms \ &combined J

and again,

- r a (2-26) 62

Finally, we can compute the BIC value for the model spectrum case (BICms)•

The BIC is formally defined as:

BIC = ln(n)fc - 2 ln(L) (2.27)

where L is the maximized value of the likelihood function of the model M.

L = p(x\d,M), where 9 are the parameter values that maximize the likelihood function, x is the observed data, in our case the spectral transit depth values; n is the number of data points in x (in our case the wavelength points), essentially the sample size; and k is the number of parameters estimated by the model (effectively the number of degrees of freedom, ridof )■

As discussed in Kass and Raftery (1995), under the assumption that the errors are independent and follow a normal distribution, the BIC can be rewritten in terms of the x as:

BIC = x2 + kln{n) (2.28) where k is the number of model parameters in the test.

For the model spectrum case we have:

BICMs — Xms + 41n(n) (2.29)

Next, we repeat the BIC calculation for the case of the flat-line spectrum. In this 63

case we assume that the flat-line spectrum is just the median value of the simulated

spectrum. We also assume that the number of degrees of freedom (ridof) is 1. Then

we determine y? for the single transit spectral data:

The x 2 f°r the flat-line case is: x 2FL = ^fVm-mcdian(ym )\2 (2.30) V &combined J

We can now determine the BIC value for the flat-line spectrum case (BIC fl)'■

BICFl = X fl + ln(n) (2.3i)

For model selection we are interested in the difference in BIC. When picking

from multiple models, the one with the lower BIC is preferred.

We can define the parameter:

dBIC = A BIC = BICFL - B IC ms (2.32)

For a strong detection we need dBIC > 10.

Now we can loop on this sequence, holding the number of transits constant and just considering new random samples of noise. With enough samples (we use ~ 1750 for each transit grid point) we build up a distribution of dBIC (the distribution tends 64

toward Gaussian) from which we can determine the mean and standard deviation.

We then move to the next higher number of transits on the grid and build up another distribution of dBIC, repeating the process outlined in Equations 2.15 through 2.32. We use 15 transit grid points, from 1 transit to 50 transits (with spacing increasing as the number of transits increase). The result is a dataset of mean dBIC (and standard deviation) vs number of transits.

For a particular transit grid point, if we use the mean value of dBIC as our critical parameter, then we can say that we have a 50% confidence level of a very strong detection if dBIC > 10. Assuming a Gaussian distribution, if we reduce our dBICmean parameter by la, then for this dBICmean less la we have an ~ 84% confidence level of a very strong detection.

For each target/atmosphere combination we first check the dBICmean less la for one transit. If it is > 10 we record that detection and move on. If not, then we check to see if the dBICmean less la for 50 transits is > 10. If not, then we flag this target/atmosphere as a non-detection and move on.

If neither of these conditions are met, then we need to determine the number of transits to reach the detection threshold. We use the Python routine Univari- ateSpline from the Scipy package to interpolate the 15 element less la dataset. The smoothing parameter (,s) is dynamic. We set it to 2 (soft spline) if the dBICmean at 50 transits is less than 175; otherwise we set it to zero (spline goes through all points). Then we use the Scipy routine Brentq to find the crossing point 65

of number of transits for a dBfCmea„ less 1 a of 10.

We plot the dBIC vs transit curves and save them in the JET working directory in the folder “dBIC”. Figure 2.12 presents a plot of dBIC vs number of transits for

Sullivan Target 1292 with a high metallicity atmosphere.

2.3.3 Determining the observing cycle time needed for detection

The critical resource is total observing time. For a single transit observation there

are a number of actions that take time. These include: (1) slewing the spacecraft

to the proper target; (2) acquiring the target; (3) allowing the detectors to settle;

(4) observing the transit; (5) observing the host star out-of-transit for the same length of time as the transit itself to establish the baseline flux level; and (6) various overheads added based on experience with other space telescopes.17

We have captured these activities and overhead factors in Table 2.2.

So, for a given number of transits needed for detection, we can determine the total observation time needed:

hot = ntr * (2 * tdur + 2.4) * 1.16, hours (2.33) where tioi is the total observation time in hours, ntr is the number of transits required

17https://jwst-docs.stsci.edu/display/JPP/JWST-|-Observing+Overheads -l-and+Time-I- Account ing-l- Overview dBIC value is also shown and is the critical line for determining detection with very high confidence. high very with detection determining for line critical the is and shown also is value This shows a very strong detection for ~ 10 transits. The mean mean The transits. 10 ~ for detection strong very a shows This the Univariate spline fit with soft smoothing is shown as well for this mean value. The mean less mean The value. mean this for well as shown is smoothing soft with fit spline Univariate the Figure 2.12: dBIC vs number of transits for Sullivan Target 1292 with a high metallicity atmosphere. atmosphere. metallicity high a with 1292 Target Sullivan for transits of number vs dBIC 2.12: Figure transits # dBIC grid points are shown and and shown are points grid la

67

Table 2.2: Observation Time Elements

Action for single observation Time est.

Slew 0.5 hrs Acquisition 0.3 hrs Detector settling 0.5 hrs Cleanup 0.1 hrs

Transit ' dur Out of transit (baseline) dm Timing tax 1.0 hr Instr. config overhead 16 % of total above

Notes. — Details from private communication with NASA researchers. Instrument and telescope times are best esti­ mates for the first year of science observations (Cycle 1) as of late 2018. To avoid a systematic bias, the “Out of tran­ sit” observation is typically split into two parts, pre-ingress, and post-egress. 68

for detection of the transmission spectrum, and tdur is the transit duration in hours.

We determine the total observation time for both atmosphere cases of each target.

Then, given the broad range of plausible atmospheric compositions we simply take

an average of the two to determine our figure of merit (ttot,avg)'■

, V -tot,lo tto t,h i) i /o o \ ttot,avg = 1—^---- — , hours (2.34)

Finally, summary data for each target is gathered by Pdxo_Master. Upon com­

pletion of the analysis of the target list, this summary data is written to the file:

Pdxo_Out.txt in the working directory. The data here is in unranked target order.

2.4 Sorting and ranking targets (Rank_Master)

Once we have completed the analysis of all of the targets and computed the

average total observation time required for detection of the atmosphere it is time to

sort and rank the targets and provide summary statistics.

The program element Rank_Master reads in summary data from Pdxo_Out.txt.

This summary data is a flat file with each row holding 25 data elements for each target (1984 rows for the “Sullivan” survey). We first use the native Python routine

“sorted” to sort the file by Category. Next, using a two level sorting approach, we rank the targets within each category on the average total observing time parameter

(Uot.avg)• Targets that have hit warning flags (e.g., detector saturation, Rp > 10 R®, 69

etc.) are listed at the end of the viable ranking for each category.

The final output file (e.g., JET_Smry_20180912-011034.txt) is labeled with a date and time stamp. This file is generated by Rank_Master and is stored in the user created folder/dir: “JET_Smry.tables”.

The output data table itself begins with a section that defines all of the variables and gives units. There is also a section that lists the settings for the run: JWST

Instrument, Wavelength Range, Jmag Limit, Noise Floor, Eqs. of State for each atmosphere, and the Detection Threshold.

The next output section includes target tables organized by category and ranked by the average total observing time parameter. Summary statistics (min, max, med, mean) for each category, and for the overall target set are included.

Figure 2.13 presents a flowchart for the Rank-Master program element. Figure 2.13: Analysis and code flow for JET program element Rank_Master. o 71

Chapter 3

Validating the JET code

In order to have confidence that the JET code is performing its calculations correctly, we have gone through a validation exercise. We have considered the various parameters that are determined by JET and compared those with manual calculations using the methods described in Chapter 2, and with reference data if available.

For the model spectra and simulated instrument spectra generated by Exo-

Transmit and Pandexo respectively, we will only attempt to show that our im­ plementation of these programs is working correctly within the JET framework.

We assume that they are designed correctly and if properly implemented produce reasonable results. 72

3.1 Planet masses

We first consider the planet mass estimates. Our method for estimating planet

mass based on planet radius is described in Section 2.2.2 above. Table 3.1 presents

basic data for the first four targets of the Sullivan survey, for several solar system

planets, and for the well known exoplanet GJ 1214b. The planet mass (Mmed)

estimated by JET is compared to a manual calculation based on the previously

described methods. The JET-to-Manual residuals for mass are well under 1 % for

the example cases considered (see Table 3.2)

For the solar system planets and for GJ 1214b, we compared the JET mass

estimates to reference masses. For the solar system planets the JET mass estimates

are within 7% of reference, except for Mercury, which with its very small radius,

has a mass that is not well approximated by the methods of Chen and Kipping

(2017). Mercury has a radius of ~ 0.38/?®, whereas the smallest planet radius in

the Sullivan survey is ~ 0.70 i?®. The mass estimate for GJ 1214b is off by ~ 16%.

This is still within the acceptable bounds of uncertainty of our estimation approach.

3.2 System parameters, and transits observable

In a similar manner, we validate the JET calculations for the other planetary system parameters (a, Teq, gs, tdur, and n^r103/T.). Again, Table 3.2 presents the results of this validation study. For all of the targets the JET-to-Manual calculation 73

Table 3.1: Basic Survey Data for Validation

Survey and Reference data: Targ Rp Per S R* Teff Jmag [R®] [days] [S®] [R©] [K] [mag] 1 3.31 9.1 361.7 1.41 6531 7.6 2 2.19 14.2 2.1 0.32 3426 11.6 3 1.74 5.0 235.0 0.95 5546 8.8 4 1.48 2.2 1240.0 1.13 5984 7.0 Earth 1.00 365.0 1.0 1.00 5777 Mercury 0.38 87.6 6.7 1.00 5777 Mars 0.53 686.2 0.4 1.00 5777 GJ 1214b 2.67 1.6 17.6 0.22 3026 9.8 74 Table 3.2: Validation of JET Calculation of Planetary Parameters.

JET computed values:

Targ a ^eq g s Mmei t dur nt 10yr [R®] [K] [m/s2] [M®] [hrs] 1 20.4 1215 9.8 11.0 4.9 163 2 17.0 333 11.1 5.4 2.2 137 3 12.3 1091 11.9 3.7 3.0 280 4 7.4 1653 12.5 2.8 2.5 514 Earth 215.1 279 9.5 1.0 13.1 Mercury 83.3 448 2.1 0.0 8.1 Mars 328.0 226 3.5 0.1 16.1 GJ 1214b 3.0 570 10.5 7.6 1.0

Manual calculation (by methods o f Chapter 2): 1 20.5 1213 9.8 11.0 4.9 163 2 17.0 333 111 5.4 2.2 136 3 12.4 1089 11.9 3.7 3.0 282 4 7.4 1651 12.5 2.8 2.6 510 Earth 215.5 278 9.5 1.0 13.1 Mercury 83.4 447 2.1 0.0 8.1 Mars 328.7 225 3.5 0.1 16.1 GJ 1214b 3.0 570 10.5 7.6 1.0

JET to Manual residual (%): 1 0.2 -0.1 -0.2 0.0 0.3 0.0 2 0.2 -0.1 -0.2 0.0 0.3 -0.7 3 0.2 -0.1 -0.2 0.0 0.3 0.7 4 0.2 -0.1 -0.2 0.0 0.3 -0.7 Earth 0.2 -0.1 -0.2 0.0 0.3 Mercury 0.2 -0.1 -0.2 0.0 0.3 Mars 0.2 -0.1 -0.2 0.0 0.3 GJ1214b 0.2 -0.1 0.1 0.3 0.3

Reference parameters (NASA Exoplanet Archive, exoplanet.eu, and SIMBAD): Earth 215.5 279 9.8 1.0 13.0 Mercury 83.4 449 3.7 0.1 8.1 Mars 327.6 218 3.7 0.1 16.0 GJ 1214b 3.0 604 8.8 6.6 0.9

ET to Reference residual (%): Earth -0.2 -0.2 -2.9 -2.9 0.6 Mercury -0.1 -0.3 -44.4 -44.9 -0.5 Mars 0.1 3.5 -6.1 -6.7 0.4 GJ1214b 0.3 -5.5 18.8 16.1 9.9 75

residuals are well under 1 %. The very small errors are due to minor roundoff and constant differences between the manual calculations and those carried out by the program.

For the JET-to-Reference comparison we see some bigger differences. The simple

JET estimate of Teq is a little off for Mars and GJ 1214b, probably due to our assumption of zero albedo and other small differences. The reference Teq for Earth is shown for zero albedo. Finally, the JET-to-Reference residual for the GJ 1214b transit duration is off by ~ 10 %. This could be due to many factors, including differences in the assumptions for eccentricity (value < 0.14), inclination (values between 87.63 and 90 deg.), host star radius (values between 0.204 and 0.228 R©), or planet radius (values between 2.19 and 3.05 i?©).18

We are confident that these system parameters are being calculated correctly by the JET code.

3.3 Model spectra

To validate the calculation of model transmission spectra we have taken a bench­ mark spectrum generated by Exo-Transmit for the exoplanet GJ 1214b (obtained by private communication with the Exo-Transmit code’s lead author, E. Kempton and described in Kempton et al. (2017)) and compared it with a model spectrum

18https://exopIanetarchive.ipac.caltech.edu/ 76

produced by the JET ExoTJVlaster subprogram. The benchmark Exo-Transmit spectral data is based on planetary system parameters from exoplanet.eu. For the comparison JET spectrum we have used the exoplanet.eu data for the basic survey-like input data and relied on the JET computed values for the other system parameters.

The two spectra shown in the upper panel of Figure 3.1 are a very close match.

The small differences seen are likely due to differences in the re-binning and smooth­ ing algorithms used, and due to minor differences in input parameters for the planet- host star system. The lower panel shows the JET-to-Exo-Transmit residuals at the same scale.

Figure 3.2 shows the distribution of the JET-to-Exo-Transmit residuals. The mean of the residuals is ~ - 4 ppm, with a standard deviation of ~ 55 ppm.

We have demonstrated that the JET code has properly implemented the under­ lying Exo-Transmit code and is producing consistent transmission spectra.

3.4 Simulated spectra

Our approach to validation of our calculation of simulated instrument spectra is essentially the same as that of the previous section. We have taken a benchmark spectrum generated by Pandexo for the exoplanet GJ 1214b (obtained by private communication with the Pandexo code’s lead author, N. Batalha, and described in

Batalha et al. (2017)) and compared it with a simulated spectrum produced by the Wavelength (j/m) Figure 3.1: Comparison of a test transmission spectrum for GJ 1214b generated by our JET code with a benchmark spectrum generated by Exo-Transmit shows excellent agreement across a broad spectral range. Residuals are shown at the same scale. Counts is Tema ftersdasi ~ 4 p, ihasadr eito f~ 5 ppm 55 ~ of deviation standard a with ppm, 4 - ~ is residuals the of mean The bias. Figure 3.2: The JET-to-Exo-Transmit (ET) benchmark residuals are small and show no systematic systematic no show and small are residuals benchmark (ET) JET-to-Exo-Transmit The 3.2: Figure eiulTastDph (%) Depth Transit residual 79

JET Pdxo-Master subprogram.

The two spectra (in this case the data points representing the instrument spectra for a single transit with random noise) shown in the upper panel of Figure 3.3 are a close match. The small differences seen are likely due to the fact that each case is

a different random noise instance and would only agree in overall distribution. The lower panel shows the JET-to-model residuals and the Pandexo-to-model residuals.

Figure 3.4 shows the distributions of the two residual plots (JET-to-model, and

Pandexo-to-model) overlaid. They are a close match. The difference in the mean of the residuals is ~ 20 ppm, with the difference in standard deviation of the residuals

~ 5 ppm.

We have demonstrated that the JET code has properly implemented the under­ lying Pandexo code and is producing consistent simulated instrument spectra. 3.0 3.5 4.0 4.5 5.0 Wavelength (^m) Figure 3.3: Comparison of simulated spectrum for GJ 1214b generated by our JET code with a benchmark spectrum generated by Pandexo shows good agreement across the bandpass. Residuals are shown at the same scale. histogram. There is good agreement. The difference in the mean of the residuals is ~ 20 ppm, with with ppm, 20 ~ is residuals the of mean the in difference The agreement. good is There histogram. h ifrnei tnad eito ftersdas 5 ppm. 5 ~ residuals the of deviation standard in difference the Counts Figure 3.4: Here we overlay the JET-to-model residual histogram on the Pandexo-to-model residual residual Pandexo-to-model the on histogram residual JET-to-model the overlay we Here 3.4: Figure - 0.02 00 00 0.01 0.00 -0.01 eiulTastDph {%) Depth Transit residual adx rsda mean residual Pandexo mean residual JET — adx rsda sd dev std residual Pandexo dev std residual JET 82

Chapter 4

Program installation

The JET program installation is generally straightforward, but there are a few

minor adjustments to programs from outside sources that need to be made for every­ thing to run smoothly. In this chapter we outline the overall installation procedure

and provide references for detailed installation instructions for major code elements

(e.g., Exo-Transmit, Pandexo, etc.). We also comment on the hardware that was

used for program development and testing, and its limitations.

4.1 Hardware configuration

The JET code was developed and tested on a modest custom-built desktop computer. Jn addition, all test runs to date have been executed on this machine.

The specifications for this system are shown in Table 4.1.

In hindsight this computer system was fine for development, but for test runs with the large target survey dataset the processing speed was inadequate. The Table 4.1: Computer Hardware for Development and Testing.

Component Details

Processor Intel Core i7-2600 Clock 3.40 GHz CPU’s 4 Threads/CPU 2 Motherboard ASUSTeK P8Z68-V RAM 16 GB Internal Storage 256 GB SSD External Storage 3 TB Cooling Air

Notes. — custom built desktop machine 84

overall run time was ~ 5.3 minutes per target (in a single processor mode). With

1984 targets in the “Sullivan” survey this meant a total run time of ~ 175 hours.

Eventually we were able to split the target list and run two instantiations of the

code in parallel. This reduced the overall run time to ~ 100 hours.

4.2 Software configuration

The desktop computer described in the previous section runs the Windows 7

Ultimate (SP1) operating system. We chose to develop the JET suite of programs to run in a Linux environment. We used Oracle VirtualBox software (5.1.26) to run

a Linux guest OS (specifically Ubuntu 16.04) under the Windows 7 host.

The VirtualBox software allows files to be shared between the two OS’s, which is very useful, but otherwise it keeps the two systems separate. In order to implement the file sharing feature it was necessary to edit the system BIOS to enable the CPU’s virtualization features. Unfortunately, the details of the editing are a little different with different motherboards and CPU hardware so it is hard to give specifics here.

The key is to sort through the BIOS menus at boot up to find the CPU virtualization feature toggle and enable it. Of course, if the JET suite is installed on a Linux machine in the first place there is no need to worry about virtualization software.

A JET working directory (folder) should be established to contain the JET code suite. In addition to the JET Python program elements, an input .txt file

(JETJnput.txt) needs to be established in the working directory. This file sets 85

certain control variables as described in Section 2.3.1 and Appendix A. In addition,

the target survey in the “Sullivan” .txt format needs to be copied to the working

directory. Finally, two new empty folders need to be established in the working

directory: (1) “JET_Smry-tables” to hold the output tables as they are generated,

and (2) “dBIC” to hold the ‘dBIC vs number of transit’ plots as they are generated.

The Forecaster code described in Chen and Kipping (2017) is written in Python

and requires a fairly simple installation into the JET working directory. For reasons

discussed in Section 2.2.2, we have disabled the full Forecaster MCMC code in the

ExoT.Master component of JET.

A separate installation process is necessary for the Exo-Transmit code which is

written in C. The installation procedure is described in detail in Kempton et al.

(2017) with GitHub references provided. Similarly, an installation procedure is

necessary for the Pandexo code which is written in Python. This is described in

detail in Batalha et al. (2017).

Minor changes are necessary to both the Exo-Transmit and Pandexo code from

their released versions. For Exo-Transmit with high metallicity atmospheres, some of

the wavelengths can be optically thick all the way to the very top of the atmosphere.

This will cause a hard cutoff of the spectrum at a specific transit depth. To extend the atmosphere to higher up (i.e., lower pressures), more lines need to be added to the T-P files (we went from 333 to 533 lines), extending the decaying exponential to lower pressure. The number of optical depth points given in the file: otherlnput.in, 86

will also need to be modified to give the correct number of lines for the new T-P files.

There are several input files associated with Exo-Transmit that have not been described in detail. These have been left with their default values and generally should not have to be disturbed by the user. It is possible to make changes to these if necessary. Further details can be found in the Exo-Transmit user manual provided with the installation package.

- selectChem.in: This file enables the user to select and de-select which absorp­ tion and/or scattering processes are included in the transmission spectrum calcu­ lations. De-selecting any of these molecules or processes will remove its associated opacity from the calculation. This will occur regardless of whether the molecule has a non-zero abundance in the chemistry file that is selected, so care must be taken when making any changes here. This would generally not be altered by the user unless there was a need to study unusual cases.

- otherlnput.in: This includes other input information for Exo.Transmit (e.g., opacity files, etc.) that typically will not be altered by the user, except as mentioned above in changing the number of optical depth points, for example.

- user Input, in: This is an input file that is used internally to transfer planetary system data to Exo-Transmit for each target and atmosphere.

For Pandexo, after installation, it is recommended that the user edit (or com­ 87

ment) out certain run-time print statements (in pandexo.engine, installed as a

Python package in the Anaconda directory) that are unnecessary and time consum­

ing in our long, many-target runs. Otherwise, both of these programs (Exo-Transmit

and Pandexo) can be implemented as released. Be sure to install the most up-to- date version including the latest data files for Pandexo (the pandeia and pysynphot datasets).

A general list of software, new folders to set up, data files, input files, etc.

associated with the installation of JET is shown in Table 4.2.

The JET code suite has been implemented in Python 3. The Linux version of Anaconda (package manager, environment manager, and Python distribution) normally includes NumPy, SciPy, Astropy, and other commonly used packages.

We provide a list of all Python packages/modules necessary for the complete

JET installation in Table 4.3. The user should use the Linux ‘conda list’ command within the Anaconda directory to determine what packages/modules (and versions) are, or are not, installed. 88

Table 4.2: General Software Installation List for JET

Name Type Version/Build

Exo-Transmit:

Exo_Transmit C program -

other Exo-Transm.it .o, .c, .h, etc. files -

Forecaster: mr. forecast, py Python program -

func.py Python program -

JET: JET_Master.50.py Python program 50 ExoT _M aster. 55. py Python program 55 Pdxo_Master.64.py Python program 64 Rank _M aster. 06. py Python program 6

JET_Input.txt .txt file - t ar get -survey, txt .txt file -

JET_Smry_tables New folder -

dBIC New folder -

Pandexo: pandeia.data-1.1.1 Pandexo install 1.1.1

pysynphot_data Pandexo install -

Notes. make sure to install the latest version of Pandexo and its datafiles 89

Table 4.3: Python Packages/Modules for JET Installation

Name Type Version/Build

astropy Python package 2.02 / npll3py_36

datetime Python module (std lib) -

gc Python module (std lib) - numpy Python package 1.14.0 / pip matplotlib Python package 2.0.2 / npll3py36_0 os Python module (std lib) - pandexo.engine Python module 1.2.1 / pip pandeia. engine Python module 0.9.1 / pip pickle Python module (std lib) - pyephem Python package 3.7.6.0 / pip python Python package 3.6.1 / 2 scipy Python package 1.0.0 / py36 spectres Python module 2.0.0 / pip subprocess Python module (std lib) - textwrap Python module (std lib) - time Python module (std lib) - warnings Python module (std lib) -

Notes. — take care to install the versions listed; conflicts could occur otherwise 90

Chapter 5

Results/ Discussion

Now that we have described our analysis framework and validated the calcula­ tions in the JET code, we can present the results of our full Baseline survey run.

In addition, we can present limited case studies of the effects of variations of some of the driving parameters of our analysis, including the noise floor, the atmospheric equation of state, the detection threshold, and the instrument/mode selected.

5.1 Baseline (full survey)

Completing the full Baseline run of the 1984 target Sullivan survey with the computer system described in Section 4.1 was a challenge. The full run took ap­ proximately 100 hours running two side-by-side instantiations of JET on three (dual threaded) processors within the virtual Linux environment described in Section 4.2.

During the run we generated approximately 4,000 model spectra, 4,000 re-binned transfer spectra, 3,800 simulated instrument spectra, 1,800 number-of-transits-for- 91

detection plots, a summary data file, and one very large final summary output table.

The input parameters for the Baseline run are presented in Table 5.1. Excerpts

of the summary output table for the Baseline run are included in Appendix B.

Table 5.1: JET Baseline run - Input Parameters

Parameter Value

JWST Instrument NIRSpec G395M Wavelength Range 2.87 jum - 5.18 ^m Jmag Limit 8.0 Noise Floor 25 ppm Eq. of State (lo_metal atm) eosJ5Xsolar_cond, no clouds Eq. of State (hi_metal atm) eos_1000Xsolar_cond, clouds at 100.0 mbar Detection Threshold (dBIC) 10

Notes. The “Equation of State” file nomenclature is defined in the Exo- Transmit user manual.

We now have a list of (simulated TESS survey) targets that is categorized and ranked within each category on the average total observation time to detect an atmosphere. We show the target planets plotted by Category on a radius (Rp) vs equilibrium temperature (Teq) grid in Figure 5.1.

The overall statistics for the Baseline run are presented in Table 5.2. Out of the total 1984 targets in the survey, we show a full unambiguous detection of 1116 targets. Some of these detections may well be unrealistic, given the large number of 20

Category 7 (49 targets, excluded)

15

OC tca

Category 5 (768 targets) Category 7 (102 targets, included)

Category 4 . (371 targets) *. ' * ' Category 6 (400 targets) vwSfe?'■** • ' •"t7~ “I** 1 ' • l’ • • “ * " Category 3 (119 targets)

.1 1000 1500 2000 2500 3000 3500 4000 4500 Category 1 (41 targets) iN— Category 2 (134 targets) Teq, K 400 800

Figure 5.1: The Sullivan (TESS simulation) target planets plotted by Category on a radius (Rp) vs equilibrium temperature (Teq) grid. This shows all 1984 targets in the survey/catalog. C£> to 93

transit observations (and very long observation times) required. The Table shows

how certain factors reduce the overall detection numbers. For example, 140 targets

are eliminated because their host star is too bright, leading to a detector saturation

condition for this instrument/mode. Of course the most significant screening factor

is the lack of detection (dBIC < 10) of the high metallicity atmospheres for 690

targets. A number of these targets may show a detection of the low metallicity

atmosphere, but given that the high metallicity atmospheres are undetectable, we

consider these to be ambiguous detections and eliminate them from further consid­

eration.

We can see that there are 49 targets with Up > 10i?@- properly falling into

Category 7, but that are outside the range of our analysis. Also, we note (somewhat

surprisingly) that there is only one target where the number of transits needed for

detection is greater than the number observable within the 10 year fuel life of the

spacecraft.

In Table 5.3 we slice the data a different way. Columns two and three show

numbers of targets that meet certain cutoff values for nthi, and ttot^avg. Column four

shows accumulated observing hours by each Category. We see that for nthi < 1 0

and ttot,avg < 35 hpurs, we detect ~ 600 targets with ~ 11,000 hours of observing time. Likewise, the next three columns show that for nthi < 5 and ttottavg < 20 hours, we detect ~ 300 targets with ~ 4,000 hours of observing time.

From the table, we can also see, for example, that for Category 4 (cool Neptunes) Table 5.2: Baseline Run Statistics 1

...... non-detection...... dBIC < 10 dBIC < 10 nt req'd Full Cat JmaK < 8 R„ > 10 for nt !o < 50 for nt hi < 50 > nt lOyr Detection

targets targets targets targets targets targets targets 1 41 4 0 0 18 0 19 2 134 3 0 1 49 0 82 3 119 11 0 3 36 0 72 4 371 1 0 0 119 1 250 5 768 15 0 12 311 0 442 6 400 74 0 17 139 0 187 7 151 32 49 1 18 0 64 Total 1984 140 49 34 690 1 1116

Notes: some overlap in non-detection conditions ("Total" line will not foot, left to right) Table 5.3: Baseline Run Statistics 2

Cat nt hl < 10 tTavg < 35 hrs accum hours nt m < 5 tTmg < 20 hrs accum hours targets targets by Cat targets targets by Cat 1 10 9 167 4 4 50 2 29 37 768 4 20 295 3 50 51 898 21 35 468 4 107 101 2165 37 45 611 5 211 207 4077 96 108 1443 6 131 108 2165 75 57 809 7 59 52 791 51 39 458

Total 597 565 11032 288 308 4133

Notes: Columns 2, 3, 5, and 6 are numbers of targets; columns 4, and 7 are accumulated observing hrs 96

there are 37 targets where a high metallicity atmosphere (the difficult case) can be detected with less than 5 transit observations, and 45 targets where an average atmosphere can be detected in under 20 hours of observation for each target,

5.2 Noise floor variation

Variation of the instrument noise floor has a powerful effect on the number of transits needed for detection for the more difficult targets (those with weak spectral features and bright host stars). Figure 5.2 presents the results of our noise floor variation study for Sullivan Target 1292. As discussed in Section 2.3.1, the noise floor for NIRSpec 395M is estimated to be ~ 25 ppm. Of course, the true value of the noise floor will not be known until JWST is launched and has completed detailed commissioning procedures.

Our Baseline run for this target with a noise floor of 25 ppm shows that we need

10 transits to detect the high-metallicity atmosphere. This falls to 7 transits for a noise floor of ~ 20 ppm. Remarkably, if the noise floor turns out to be only 2 ppm higher than the baseline (~ 27 ppm) there will be no detection of the atmosphere.

Clearly the target ranking can be affected significantly by minor variations in the estimate of the instrument noise floor.

It should be pointed out that in the figure the error-bars do not indicate uncer­ tainty (which could be significant), but are meant to indicate that the number of transits has been rounded up to the next highest whole transit. 97

Noise floor (ppm)

Figure 5.2: Effect of noise floor variation on number of transits needed for detection, for Sullivan Target 1292, with a high metallicity atmosphere (lOOOxSolar), clouds at 100 mbar, a detection threshold [dBIC) of 10, and using NIRSpec G395M. There is no detection for a noise floor above ~ 27 ppm. The number of transits are rounded to the next highest whole number of transits. 98

5.3 Atmospheric, equation of state variation

Variation of the atmospheric metallicity has a very significant effect on our re­

sults. As we can see in Figure 2.6, the spectral line strength is strongly driven

by metallicity. Again, for Sullivan Target 1292, in Figure 5.3 we can see that the

number of transits needed for detection falls almost by an order of magnitude be­

tween the lOOOxSolar and the 50xSolar metallicity levels. Unfortunately, the only

intermediate level that we could examine was a lOOxSolar metallicity. The equation

of state files available in the Exo-Transmit installation do not include files in the

regime between lOOx and lOOOxSolar. It was beyond the scope of this thesis project

to construct a new equation of state file to fill in the gap. It is unlikely, however,

that any intermediate data points would significantly change our conclusions about

the number of transits needed for detection here.

We did not directly examine the variation in our results due to changes in cloud

levels. Again, Figure 2.6 guides what we would expect to see. Since we were trying to bound the atmospheric cases, our low metallicity (SxSolar) case with no clouds would seem to be a good choice for a best-on-best case. The high metallicity

(lOOOxSolar) case with clouds at 100 mbar would seem to be a nearly worst-on-worst case. As the figure indicates, the effect of clouds (at any altitude) on the strength of spectral features at this high metallicity is not very strong. The features are already small due to the high metallicity. 99

Metallicity (x Solar)

Figure 5.3: Effect of atmospheric metallicity on number of transits needed for de­ tection for Sullivan Target 1292, a detection threshold (dBIC) of 10, and using NIRSpec G395M with a noise floor of 25 ppm, and no clouds. This behavior is consistent with Figure 2.6. We were limited in the choice of metallicity levels by the equation of state files available in the Exo-Transmit installation. Transits are rounded to the next highest whole number of transits. 100

5.4 Detection threshold variation

The number of transits needed for detection is significantly effected by our choice

of dBIC detection threshold. Kass and Raftery (1995) suggest that a dBIC of 6

can be considered a strong detection, while a dBIC of 10 is very strong. Not sur­

prisingly, our Figure 5.4 shows that for Sullivan Target 1292 with a high metallicity

atmosphere, as we lower the detection threshold from 10 to 5, we see a drop in the

number of transits required for detection from 10 to 7.

If we refer to Figure 2.12 in Section 2.3.2, we see the mean dBIC values plotted.

For any particular grid position (e.g., 10 transits), 1750 sample dBIC values are

distributed vertically above and below the mean value shown by the point plotted

at a threshold value of 25. Our detection algorithm assumes that the sample values

are normally distributed. This means that 50% are above the mean and 50% below

the mean value. If we come down one standard deviation from the mean value (to

the level of the bold line in the Figure at a threshold value of 10), then this shifts the distribution of sample values to 50% + 34%, or 84% (since in a normal distribution

the number of samples within one standard deviation of the mean is ~ 68 % of the total and we are looking at half of that).

Given that we are using the dBIC mean less 1 a values for detection (the bold line in the Figure), the threshold of 10 gives us a confidence level for detection of

~ 84%, which seems reasonable. 101

Detection threshold (dBIC)

Figure 5.4: Effect of lowering the detection threshold (dBIC) on the number of transits needed for detection for Sullivan Target 1292, a high metallicity atmosphere (lOOOxSolar), with clouds at 100 mbar, and using NIRSpec G395M with a noise floor at 25 ppm. A dBIC of 10 is considered a very strong detection, while 6 is still considered a strong detection. Transits are rounded to the next highest whole number of transits. 102

5.5 Instrument variation

As we discussed in Section 1.1, JWST has four main instruments with multiple observing modes. All four (NIRCam, NIRSpec, NIRISS, and MIRI) will to vary­ ing degrees be used for exoplanet transmission spectroscopy. We have been able to implement four of these instrument/modes with JET (Table 5.4). For these four instrument/modes and for Sullivan Target 1292 we have run the JET code to deter­ mine the variation in the number of transits for atmospheric detection. We present the single-transit spectra for each of these instrument/modes in Figures 5.5 to 5.7.

We have summarized results of variation of the JWST instrument/mode on the detection of a high metallicity atmosphere for Sullivan Target 1292 in Table 5.4. The resolution shown is not the native resolution of the instrument, but is the re-binned value to match the model and simulated spectra for our analysis.

We see that only two transits are needed to detect the target with NIRISS SOSS, while ten transits are needed using NIRSpec G395M. This does not necessarily im­ ply that the former instrument is better than the latter. The wavelength ranges are different, and the capabilities of the instruments are complementary rather than competing. It has been suggested (Batalha and Line 2017) that these two instru­ ments be used in tandem. There is little overlap in their wavelength coverage, and both have good precision. Transit Depth {%) The noise floor for this instrument is ~ 25 ppm. The model spectrum shown as the grey background background grey the as shown spectrum model The ppm. 25 ~ is instrument this for floor noise The opeeadcod t 0 br uigNRpcG4Mwt aeeghrneo .7- 1.87 - 0.97 of range wavelength a G14QMwith NIRSpec using mbar, 100 at clouds and mosphere ie a enbne ont eouin R 10 cnitn ihtesmltddt. A data. simulated the with consistent 100) ~ (R resolution a to down binned been has line Figure 5.5: Simulated spectrum for a single transit of Sullivan Target 1292 with a high-metallicity at­ high-metallicity a with 1292 Target Sullivan of transit single a for spectrum Simulated 5.5: Figure 10 detection takes observation of three transits. three of observation takes detection 10 aeegh (/um) Wavelength dBIC /j,m. = =

Transit Depth (%) iue .: iia t Fgr 55 bt o te 25 dsesr n a aeegh ag of range wavelength a and disperser G235M the for but 5.5, Figure to Similar 5.6: Figure .6- .2 /Ltm. 3.12 A - 1.66 dBIC = 10 detection takes observation of four transits. four of observation takes detection 10 = aeegh Qjm) Wavelength Transit Depth (%) a en inddw t arslto ( ~ 0) osset ihte iuae dt. A data. simulated the line with background transits. consistent grey 100)two of the as ~ shown (R 2.82 observation - 0.83 takes spectrum of resolution model a detection range to The down ppm. wavelength 20 binned a ~ isbeen has with 1) (Order instrument/mode this SOSS for floor NIRISS using atmosphere Figure 5.7: Simulated spectrum for a single transit of Sullivan Target 1292 with a high-metallicity high-metallicity a with 1292 Target Sullivan of transit single a for spectrum Simulated 5.7: Figure aeegh (^m) Wavelength n m. The noise noise The m. dBIC 10 = 106

Table 5.4: Effect of Instrument Choice on Detection (Sullivan Target 1292)

Instrument/Mode R nfloor A range frf'h.i (ppm) (/xm) NIRSpec G395M (Baseline) 100 25 2.87 - 5.18 10 NIRSpec G235M 100 25 1.66 - 3.12 4 NIRSpec G140M 100 25 0.97 - 1.87 3 NIRISS SOSS_Orl 100 20 0.83 - 2.81 2

Notes. — noise floor values are pre-launch estimates only. 107

Chapter 6

Conclusions/Future Work

6.1 Conclusions

We have developed an analytical framework and associated computer code that can assist the community in determining the best exoplanet targets for atmospheric characterization by JWST. The tools can also be used to prioritize targets that would be worthy of follow up with RV observations to better determine the planet masses.

We have demonstrated that a survey target list can be categorized and ranked for minimum observation time to detect an atmosphere, even though we have no direct knowledge of the atmospheric properties of the target planets.

Our approach to modeling the target planet atmospheres with two bounding cases (high and low metallicity) appears to be new in the literature. Likewise, our use of the Bayesian Information Criterion for model selection in our target 108

atmosphere detection algorithm appears to be a new application of this technique.

Due to our reliance on the complex code elements Exo-Transmit and Pandexo,

and due to our use of a somewhat limited (hardware/software) home computer

system, the run time for processing a typical target survey (on the order of 2000

targets) was very long (~ 175 hours running in a single processor mode). We demonstrated that it is possible to split the target list and run multiple instantiations of our code on three processors simultaneously on two Linux terminals. We were able to reduce the overall processing time to ~ 100 hours net for the Sullivan survey.

We developed and ran our code using Oracle VirtualBox software to run a Linux guest machine on a Windows host. We recommend that for further development, or to run the existing code, that it be done in a native Linux environment.

Any target prioritization tool must take into consideration all of the observing time overheads for a transit observation. Even a very short transit can be expensive in terms of the overall observing time requirement.

In the simulated survey we only saw one target where the number of transits observable during the fuel life of the spacecraft was less than the number needed for an atmospheric detection. The observing constraints imposed by the orbital location and pointing limitations do not appear to be significant, at least for the shorter period planets that are the focus of surveys like those coming from TESS.

Our algorithm for this calculation was not particularly sophisticated, however, we do not believe that a more sophisticated analysis would change the overall conclusion. 109

The instrument noise floor is a critical parameter. Particularly for difficult tar­ gets (small transit depth and reduced feature prominence), a very small change in the assumption for the noise floor can change the number of transits needed for detection significantly. This, of course, could substantially change the overall target rankings. Once the instruments have been better characterized on orbit (during commissioning), the prioritization analysis will need to be repeated to reflect the updated information on instrument precision.

Our Baseline run of the Sullivan survey showed detection of over 1100 targets

(atmospheres). This figure significantly overstates the realistic/practical target set that could be observed. The fraction of the ten year JWST mission devoted to exo­ planet transit spectroscopy is estimated to be on the order of 10 %. This translates into ~ 8,300 hours overall. Our analysis would indicate that between 400 and 500 targets could realistically be addressed during the mission.

Perhaps the weakest element in our analytical approach is our assumption that each target effectively has an atmosphere of average metallicity. This may be true if we consider the entire dataset, but it is almost certainly not true for any particular target. In reality any given target may be skewed away from average metallicity, either high or low. This, of course, would affect the detectability of the atmosphere for that target, and the ranking. Our detection model provides a reasonable basis for ranking, but we must accept that there are uncertainties. 110

6.2 Opportunities for further study

The delay in the launch of JWST provides time to refine the analysis that we have described in this work as well as to consider other lines of investigation.

As we have mentioned, the JET code is slow when run on a typical home com­ puter. An effort to make the code more efficient would be helpful. In particular, consideration of processing multiple targets with a parallel processing architecture would seem to be a worthwhile effort.

Depending on how this analysis approach and code are received by the commu­ nity it might make sense to do a more thorough job of providing access to the code with more detailed installation instructions. Specifically, a project to post the code to an on-line code sharing website (e.g., GitHub) might be in order.

As we discussed, we have been able to implement the NIRSpec G395M and

NIRISS SOSS with JET. Doing a full survey run with NIRISS SOSS and then combining the output with our existing NIRSpec G395M Baseline would potentially yield interesting results. This would cover a wide wavelength range (0.83 - 5.18 /im).

In addition, for the sake of completeness, it would be helpful to expand the list of instrument/modes that JET will address. This would include the higher resolution modes for NIRSpec, the NIRCarn grism (with F322W2 and/or F444W filters), the second order NIRISS SOSS mode, and MIRI LRS.

In Chapter 5 we discussed single target parameter variations of noise floor, de­ tection threshold, etc. We could consider full runs with small parameter variations. Ill

This would provide a more thorough study of how small parameter variations could

change the overall target rankings.

Of course the most useful test of the analysis framework and code would be to

run it on actual TESS (or other precursor) survey data. TESS will be delivering

datasets periodically over its two year mission. It would be helpful to take these

early datasets and format them (similar to the Sullivan survey) or otherwise prepare

them to be used as input to the JET code.

With further study we may find ways to refine our estimates of planet atmosphere

metallicity that are better than simply taking the average of high and low bounds.

This will allow us to prepare target rankings with less uncertainty in the results.

Our efforts so far have been focused on transmission spectroscopy, but exploring

emission spectroscopy with our analysis approach would be a very worthy area for

further study. This would be a major excursion from what we have done so far.

The Exo-Transmit code is aimed at transmission spectroscopy, but there are other

analysis tools available (e.g., PyDisort as described in Stamnes et al. (1988)) that

could be adapted to this purpose.

Of course the community is anxious to see JWST's mission begin. It has been

a long time coming. There is, however, a positive aspect to the latest delay, in that there should be time to refine the approach to target optimization presented here, or by others, as well as time to incorporate actual TESS survey results into the

analysis. We should use the time wisely. 112

Appendix A: JET Code

Input file: JETJnput.txt

1 Instrument:, NIRSpec G395M

2 nfloor (ppm):, 25 3 wavelimlo (microns):, 2.87 4 wavelimhi (microns):, 5,18 5 EOS.lo:, eos_5Xsolar_cond 6 E0S_hi:, eos_1000Xsolar_cond 7 Cloud_lo (Pa):, 0 8 Cloud_hi (Pa):, 10000 9 Res:, 100

10 Jmag_sat:, 8.0

n Nrow_start:, 1

12 Nrow_end:, 1984

13 N p d x o : , 1750

14 dBIC_thresh: , 10

15 RunExoT (Y/N) :, Y

16 RunPdxo (Y/N) :, Y

17 RunRank (Y/N) :, Y

20 # Instrument reference info: Res nfloor JET/OK 113

22 # NIRCam F444W (2.40-5.00mu) (30 ppm) no

23 # NIRCam F322W2 (2.40-5.00mu) (30 ppm) no

24 # NIRSpec G140M/F07GLP (0.70-1.27mu) (100) (25 ppm) no

25 # NIRSpec G140H/F070LP (0.82-1.27mu) ( hi) (25 ppm) no

26 # NIRSpec G140M/F100LP (0.97-1.87mu) (100) (25 ppm) yes

27 # NIRSpec G140H/F100LP (0.97-1.31mu, 1.35-1.83mu); ( hi) (25 ppm) no

28 # NIRSpec G235M/F170LP (1.66-3.12mu) (100) (25 ppm) yes

29 # NIRSpec G235H/F170LP (1.66-2.20mu, 2.27-3.07mu); ( hi) (25 ppm) no

30 # NIRSpec G395M/F290LP (2.87-5.18mu) (100) (25 ppm) yes

31 .# NIRSpec G395H/F290LP (2.87-3.72mu, 3.82-5.18mu); ( hi) (25 ppm) no

32 # MIRI LRS (5-12mu); ( 40) (50 ppm) yes

33 # NIRISS SOSS.Orl (0.83-2.81mu); (100) (20 ppm) yes

34 # NIRISS S0SS_0r2 (0.60-1-40mu); (20 ppm) no

35 #

36 #

37 # Saturation Limits (Jmag)

38 # Teff (K) 10000 5000 2500 Set

39 # Disperser-f ilter

40 # NIRCam PRISM/CLEAR 10.2 10.1 10.2 10.3

41 # NIRSpec G140M/F070LP 8.2 8.1 8.2 8.3

42 # NIRSpec G140M/F100LP 8.2 8.1 8.2 8.3

43 # NIRSpec G235M/F170LP 7.0 7.6 7.8 7.9

44 # NIRSpec G395M/F290LP 6.2 6.8 7.4 8.0

45 # NIRSpec G140H/F070LP 7.1 7.0 7.0 7.2

46 # NIRSpec G140H/F100LP 7.1 7.0 7.0 7.2

47 # NIRSpec G235H/F170LP 5.9 6.4 6.7 6.8

48 # NIRSpec G395H/F290LP 5.1 5.7 6.2 6.3

49 #

50 #

51 # NIRISS SOSS mode (G2V star)

52 # Subarray size order Ngroups Jmag Set

53 # SUBSTRIP256 256 2048 1 2 8.5 8.6

54 # SUBSTRIP256 256 2048 2 2 7.2 7.3

55 # SUBSTRIP96 96 2048 1 2 7.5 7.6 Subprogram: JET Master.50.sh

i !/bin/bash

4 # Final as of Oct 9, 2018

6 # ©author; Charles Fortenbach

8 # SFSU Master’s Thesis Project

10 # Title: A Framework for Optimizing Exoplanet Targets for the JWST

12 # Subprogram: JET_Master.sh

14 # Version: 1.0

16 #

is USRDIR=/media/sf_Win7share/JET

19 echo ’USRDIR=/media/sf_Win7share/JET’ » " / .bash_profile

20

21 # # # # # # # # # # BLOCK TO SET STELLAR DATA ################

22 echo ’export PYSYN_CDBS="$USRDIR/pysynphot_data" ’ » * / .bash_prof ile

23

24 ############ BLOCK TO SET PANDEIA REFERENCE DATA #########################

25 echo ’export pandeia_refdata="$USRDIR/pandeia_data-l. 1.1"' » ”/.bash_profile

26

27 ############## MAKE SURE YOUR BASH PROFILE IS SOURCED ################

28 source “/ .bash_profile

29

30 ########## RUN ###############

31 python ExoT_Master.55.py

32 python Pdxo_Master.64.py

33 python Rank_Master,06.py Subprogram: ExoT_Master.55.py

1 #!/usr/bin/env python3

2 # coding: utf-8

^ II II II

4 F in a l as of Oct 9, 2018

6 Sautbori Charles Fortenbach

8 SFSU Master’s Thesis Project

9 io Title: A Framework for Optimizing Exoplanet Targets for the JWST

12 Subprogram: ExoT_Master.py

14 Version, 1.0

16 """

is import numpy as np

19 #import mr_forecast as mr

20 import subprocess

21 import gc

22 import ephem

23 from astropy import units as u

24 from astropy.coordinates import SkyCoord

25 from scipy.interpolate import UnivariateSpline

27

28

29 ###############################################################################

30 # Read in JET input file

31 ###############################################################################

32 JET_params = np.genfrom txt(’JET_Input.tx t5, dtype=str, delim iter=’, ’)

34 #JWST instrument/mode 116

35 Instrument = JET.params[0, 1]

36

37 # Instrument noise floor (ppm)

38 nfloor = float(JET.params[1, 1])

39

40 # Set common p lo t parameters ( e .g ., fo r NIRSpec G235M):

41 wavelimlo = float(JET_params[2, 1]) # low end of plot wavelength scale (nm)

42 wavelimhi = f loat (JET_parains [3, 1]) # high end of plot wavelength scale (nm)

43

44 # Set equation of state for model atmospheres, low and high m etallicity

45 E0S_lo = JET_params[4, 1]

46 E0S_hi = JET_params[5, 1]

47

48 # pressure of cloud top (in Pa), — or leave at 0 0 for no clouds

49 Cloud_lo = flo a t(JET_params[6, 1])

50 Cloud.hi = float(JET_params[7, 1])

51

52 # Spectral resolution

53 Res = int(JET_param s[8, 1])

54

55 # Saturation magnitude

56 Jmag_sat = float(JET_params[9, 1])

57

58 # Set starting and ending targets from survey list

59 Nrow_start = in t(JET_params[10, 1])

60 Nrow_end = int(JET_paxams [11, 1])

61

62 # Set # of dBIC sample runs for each transit case

63 Npdxo = int(JET_param s[12, 1])

64

65 # Set dBIC threshold

66 dBIC_thresh = int(JET_params[13, 1])

67

68 # Set Run flags

69 RunExoT = JET_params[14, 1] 117

RunPdxo = JET_params[15, 1]

71 RunRank = JET_params[16, 1]

72

73

74

75 ###############################################################################

76 # Check Run flag

77 ###############################################################################

78 if RunExoT == ’N ’i

79 raise SystemExit

80

81

82

83 ###############################################################################

84 # Check for target list in sequence

85 ###############################################################################

86 summary_data_old = np.loadtxt(’Pdxo_Gutput.txt’, ndmin=2, skiprows=0)

87 targets_old = np.max(summary_data_old, axis=0)

88 last_target_old = targets_old[2]

89

90 if Nrow.start != last_target_old + 1;

91 print(’\n')

92 print (’ !Warning: The starting target value (Nrow_start) is ’

93 'not in sequence.’)

94 print(’\n’)

95 print(’ If you proceed you may overwrite the previous*

96 ’ entries ')

97 print(’\n!)

98 xx = input(’ Proceed with ExoT? (Y/N): ’)

99 print(’\n’)

100 if xx != ’Y ’:

101 print (’ exiting ExoT . .’)

102 raise SystemExit

103

104 118

105

106 ###############################################################################

107 # Print notification of running ExoT_Master

108 ###############################################################################

109 print ( ’ \n ’)

110 print(" Running ExoT.Master:")

111

112

113

114 ###############################################################################

115 # Read in survey data file

116 ###############################################################################

117 print(’\n’)

118 print(" Reading in survey data . . . " )

119 survey_data = np.loadtxt(’target_survey.txt’, skiprows=32) 120

121

122

123 ###############################################################################

124 # Initialize data transfer array

125 ###############################################################################

126 Nrow = Nrow_end - Nrow_start + 1

127 Ncol = 15

128 transfer_data = n p .ze ro s ((Nrow, Ncol))

129

130

131

132 ###############################################################################

133 # Set constants

134 ###############################################################################

135 Nsample_size = 12500 # Chen & Kipping R-M e s t . parameters (MCMC)

136 Ngrid_size = 12500 # Chen k Kipping R-M est. parameters (MCMC)

137 Rfactr =0.12 # Rp.stdev / Rp_mean guestimate

138

139 G = 6.6742867e-ll # Gravitational const., N m"2/kg~2 119

140 Mearth = 5 .9736e24 # Earth mass, kg

141 Rearth = 6.378136e06 # Earth radius, m

142 AU = 1. 4959787066ell # AU, m

143 Rsun = 6 ,95508e08 # Solar radius, m

144 Teffsun = 5777 # effective temp of Sun, K

145

146

147

148 ###############################################################################

149 # Compute model atmospheric transmission spectra

150 ###############################################################################

151 print( ’ \n’ )

152 print(" Computing model transmission spectra using Exo-Transmit:\n" )

153

154

155 # Loop on ta rg e t index

156 fo r i in range(Nrow_start-l, Nrow_end):

157

158 # Set display counter, n (starts at 1, while i starts at 0)

159 n = i + 1

160

161 # Print progress note

162 print(" Generating model spectra for target: ", str(n), "\n")

163

164 ###########################################################################

165 # Extract survey data for a given target

166 ###########################################################################

167 RAdeg = survey_data[i, 0] # decimal RA (equatorial)

168 DEdeg = survey _data[i, 1] # decimal Dec (equatorial)

169 Rp_mean = survey_data[i, 2] # mean radius of planet in Earth radii

170 Rp_std = Rp_mean * Rfactr # stdev of radius of planet in Earth radii

171 Per = survey_data[i, 3] # orbital period in days

172 S = survey_data[i, 4] # insolation in Earth units

173 K = survey_data[i, 5] # radial vel. semi-amplitude (m/s)

174 Rstar = survey_data[i, 6] # stellar radius in Solar radii 120

175 Teff = survey_data[i, 7] # target s t a r ’ s effective temp in K

176 Jmag = survey_data[i, 10] # Jmag of target stair

177

178

179 ###########################################################################

180 # Compute additional planetary parameters including planet mass

181 ###########################################################################

182

183 # Compute semi-major axis of planet’s o rb it (assuming circular orbits)

184 aAU = (1/np.sqrt(S))*(Rstar)*(Teff/Teffsun)**2 # in AU

185 a = aAU*(AU/Rsun) # in Solar radii

186

187 # Compute planet’s equilibrium temp. (K)

188 Teq = Teff*np.sqrt(Rstar/(2*a))

189

190

191 # Estimate planet mass

192

193 ############################# Inactive ####################################

194 #

195 # Compute planet mass using Chen Kipping method (earth masses)

196

197 # Mined, Mplus, Mminus = mr.Rstat2M(mean=Rp_mean, std=Rp_std, unit=’Earth’,

198 # sample_size=Nsample_size,

199 # grid_size=Ngrid_size)

200 #

201 ###########################################################################

202

203 # Forecaster power laws (see Chen & Kipping 2016)

204 i f Rp_mean <= 1.23,

205 ccl = 2.04/(1.23**(l/0.279))

206 Mined = ccl*R p_m ean** ( 1 / 0 . 279)

207

208 if Rp_mean > 1.23:

209 cc2 = 2.04/(1.23**(1/0.589)) 121

Mmed = cc2*Rp_mean**(l/0.589)

211

212 Mplus = 0 # only interested in mean value of planet mass

213 Mminus =0. # only interested in mean value of planet mass

214

215 # Compute planet’s surface gravity (m/s“2)

216 gs = G*Mmed*Mearth/((Rp_mean*Rearth)**2)

217

218 # Compute median planet density (earth units)

219 Rhomed = Mmed/(Rp_mean**3)

220

221 # Compute transit duration in hrs (circular orbits, and i = 90 deg)

222 # tdur = (1 + (Rp_mean*Rearth/Rsun)/Rstar)*(13)*(Per/365)*(Rstar/aAU)

223 tdur = (1 + (Rp_mean*Rearth/Rsim)/Rstar)*(Rstar*Per*24)/(np.pi*a)

224

225

226 # JWST mission days: lOyr * 365 d/yr less 6mo, commissioning

227 tmission = (10-0.5)*365

228

229 # transits available (not necessarily observable) in 10 yr mission

230 ntl0yr_available = (1/Per)*tmission

231

232 # Convert decimal coords to hms

233 c = SkyCoord(ra=RAdeg*u.degree, dec=DEdeg*u.degree, frame=’icrs’)

234

235 cdms_ra = (str(c,ra.hms[0]) + + str(c.ra.hms[1]) +

236 + str(c.ra.hms [2]))

237 cdms_dec = (str (c. dec .dins [0] ) + ’: ’+str (np, abs(c .dec .dms [1] ) ) +

238 + str(np.abs(c.dec.dms[2])))

239

240 # Convert to Ecliptic coordinates

241 m = ephem.Equatorial(cdms_ra, cdxns_dec)

242 eel = ephem.Ecliptic(m)

243

244 # Change variable type 122

245 zzlat = float(eel.lat)

246

247 # Convert to degrees and round

248 zzlat_deg = round(zzlat*180/np.pi, 1)

249

250 # For th is ecliptic latitude, estimate observable days per year

251 if np.abs(zzlat_deg) <= 45.

252 eclat.lo = [0, 5, 10, 20, 30, 35, 40, 43, 45]

253 obsdays_lo = [100, 101, 103, 110, 125, 136, 154, 175, 200]

254 z_lo = UnivariateSpline(eclat.lo, obsdays_lo, s=l)

255 obsdays = np.round(z_lo(np.abs(zzlat_deg)),0)

256

257 elif np.abs(zzlat.deg) > 45 and np.abs(zzlat_deg) < 85:

258 eclat_hi = [45, 50, 60, 70, 75, 80, 85]

259 obsdays.hi = [200, 201, 204, 210, 225, 255, 360]

260 z_hi = UnivariateSpline(eclat_hi, obsdays_hi, s=l)

261 obsdays = np.round(z_hi(np.abs(zzlat_deg)),0)

262

263 elif np,abs(zzlat_deg) >= 85:

264 obsdays = 365

265

266 # For how much of year is target observable

267 obsdays_factr = np.round(obsdays/365, 2)

268

269 # Compute number of transits observable in 10 yr mission

270 # Assumes no overlapping transits

271 ntlOyr = ntlOyr_available*obsdays_factr

272

273

274 ###########################################################################

275 # Determine target planet’s demographic category

276 ###########################################################################

277 if Teq < 400 and Rp_mean < 1.7:

278 Cat = 1

279 123

elif Teq >= 400 and Teq <= 800 and Rp_mean < 1.7:

281 Cat = 2

282

283 elif Teq > 800 and Rp_mean < 1.7:

284 Cat = 3

285

286 elif Teq < 400 and Rp_mean >= 1.7 and Rp_mean <= 4.0:

287 Cat = 4

288

289 elif Teq >= 400 and Teq <= 800 and Rp_mean >= 1.7 and Rp_mean <= 4.0:

290 Cat = 5

291

292 elif Teq > 800 and Rp_mean >= 1.7 and Rp_mean <= 4,0

293 Cat = 6

294

295 elif Rp_mean > 4.0:

296 Cat = 7

297

298

299 ###########################################################################

300 # Define transfer data for each target

301 ###########################################################################

302 ntransfer = i-(Nrow_start-l)

303

304 transfer_data[ntransfer, 0] Nrow.start + ntransfer

305 transfer_data[ntransfer, 1] a

306 transfer.data[ntransfer, 2] Teq

307 transfer_data[ntransfer, 3] = Mmed

308 transfer_data[ntransfer, 4] = Mplus

309 transfer_data[ntransfer, 5] = Mminus

310 tra n s fe r.d a ta [n tra n s fe r, 6] = gs

311 transfer_data[ntransfer, 7] = Rhomed

312 tra n sfe r_ d a ta [n tra n sfe r, 8] = tdu r

313 transfer_data[ntransfer, 9] = ntlOyr

314 transfer_data[ntransfer, 10] = Cat 124

# Loop on two generic atmosphere models (low and high metallicity) for j in range(0, 2):

321 #######################################################################

322 # Set up userInput.in file for Exo_Transmit

323 #######################################################################

324

325 fout = openC'userlnput.in", "w", newline=’’)

326 fout.write("userInput in - \n")

327 fout.write(("Formatting here is very important, please put the "

328 "instructed content on the instructed line.An"))

329 fout.write("Exo_Transmit home directory:\n")

330 fout.write("/media/sf_Win7share/JET\n")

331

332 # Determine target planet’s P-T profile based on Teq

333 t_P = int(round(Teq/100, 0)*100)

334

335 if t_P < 300:

336 t_P = 300

337

338 elif t_P > 1500:

339 t_P = 1500

340

341 t_P_filename = "/T_P/t_p_" + str(t_P) + "K.dat”

342 fout.write("Temperature-Pressure data file:\n")

343 fout.write(t_P_filename)

344

345 # Select the atmospheric equation of state file (EOS)

346 if j == 0:

347 EOS = E0S_lo

348

349 elif j == 1: 125

350 EOS = EOS_hi

352 EOS_filename = "/EOS/" + str(EQS) + ",dat"

353 fout.write("\nEquation of State file;\n")

354 fout write(E0S_filename)

356 # Enter Output Spectrum filename (e.g. Test_Specl.txt)

357 if j = = 0 :

358 Spectrum_filename = ("/Spectra/" + "Trans_Spec_ExoT_"

359 + str(n) + "_lo_metal.txt")

361 elif j == 1:

362 Spectrum.filename = ("/Spectra/" + "Trans_Spec_ExoT_"

363 + str(n) + "_hi_metal.txt")

365 fout.write("\nOutput file:\n")

366 fout.write(Spectrum_filename)

368 # Enter planet surface gravity, gs (in m/s~-2)

369 gs_in = str(gs)

370 fout.write("\nPlanet surface gravity (in m/s~-2):\n")

371 fout.write(gs_in)

373 # Enter planet radius, Rp (in m):

374 # — This is the planet’s radius at the base of the atmosphere

375 # (or at the cloud top for cloudy calculations

376 Rp_in = str(Rp_mean*Rearth) 377 fout,write(("\nPlanet radius (in m): -- This is the planet’s radius at"

378 " the base of the atmosphere (or at the cloud top for"

379 " cloudy calculations) \n"))

380 fout.write{Rp_in)

382 # Enter star radius, Rstar (m)

383 Rstar.in = str (Rstar*Rsun)

384 fout.write("\nStar radius (in m):\n") 126

385 fout.write(Rstar_in)

386

387 # Select the pressure of cloud top (in P a ) ,

388 # — or leave at 0.0 if you want no cloud calculations

389 if j == 0:

390 Pcloud.in = Cloud_lo

391

392 elif j == 1:

393 Pcloud_in = Cloud_hi

394

395 Pcloud_in = str(Pcloud_in) + ".0"

396 fout,write(("\nPressure of cloud top (in Pa), "

397 "— or leave at 0.0 if you want no cloud calculations.\n"))

398 fout.write(Pcloud_in)

399

400 # Enter Rayleigh scattering augmentation factor — default is 1.0

401 # Can be increased to simulate additional sources of scattering.

402 # 0,0 turns off Rayleigh scattering.

403 Rayleigh_in = ’1'

404 Rayleigh_in = str(Rayleigh.in) + ".0"

405 fout ,write(("\nRayleigh scattering augmentation factor"

406 " — default is 10. Can be increased to simulate "

407 "additional sources of scattering. "

408 "0 0 turns off Rayleigh scattering.\n"))

409 fout.write(Rayleigh_in)

410

411 fout.write("\nEnd of userInput.in (Do not change this line)")

412 fout. closeQ

413

414

415 #######################################################################

416 # Set up selectChem.in file for Exo_Transmit - manual input 417 #######################################################################

418 #print(’ ’)

419 #print('Enter data to build Exo_Transmit selectChem.in file: \ n ') 127

#print(! ==>> Currently using default values’)

421

422

423 #######################################################################

424 # Call Exo_Transmit executable and generate transmission spectrum

425 #######################################################################

426 gc.collect()

427 p = subprocess.PopenC’/media/sf_Win7share/JET/./Exo.Transmit’,

428 stdout=subprocess.PIPE, shell=True)

429 (output, err) = p,communicate()

430

431

432

433 ###############################################################################

434 # Write transfer_data to Pdxo input file

435 ###############################################################################

436 np.savetxt(’Pdxo_Input.txt’, transfer.data)

437

438 raise SystemExit 128

Subprogram: Pdxo_Master.64.py

it ti H

4 Final as of Oct 9, 2018

6 Qauthor: Charles Fortenbach

8 SFSU Master’s Thesis Project

10 Title: A Framework for Optimizing Exoplanet Targets for the JWST

12 Subprogram: Pdxo_Master.py

14 Version: 1.0

16 ......

is import warnings 19 warnings.f ilterwarnings(’ignore’)

20 import pandexo.engine.justdoit as jdi

21 import pandexo.engine.justplotit as jpi

22 import pickle as pk 23 import numpy as np

24 import matplotlib.pyplot as pit

25 import os

26 from spectres import spectres

27 from scipy import optimize

28 from scipy.interpolate import UnivariateSpline

31

32 ###############################################################################

33 # Read in JET input file 34 ############################################################################### 129

JET.params = np.genfromtxt(’JET_Input.txt’, dtype=str, delimiter3 ’, ’)

#JWST instrument/mode Instrument = JET_params [ 0 , 1]

# Instrument noise floor (ppm)

41 nfloor = float(JET_params[1, 1])

42

43 # Set common plot parameters (e.g., for NIRSpec G235M)

44 wavelimlo = float(JET_params[2, 1]) # low end of plot wavelength scale (nm)

45 wavelimhi = float(JET_params[3, 1]) # high end of plot wavelength scale (nm)

46

47 # Set equation of state for model atmospheres, low and high metallicity

48 E0S_lo = JET_params[4, 1]

49 E0S_hi = JET_params[5, 1]

50

51 # pressure of cloud top (in Pa), — or leave at 0 0 for no clouds

52 Cloud.lo = float(JET_params[6, 1])

53 Cloud_hi = float(JET.params[7, 1])

54

55 # Spectral resolution

56 Res = int(JET_params[8, 1])

57

58 # Saturation magnitude

59 Jmag_sat = float(JET_params[9, 1])

60

61 # Set starting and ending targets from survey list

62 Nrow_start = int (JET_params [1 0 , 1])

63 Nrow_end = int(JET_params[11, 1])

64

65 # Set # of dBIC sample runs for each transit case

66 Npdxo = int(JET_params[12, 1])

67

68 # Set dBIC threshold

69 dBIC_thresh = int(JET_params [13, 1]) 130

71 # Set Run flags

72 RunExoT = JET.params[14, 1]

73 RunPdxo = JET.params[15, 1]

74 RunRank = JET.params [16, 1]

77

78 ###############################################################################

79 # Check Run flag 80 ###############################################################################

81 if RunPdxo == ’N ’:

82 raise SystemExit

85 86 ###############################################################################

87 # Check sequential targets 88 ###############################################################################

89 summary_data_old = np.loadtxt(’Pdxo_0utput.txt1, ndmin=2, skiprows=0)

90 targets_old = np.max(summary_data_old, axis=0)

91 last_target_old = targets_old [2]

93 if Nrow_start != last_target_old + 1:

94 print (’\n') 95 printO (Warning: The starting target value (Nrow_start) is ’

96 ' not in sequence . ’)

97 print('\n')

98 print(’ If you proceed you may overwrite the previous'

99 ’ entries.’) 100 print (’\ n ’)

10 1 xx = input(’ Proceed with Pdxo? (Y/N): ’)

102 print 0\ n ’)

103 if xx != ’Y ’:

104 print (’ exiting Pdxo . . ..’) 131

105 raise SystemExit

107 108 ###############################################################################

109 # Print notification of running Pdxo_Master no ############################################################################### in print(’\n’)

1 1 2 print(" Running Pdxo_Master:")

115 116 ###############################################################################

1 1 7 # Read in survey data file

118 ###############################################################################

119 survey.data = np.loadtxt(’target_survey.txt', skiprows=32) 120

122

123 ###############################################################################

124 # Initialize transit cases

125 ###############################################################################

126 ints = [1, 2, 4, 6, 8, 10, 13, 16, 20, 25, 30, 35, 40, 45, 50]

129

130 ###############################################################################

13 1 # Initialize arrays

132 ###############################################################################

133 Nrow = Nrow_end - Nrow_start + 1

134 nt_lo = np.zeros(Nrow, dtype=int)

135 nt_hi = np.zeros(Nrow, dtype=int)

136 tT_lo = np.zeros(Nrow, dtype=float)

137 tT.hi = np.zeros(Nrow, dtype=float)

138 tT_avg = np. zeros (Nrow, dtype=float) 132

140

141

142 ###############################################################################

143 # Transfer planetary system data to Pdxo_Master

144 ###############################################################################

145 print('\n')

146 print(" Transferring planetary system data and model spectra to Pandexo . . .")

147 pdxinput = np.loadtxt(’Pdxo_Input,txt’, ndmin=2, skiprows=0)

148

149

150

151 ###############################################################################

152 # Compute transits needed for detection given instrument noise characteristics

153 ###############################################################################

154

155 # Loop on target index

156 for i in range(Nrow_start-l, Nrow .end):

157

158 # Set display counter, n (starts at 1, w hile i s ta rts at 0)

159 n = i + 1

160

161 # Set pdxinput counter

162 ntransfer = n - int(pdxinput [0, 0])

163

164 # Print progress note

165 print(’\n\n’, ’ Generating simulated instrument spectra 1

166 'for target: str(n),,\n’)

167

168

169

170 # We are only considering planet radius < 10 Rearth

171 Rp = survey_data[i, 2]

172 if Rp < 10

173

174 133

175 # Instrument has mag thresho ld ;

176 # (e.g., nothing brighter than ” Jmag 7.8 at 2500K for NIRSpec G235M)

177 Jmag = survey_data[i, 10]

178 if Jmag > Jmag_sat:

179

180

181 # Loop on two generic atmosphere models (low and high metallicity)

182 fo r j in range(0, 2):

183

184 ###############################################################

185 # Reset arrays

186 ###############################################################

187 xnt = np.zeros((len(ints), Npdxo), dtype=int)

188 dBIC = np zeros((len(ints), Npdxo), dtype=float)

189 dBIC_mean = np .zeros((len(ints)), dtype=float)

190 dBIC_sdev = np.zeros ((len(ints)), dtype=float)

191 xx = np zeros(len(ints), dtype=float)

192 yy = n p .zeros(len(ints), dtype=float)

193

194

195 # Read model transmission spectrum data file from working dir.

196 i f j == 0:

197 std_spectra = np.loadtxt(’/media/sf_Win7share/JET/Spectra/’

198 + ’Trans_Spec_ExoT_’+ str(n)

199 + ’_lo_metal.txt’, skiprows = 2)

200

201 elif j == 1:

202 std_spectra = n p .loadtxt(’/media/sf_Win7share/JET/Spectra/’

203 + ’Trans_Spec_ExoT_’+ str(n)

204 + ’_hi_metal.txt’, skiprows = 2)

205

206

207 # Match model spectrum limits to instrument bandpass

208 Ndata_low = np.argmin(np.abs(std_spectra[:, 0]*10**6

209 - wavelimlo)) - 4 134

2 10 Ndata.hi = np.argmin(np.abs(std_spectra[:, 0]*10**6

2 11 - wavelimhi)) + 8

212 Nspread = Ndata_hi - Ndata_low

2 13 std_spectra_l = np.zeros((Nspread, 2), dtype=float)

2 15 for jj in range(0, Nspread)

216 # 100 cm per meter

217 std_spectra_l [j j , 0] = std_spectra [j j + Ndata.low, 0]*100

2 is # convert '/, to actual

219 std_spectra_l [j j , 1] = std_spectra[j j + Ndata_low, 1]/100

222 # Save matched model spectrum to working d ire c to ry

223 i f j -=■■©:

224 np.savetxt( ’/media/sf_Win7share/JET/Spectra/’

225 + ’Trans_Spec_Xf er_ ’ + str(n) + ’_lo_metal.txt’ ,

226 std_spectra_l, fmt="’Xl2. lOf 7,12. lOf")

228 elif j == 1:

229 np.savetxt( ’/media/sf_Win7share/JET/Spectra/’

230 + ’Trans_Spec_Xfer_’ + str(n) + ’_hi_metal.txt’ ,

231 std _ sp e c tra _ l, fmt="7,12. lO f ‘/,12.10f")

233

234 # Set up input dictionaries for Pandexo

235 exo_dict = jdi.load_exo_dict()

237 # saturation level in percent of full well

238 exo_dict [’observation’] ['sat_level’] = 80

239 exo_dict [’observation’] [’sat_unit’] = ’*/,’

241 # fixed binning.

242 exo_dict [’observation’] [’R5] = Res

244 # defines how you specify out of transit observing time 135

245 # ’frac’ : fraction of time in transit versus out = in/out

246 exo_dict[’observation’] [ ’baseline_unit’] = ’total’

248 total_obs = 2*pdxinput[ntransfer, 8] *3600

250 # in accordance with what was specified above

251 # (total observing time in sec)

252 exo.dict[’observation’] [ ’baseline’] = total_obs

254 # this can be a fixed level or it can be a filepath (ppm)

255 exo.dict [’observation’] [ ’noise_floor’] = nfloor

257 # phoenix or user (if you have your own)

258 exo_dict[’star’] [’type’] = ’phoenix’

260 # magnitude of the system

2 6 1 exo_dict[’star’] [’mag’] = Jmag

263 # for J mag = 1.25, H = 1.6, K = 2.22.. etc (all in microns) 264 exo_dict[’star’] [’ref_wave’] = 1 25

266 # Teff in K

267 exo_dict [’star’] [ ’temp’] = survey_data[i, 7]

268

269 # as lo g Fe/H

270 exo_dict [’star ’] [’metal’] = 0.0

2 7 1 exo_dict[’star’] [’logg’] = 4.0

273 # tells pandexo you are uploading your own spectrum

274 exo.dict[’planet’] [’type’] =’user’

276 # options include "um","nm" ,"Angs", "sec" (for phase curves)

277 exo_dict[’planet’] [’w_unit’] = ’em’

279 # other options are !fp/f*’ , ’rp~2/r*"2’ 136

exo.dict [’planet’] [’f_unit’] = ’rp"2/r*"2’

281

282 tdur_sec = pdxinput[ntransfer, 8]*3600

283

284 # transit duration

285 exo_dict[’planet’] [’transit_duration’] = tdur_sec

286

287 # any unit of time in accordance with astropy.units

288 exo.dict [’planet’][’td_unit’] = ’s ’

289

290

291 # Define model spectrum for Pandexo dictionary

292 if j == 0:

293 exo.dict[’planet’] [’exopath’] = (’/media/sf_Win7share/JET/Spectra/’

294 + ’Trans_Spec_Xfer_’ + str(n) + ’_lo_metal.txt’)

295 print(’\n’, ’ Comparing simulation to model spectrum’

296 ’ and flat line for lo.metal atm:’,’\n’)

297

298

299 elif j == 1:

300 exo.dict [’planet’] [’exopath’] = (’/media/sf_Win7share/JET/Spectra/’

301 + ’Trans_Spec_Xfer_’ + str(n) + ’_hi_metal.txt’)

302 print(’\n’, ’ Comparing simulation to model spectrum’

303 ’ and flat line for hi_metal atm:’,’\n’)

304

305

306 ###############################################################

307 # Run Pandexo for a single transit

308 ###############################################################

309

310 # Set for single transit

311 exo_dict[’observation’][’noccultations’] = 1

312

313 # Run Pandexo

314 single.transit = jdi.run_pandexo(exo_dict, [Instrument], 137

save_f ile=True,

316 output_path=os.getcwdO ,

317 output.file = ’singlerun.p ’)

318

319 # Extract output from pickle file

320 out = pk.load(open('singlerun.p’,’rb’))

321

322 # Generate simulated instrument spectrum with errors

323 x< y> e = jpi•jwst_ld_spec(out, model=True,

324 x_range=[wavelimlo, wavelimhi],

325 plot=False)

326

327

328 ###############################################################

329 # Plot simulated instr. spectrum with model spectrum overlay

330 ###############################################################

331 xl = np.ndarray.flatten(np.array(x))

332 ylOO = np.ndarray.flatten(np.asarray(y)*100)

333 elOO = np.ndarray.flatten(np.asarray(e)*100)

334

335

336 # Rebin xfer data from Exo-Transnit to Pandexo output res

337 # Call the spectres function to resample the input spectrum

338 # or spectra to the new wavelength grid

339 rebinned_model = spectres(xl, std_spectra_l[:, 0]*10**4,

340 std_spectra_l[:, 1])

341 y.rebin = rebinned_model*100

342

343 fignum = 1

344 fnamel = [ Vmedia/sf_Win7share/JET/Spectra/’

345 + ’Trans_Spec_Pdxo_’ + str(n) + ’_lo_metal.svg’,

346 ’/media/sf_Win7share/JET/Spectra/’

347 + ’Trans_Spec_Pdxo_’ + str(n) + ’_hi_metal.svg’]

348

349 p i t .figure(fignum, figsize = (17, 9)) 138

350 pit. xlabeKr’Wavelength ($\mu$m) ’, fontsize=16, labelpad=15)

351 pit ylabeK"Transit Depth (*/,)", fontsize=16, labelpad=15)

352 axes = plt.gcaQ

353 axes.set_xlim(wavelimlo, wavelimhi)

355 # Overlay rebinned model spectrum and define plot filenames

356 plt.plot(xl, rebinned_model*10Q , ’tab:gray’, lw=4)

357 pit.tick_params(labelsize=14)

358 pit.grid(b=True, which=’major’, linestyle=’— ’)

360 # Plot simulated transmission spectrum

361 yerr = elOO

362 pit.errorbar(xl, ylOO, yerr=yerr, fmt=’o !, ecolor=’k ’,

363 mfc=’k ’, mec=’k ’) # showing 1-sigma errors

364 pit,legend([’Model’, str(Instrument)], loc=2, fontsize=16)

366 # Save plot to .svg file

367 if j ==0:

368 p i t . savefig(fnamel[0 ], overwrite=True, bbox_inches=’ tight’)

370 elif j == 1:

371 pit.savefig(fnamel[1], overwrite=True, bbox_inches=’tight’)

373 plt.closeQ

375

376 ###############################################################

377 # Determine the number of transits needed for strong detection

378 ###############################################################

380 # Extract single transit simulation values with NO random noise

381 xltrans, yltrans, eltrans = single.transit[’FinalSpectrum’] [’wave’],

382 single_transit[’FinalSpectrum’] [’spectrum’],

383 single_transit[’FinalSpectrum’] [’error_w_floor’] 139

385 for idx, ntr in enumerate(ints):

386

387 # BIC loop to account for jitter in the noisy data..

388 for nrun in range(0, Npdxo):

389

390 np.random.seed()

391 multi_trans_noise = eltrans/np.sqrt(ntr)

392

393 # add in noise floor

394 multi_trans_noise[multi_trans_noise

395 < nfloor/10**6] = nfloor/10**6

396

397 # add randomness

398 rand_noise= multi_trans_noise*(np.random.randn(len(xltrans)))

399

400 # this rand_noise will get smaller and smaller

401 # as your ntr increases

402 simulated_spectrum = yltrans + rand_noise

403

404 x, y, e = xltrans, simulated_spectrum, multi_trans_noise

405

406

407 xl = np.ndarray.flatten(np.array(x))

408 ylOO = np.ndarray.flatten(np.asarray(y)*100)

409 elOO = np.ndarray.flatten(np.asarray(e)*100)

410

411

412 #######################################################

413 # Determine delta BIC, comparing sim data to ExoT model

414 # and flat line

415 #######################################################

416

417 # Model spectrum case

418 ndof = 4

419 140

# Determine model chi-squaxed and reduced chi-squared

421 chi_squared = n p .sum(((yl00-y_rebin)/elOO)**2)

422 reduced_chi_squared = chi.squared/(len(xl)-ndof)

423

424 # Determine error factor to drive reduced

425 # chi-squared to 1.

426 errfactor = np.sqrt(reduced_chi_squared)

427

428 # Determine rescaled chi-squared for this model

429 sig_comb = np.sqrt((errfactor*el00)**2)

430 chi.squared = np.sum(((yl00-y_rebin)/sig_comb)**2)

431 reduced_chi_squared = chi_squared/(len(xl)-ndof)

432

433 # Compute BIC for model spectrum case

434 BICMS = chi_squared + ndof*np.log(len(xl))

435

436

437 # Flat-line spectrum case

438 ndof = 1

439

440 # Determine chi-squared for flat-line model

441 chi.squared = np.sum(((ylOO

442 -np.median(y100))/sig_comb)**2)

443

444 # Compute BIC for flat-line spectrum case

445 BICFL = chi.squared + ndof*np.log(len(xl))

446

447 xnt [idx, nrun] = ntr

448 dBIC[idx, nrun] = BICFL - BICMS

449

450

451 # Compute mean dBIC for all transit cases

452 dBIC_mean[idx] = np.mean(dBIC[idx])

453

454 # Compute std dev of the dBIC for all transit cases 141

455 dBIC_sdev[idx] = np. std (dBIC [idx] )

458 # Define the base data for interpolation:

459 for ii in range(0, np.max(idx)+l) :

460 xx [ii] = xnt[ii, 0]

461 yy = dBIC_mean - dBIC.sdev

463

464 # Force yy and dBIC_mean to increase monotonically

465 for iii in range(0, np.max(idx)):

466 if yy[iii+l] < yy[iii]:

467 yytiii+1] = yy[iii]

470 for iii in range (0, np. max (idx)) :

471 if dBIC.mean[iii+1] < dBIC_mean[iii]:

472 dBIC_mean[iii+l] = dBIC_mean [iii]

475 # First adjust smoothing parameter for interpolation routine

476 if dBIC_mean[np.max(idx)] > 175:

477 smooth = 0

478 e l s e :

479 smooth = 2

481 # Define interpolation function for

482 # mean dBIC (less 1 sigma) vs ((transits (soft smoothing)

483 dbicvstrl = UnivariateSpline(xx, yy, s=smooth)

486 # Check if dBIC_mean (less one sigma) for the max number

487 # of transits is < dBIC_thresh

488 if (dbicvstrl(xx[np.max(idx)])) < dBIC_thresh: 142

490 if j = = 0 :

491 print(’ mean dBIC (less one sigma) <’,

492 dBIC.thresh, ’for’, str(np.max(ints)),

493 ’transits ---> no detection’)

494 print(’\n’)

495

496 # Set flags

497 nt_lo [n-Nrow_start] = 999

498 tT.lo [n-Nrow_start] = 9990

499

500

501 elif j == 1:

502 print(’ mean dBIC (less one sigma) <’,

503 dBIC_thresh, ’for’, str(np.nax(ints)),

504 ’tr a n s i t s --- > no detection’)

505 print (’ \n ’)

507 # Set flags

508 nt_hi[n-Nrow_start] = 999

509 tT_hi [n-Nrow_start] = 9990

510

5 12 # Check if dBIC.mean (less one sigma) for a

513 # single transit is > dBIC_thresh

514 elif (dbicvstrl(xx[0])) > dBIC_thresh:

516 if j = = 0 :

5 17 nt_lo[n-Nrow_start] = 1

518 print(’ min # of transits for mean’

519 ’ dBIC (less one sigma) >’, dBIC.thresh, ’: ’, 1)

520 print (’\n’)

522 # Determine total instrument obs cycle for detection

523 tT_lo[n-Nrow_start] = ((2 * tdur_sec/3600

524 + 2.4)*1.16)*nt_lo[n-Nrow_start] 143

525

526

527 elif j m l ;

528 nt_hi[n-Nrow_start] = 1

529 print(’ min # of transits for mean’

530 ’ dBIC (less one sigma) > ’, dBIC_thresh, ’: ’, 1)

531 print(’\n’)

532

533 # Determine total instrument obs cycle for detection

534 tT.hi[n-Nrow_start] = ((2 * tdur_sec/3600

535 + 2 ,4)*1.16)*nt_hi[n-Nrow_start]

536

537

538

539 ###############################################################

540 # Interpolate dBIC vs #transits

541 ###############################################################

542 else:

543

544 # Set up plot axes, etc.

545 fignum = 2

546 p i t .figure(fignum, figsize = (17, 9))

547 axes = plt.gcaO

548 pit.xlabel(’# transits’, fontsize=16, labelpad=15)

549 pit .ylabeK"dBIC" , fontsize=16, labelpad=15)

550

551 # Plot dBIC threshold

552 ythresh = np.linspace(dBIC_thresh, dBIC_thresh, len(ints))

553 pit.plot(xx, ythresh, ’k— ’, lw=3, color=’tab:gray’)

554

555 # Plot dBIC_mean vs #transits, grid pts

556 plt.plot(xx, dBIC_mean, ’k.’)

557

558 # Define interpolation function for

559 # mean dBIC vs #transits (soft smoothing) 144

560 dbicvstr = UnivariateSpline(xx, dBIC_mean, s=smooth)

561

562 # Define finer grid for plot interpolation

563 xxfine = np.linspace(l, np.max(ints), 5*np.max(ints))

564

565 # Plot dBIC.mean vs #transits interp.

566 pit.plot(xxfine, dbicvstr(xxfine), ’k:’, lv=l)

568 # Plot mean dBIC (less one sigma) vs #transits interp.

569 pit.plot(xxfine, dbicvstrl(xxfine), ’k-’, lv=2)

570

571

572 pit.tick_params(labelsize=14)

573 pit.grid(b=True, which=’major’, linestyle=’- .’)

574 pit.legend([’very strong detection threshold’,

575 r ’mean dBIC grid pts.’, ’mean dBIC’,

576 r'mean dBIC (less l$\sigma$)’],

577 loc=4, fontsize=16)

578

579 fname2 = [’/media/sf_Win7share/JET/dBIC/’ + ’dBIC_’

580 + str(n) + ’ _lo_metal. svg’,

581 ’/media/sf_Win7share/JET/dBIC/’ + ’dB IC _’

582 + str(n) + ’_hi_metal.svg’]

583

584 # Save plot to .svg file

585 if j = = 0 :

586 pit.savefig(fname2[0], overwrite=True,

587 bbox_inches=’tight’)

589 elif j = = 1 :

590 p i t . savef ig(fname2 [l] , overwrite=True,

591 bbox_inches=’tight’)

593 pit. close () 145

595

596 ###########################################################

597 # Using zero-finder, find min # tra n s its

598 # for dBIC > dBIC_thresh

599 ###########################################################

600

601 def froot(x):

602 return dbicvstrl(x) - dBIC_thresh

603

604

605 root = optimize.brentq(froot, a=l 0, b=np max(ints),

606 maxiter=5000)

607

608 i f j == 0

609 nt_lo[n-Nrow_start] = np.ceil(root)

610 print(’ min # of transits for mean’

611 ’ dBIC (less one sigma) > ’, dBIC.thresh,

612 ’: ’, nt_lo[n-Nrow_start] )

613 print(’\n’)

614

615 # Determine total instrument obs cycle for detection

616 tT_lo[n-Krow_start] = ((2 * tdur_sec/3600

617 + 2.4)*1.16)*nt_lo[n-Nrow_start]

618

619 # Check if number of transits are observable in 10 yrs

620 if pdxinput[ntransfer, 9] < nt_lo[n-Nrow_start]:

621 print(’ # of transits needed for’

622 ’ d ete ctio n exceed those available’

623 ’ in lOyr mission’)

624 print(’\n’)

625 tT_lo[n-Krow_start] = 9970

626

627 elif j == 1

628 nt_hi[n-Nrow_start] = np.ceil(root)

629 print(’ min # of transits for mean’ 146

’ dBIC (less one sigma) > ’, dBIC_thresh,

631 ’: ’, nt_hi[n-Nrow_start])

632 print('\n’)

633

634 # Determine total instrument obs cycle for detection

635 tT.hi [n-Nrow_start] = ((2 * tdur_sec/3600 +

636 2.4)*!.16)*nt_hi[n-Nrow_start]

637

638 # Check if number of transits are observable in 10 yrs

639 if pdxinput[ntransfer, 9] < nt_hi[n-Nrow_start];

640 print(’ # of transits needed for'

641 ’ detection exceed those observable'

642 ’ in a lOyr mission’)

643 print(’\n’)

644 tT_hi[n-Nrow_start] = 9970

645

646

647 # Print warning note if Jmag is too low

648 el se:

649 printO Warning: Jmag too low fo r this target,’

650 ’ detector saturation \n’)

651 nt_lo [n-Nrow_start] = 998 # i f Jmag < Jmagsat for NIRSpec G235M

652 tT_lo[n-Nrow_start] = 9980

653 nt_hi[n-Nrow_start] = 998 # if Jmag < Jmagsat fo r NIRSpec G235M

654 tT_hi[n-Nrow_start] = 9980

655

656

657 # Print warning note if Rp is too high

658 el se:

659 printC Warning: This target has Rp > 10;’

660 ’ unreliable mass est \n’)

661 nt_lo[n-Nrow_start] = 996 # if Rp > 10 Rearth

662 tT_lo[n-Nrow_start] = 9960

663 nt_hi[n-Nrow_start] = 996 # if Rp > 10 Rearth

664 tT_hi[n-Nrow_start] = 9960 147

############################################################################### # Consolidate summary data ###############################################################################

671

672 # Initialize summary_data array

673 Nrows = Nrow_end - Nrow_start + 1

674 summary_data = np,zeros((Nrows, 26))

675

676 for i in range(0, Nrow_end-Nrow_start+l):

677

678 n = i + Nrow_start

679 ntransfer = n - int(pdxinput[0, 0])

680

681 summary_data[i, 0] = pdxinput[ntransfer, 10] # Cat

682 summary_data[i, 1] = 1 # Rank

683 summary„data[i, 2] = n # Target

684 summary_data[i, 3] = survey_data[i+Nrow_start-l, 0] # RAdeg

685 summary„data[i, 4] = survey_data[i+Nrow_start-l, 1] # DEdeg

686 summary_data[i, 5] = survey_data[i+Nrow_start-1, 2] # Rp

687 summary_data[i, 6] = survey_data[i+Nrow_start-l, 3] # Per

688 summary_data[i, 7] = survey_data[i+Nrow_start-l, 4] # S

689 summary_data[i, 8] = survey_data[i+Nrow_start-l, 5] # K

690 summary_data[i, 9] = survey_data[i+Nrow_start-l, 6] # R*

691 summary_data[i, 10] = survey_data[i+Nrow_stairt-l, 7] # Teff

692 summary_data[i, 11] = survey_data[i+Nrow_start-l, 10] # Jmag

693 summary_data[i, 12] = pdxinput [ntransfer, 1] # a

694 summary_data[i, 13] = pdxinput[ntransfer, 2] # Teq

695 summary_data[i, 14] = pdxinput[ntransfer, 6] # gs

696 summary_data[i, 15] = pdxinput [ntransfer, 3] # Mmed

697 summary_data[i, 18] = pdxinput[ntransfer, 7] # Rhomed

698 summary_data[i, 19] = pdxinput[ntransfer, 8] # tdur

699 summary_data[i, 20] = pdxinput[ntransfer, 9] # ntlOyr 148

700 summary_data [i, 21] = nt_lo [n-Nrow_start] # nt_lo

7 0 1 summary_data [i, 22] = nt_hi[n-Nrow_start] # nt_hi

702 summary_data[i, 23] = tT_lo[n-Nrow_start] # tT_lo

703 summary_data[i, 24] = tT_hi [n-Nrow_start] # tT.hi

704 summary_data[i, 25] = (tT_lo [n-Nrow_start] +

705 tT_hi [n-Nrow_start] ) /2 # tT_avg

706

707

708

709 ###############################################################################

7 10 # Write transfer_data to Pdxo output file

711 ###############################################################################

7 12 summary_data_old = np,loadtxt(’Pdxo_Output.txt’, ndmin=2, skiprows=0)

7 13 targets.old = np,max(summary_data_old, axis=0)

7 14 last_target_old = targets.old [2]

716 targets_new = np mi n(summary_data, axis=0)

7 17 f irst_target_new = targets.new [2]

7 19 if first_target_new == last_target_old + 1:

720 with open(’Pdxo.Output.txt’, ’ba’) as f:

7 2 1 np. savetxt(f , sumir.ary_data)

722 else:

723 np.savetxt(’Pdxo_Output.txt’, summary_data)

726 raise SystemExit

! Note: Unfortunately, for the code to run properly, lines 381, 382, and 383 of Pdxo_Master.64.py can not be broken as shown. The lines must be joined into a single line sequence with comma delimiters. 149

Subprogram: Rank_Master.06.py

^ n ii ii

4 Final as of Oct 9, 2018

6 ©author: Charles Fortenbach

8 SFSU Master’s Thesis Project

10 Title: A Framework for Optimizing Exoplanet Targets for the JWST

12 Subprogram: Rank_Master.py

14 Version: 1,0

16 " " "

18 import numpy as np

19 import textwrap

20 import datetime

2 1 import time

24

25 ###############################################################################

26 # Read in JET input file

27 ###############################################################################

28 JET_params = np.genfromtxt(’JET_Input.txt’, dtype=str, delimiter=’, ’)

29 30 #JWST instrument/mode

3 1 Instrument = JET_params [0, 1]

33 # Instrument noise floor (ppm) 34 nfloor = float (JET_params [1, 1]) 150

35

36 # Set common plot parameters (e.g., for NIRSpec G235M):

37 wavelimlo = float(JET_params[2, 1]) # low end of plot wavelength scale (nm)

38 wavelimhi = float(JET_params[3, 1]) # high end of plot wavelength scale (nm)

39

40 # Set equation of state for model atmospheres, low and high metallicity

41 E0S_lo = JET.params[4, 1]

42 E0S_hi = JET_params [5, 1]

43

44 # pressure of cloud top (in Pa), — or leave at 0.0 for no clouds

45 Cloud_lo = float(JET_params[6, 1])

46 Cloud_hi = float(JET.params[7, 1])

47

48 # Spectral resolution

49 Res = int(JET_params [8, 1])

50

51 # Saturation magnitude

52 Jmag_sat = float(JET_params[9, 1])

53

54 # Set starting and ending targets from survey list

55 # See below

56

57 # Set # of dBIC sample runs for each transit case

58 Npdxo = int(JET_params[l2, 1])

59

60 # Set dBIC threshold

61 dBIC_thresh = int(JET_params[13, 1])

62

63 # Set Run flags

64 RunExoT = JET.params[14, 1]

65 RunPdxo = JET_params[15, 1]

66 RunRank = JET.params[16, 1]

67

68

69 151

70 ###############################################################################

71 # Check Run flag

72 ###############################################################################

73 if RunRank == 'N ’:

74 raise SystemExit

75

76

77

78 ###############################################################################

79 # Print notification of running Pdxo_Master

80 ###############################################################################

81 print(’\n’)

82 printC Running Rank_Master: ")

83

84

85

86 ###############################################################################

87 # Read in survey data file

88 ###############################################################################

89 summary_data = np.loadtxt(’Pdxo_Output.txt’, ndmin=2, skiprows=0)

90

91

92 # Reset target indices

93 Nrow.start = int (summary_data[0, 2])

94 targets = np.max(summary_data, axis=0)

95 Nrow_end = int(targets[2])

96

97

98

99 ###############################################################################

100 # Initialize arrays

101 ###############################################################################

102 Nrow = Nrow_end - Nrow_start + 1

103 start = np.zeros(7, dtype=int)

104 end = np.zeros(7, dtype=int) 152

107 J08 ###############################################################################

109 # Sort summary data by category and then total observation time no ###############################################################################

111 print(’\ n ’)

112 print(" Sorting and ranking targets . . .\n\n" )

114 summary _data = sorted(summary_data, key=lambda x: (x[0] , x[25]))

1 15 summary_data = np.asarray(summary_data)

117 for i in range(0, Nrow_end - Nrow_start):

118 i f summary_data[.i+l, 0] == sunnnary_data[i, 0]: # if Cat is the same

119 summary_data[i+l, 1] = summary_data[i, 1] + 1 # then increment rank

120 el s e ;

12 1 summary_data[i+1, 1] = 1 # otherwise reset the rank to one, and loop

123

124

125 ###############################################################################

126 # Write summary table to txt file in working directory

127 ###############################################################################

128 now = datetime, datetime. now()

129 timestr = time. str f time ( " ’/, Y' /m’/.d-’/.H’/.M'/.S11)

13 1 fout = open(’/media/sf_Win7share/JET/JET_Smry_tables/’ + ’JET_Smry_’

132 + timestr + ’.txt’, "w", newline=’’)

133 fout.write(’JET run ID: ’ + str(now))

134 fout .write(textwrap.dedent("""\

137 Target Summary Table:

139 Col Label Explanations 153

141 - ranking

142 0 Cat Planet demographic category (1 - 7)

143 1 Rank Rank within Cat based on total observ. cycle for detection

144

145 survey data:

146 2 Targ Survey table index (starting with 1)

147 3 RAdeg Right Ascension in decimal degrees (J2000)

148 4 DEdeg Declination in decimal degrees (J2000)

149 5 Rp Planetary radius (mean) in Earth units (R/Rearth)

150 6 Per Period (days)

151 7 S Planetary insolation in Earth units (S/Searth)

152 8 R* Stellar radius (Solar radii)

153 9 Teff Stellar effective temperature (K)

154 10 Jmag Apparent J band magnitude (mag)

155

156 — - computed va lu e s:

157 11 a Semi-major axis of planet orbit (Solar radii)

158 12 Teq Planet equilibrium temperature (K) 159 13 gs Planet surface gravity (m/s"2)

160 14 Mmed Planet mass (median) in Earth units (M/Mearth)

161 15 tdur Transit duration (hrs)

162 16 ntlOyr Number of transits observable in lOyr mission

163 17 n t_ lo Number of transits needed for detection; lo-metal atm

164 18 nt_h i Number of transits needed for detection; hi-metal atm

165 19 t T .lo Total observ. cycle (in/out of transit); lo-metal atm (hrs)

166 20 t T .h i Total observ. cycle (in/out of transit); hi-metal atm (hrs)

167 21 tT_avg Total observ. cycle for ’average’ atm detection (hrs)

168 II It tl 169 '))

170

171 font.write(' JWST Instrument; ’ + Instrument + ’\n’)

172 fout.write(' Wavelength Range; ’ + str(wavelimlo) + !

173 + str(wavelimhi) + ’ microns’ + ’\ n ’)

174 fout.write(’ Jmag Limit: ’ + str(Jmag_sat) + ’\n’) 154

175 fout.writeC Noise Floor: ’ + str(int(nfloor)) + ’ ppm’ + ’\n’)

177 if Cloud_lo = = 0.0:

178 fout.w riteC Eq. of State (lo_m etal atm): ’ + str(E0S_lo)

179 + ’, with no clouds’ + ’\n’)

180 e l s e :

18 1 fout.writeC Eq. of State (lo_metal atm): ’ + str(E0S_lo)

182 + ’, with cloud deck at ’ + str(Cloud_lo/100) + ’ mbar’ + ’\n’)

184 i f Cloud_hi = = 0 . 0 :

185 fout.writeC’ Eq. of State (hi_metal atm): ’ + str(E0S_hi)

186 + ’, with no clouds’ + ’\ n ’)

187 else:

188 fout.writeC Eq. of State (hi_metal atm): ’ + str(EOS.hi)

189 + ’, with cloud deck at ’ + str(Cloud_hi/100) + ’ mbar’ + ’\n’)

19 1 fout.writeC Detection Threshold (dBIC): ’ + str(dBIC_thresh) + ’\n’)

195 # Define headers and formats for output

196 headl = (" I------survey data------1"

197 "------computed values------!\n")

198 head2 = (" Rank Targ RAdeg DEdeg Rp Per S R* Teff "

199 "Jmag a Teq gs Mmed tdur ntlOyr nt_lo nt_hi "

200 "tT_lo tT_hi tT_avg\n")

201 fmtl = ("{Rank:5.Of} {n:6.0f> {RAdeg:8.3f> {DEdeg:8.3f> {Rp:6.2f} {Per:6.2f>"

202 " {S:7.1f} {Rstar: 6.2f} {Teff:6.0f> {Jmag:6.1f} {a:6.If} {Teq:6.0f}"

203 " {gs:6.1f} {Mmed:7.2f} {tdur:6.1f} {ntlOyr:7.Of} {nt_lo:6.Of}"

204 " {nt_hi:6.0f} {tT_lo:7.1f> {tT_hi:7.1f} {tT_avg:7.lf}\n")

205

206 head3 = (" Targ RAdeg DEdeg Rp Per S R* Teff tl

207 "Jmag a Teq gs Mmed tdur ntlOyr\n")

208 fmt2 = (" Min: {Rp:6.2f} {Per:6.2f } {S:7.1f}"

209 " {Rstar:6.2f} {Teff:6.Of} {Jmag:6.If} {a:6.If} {Teq:6.Of} {gs:6.1f}" 155

210 " {Mmed:7.2f} {tdux:6.If} {ntl0yr:7, 0f}\n")

2 11 fmt3 = (" Med {Rp:6.2f} {Per:6,2f} {S:7.1f}"

212 " {Rstar:6,2f} {Teff 6.Of} {Jmag:6 ,I f } {a:6.1f} {Teq;8.0f} {gs-6.1f}"

213 " {Mmed:7.2f} {tdur.6.If} {nt1Oyr:7.Of}\n") 214 fmt4 = ("Mean; {Rp:6.2f} {Per:6.2f} {S:7.if}"

215 " {Rstar 6.2f> {Teff 6 Of} {Jmag:6,lf> {a,6 ,lf} {Teq;6.0f> {gs:6.1f}"

216 " {Mmed:7.2f} {tdur6.1f} {ntl0yr:7.0f}\n")

217 fmt5 = (" Max: {R p ;6 .2 f} {P e r;6 .2 f} {S :7 .1 f}"

218 " {Rstar:6.2f} {Teff 6.Of} {Jmag:6.1f} {a,6.1f} {TeqS.Of} {gs:6.1f}"

219 " {Mmed:7.2f} {tdur;6,lf} {ntl0yr:7 Of}\n")

221 head5 = " F u ll Target Set:\n"

222 head4 = (" Targ RAdeg DEdeg Rp Per S R* T e ff " 223 "Jmag a Teq gs Mmed td u r n tlO yr\ n ")

224 fmt6 = (" Min: {n:6.0f} {RAdeg 8.3f} {DEdeg;8.3f} {Rp*6 2f} {Per:6.2f}"

225 " {S 7,lf> {Rstar:6.2f} {Teff:6.Of> {Jmag:6.If} {a:5,If} {Teq:6.Of}"

226 " {gs:6.1f} {Mmed:7.2f} {tdur:6,lf} {ntl0yr:7.0f}\n")

227 fmt7 = (" Med: {RAdeg.8.3f} {DEdeg 8.3f} {Rp:6.2f} {Per:6.2f} {S:7.1f}"

228 " {Rstar:6.2f} {Teff:6 Of} {Jmag:6.1f} {a 6.If} {Teq:6.0f} {gs:6.1f}"

229 " {Mmed;7.2f} {tdur 6.If} {ntl0yr:7.0f}\n") 230 fmt8 = ("Mean: {RAdeg8.3f} {DEdeg:8.3f} {Rp:6,2f} {Per:6,2f} {S:7.1f}" 231 " {Rstar:6.2f} {Teff;6.0f} {Jmag:6,lf} {a 6.If} {Teq.6.Of} {gs:6.1f}"

232 " {Mmed:7.2f} {tdur 6.If} {ntl0yr:7.0f}\n")

233 fmt9 = (" Max {n:6.0f} {RAdeg8.3f} {DEdeg:8.3f} {Rp6.2f} {Per:6.2f} {S:7.1f}"

234 " {Rstar:6.2f} {Teff 6 Of} {Jmag:6.1f} {a 6 If} {Teq 6.Of} {gs:6.If}"

235 " {Mmed:7.2f} {tdur.6 If} {ntlOyr:7.Of}\n")

238 # Set s ta rt and end pts fo r categories 239 for j in range(0, 7):

240 for i in range(0, Nrow_end - Nrow_start + 1): 241 if np.int(summary_data[i, 0]) == j + 1: 242 if np. int (summary_data[i, 1]) == 1: 243 s ta rt [j] = i 156

245 for j in range(0, 7):

246 for i in range(0, Nrow_end - Nrow_start) :

247 if np, int (summary _data[i, 0]) == j + 1:

248 if np,int(summary_data[i+l, 1]) <= np. int (summary_data[i, 1]):

249 end[j] = i

251 j = np.max(np. int (np int (summary _data[i, 0]))) — 1

252 for i in range(0, Nrow_end - Nrow_start + 1):

253 if i == (Nrow.end - Nrow_start)

254 end[j] = i

255

257 # Set flag for targets with tT_avg undetermined since hi.metal atm not detected

258 for i in range(0, Nrow.end - Nrow.start + 1):

259 if summary_data[i, 25] > 4000 and summary_data[i, 25] < 6000

260 summary_data[i, 25] = 9950

263 # Write summary table

264 for j in range(0, 7):

265 fout.w rite(’\n ’)

266 f out .write( ’ \n’)

267 fout.write(’\n’)

268 f out .write (’Category: ’ + str(j+D)

269 fout.write(’\nJ)

270 fout .write(headl)

271 fout .write(head2)

273 for i in range (0, Nrow_end - Nrow_start + 1) :

275 if np.int(summary_data[i, 0]) == j + 1

277 fout ,write(fmtl. format (

278 Cat = summary_data[i, 0] ,

279 Rank = summary_data[i, 1], 157

n = summary_data[i, 2 ],

281 RAdeg = summary_data[i, 3 ],

282 DEdeg * summary_data[i, 4 ],

283 Rp = summary_data[i, 5 ],

284 Per = summary_data[i, 6] ,

285 S = summary_data[i, 7 ],

286 K = summary.data [ i , 8 ], 287 Rstar = summary_data[i, 9 ], 288 T e ff = summary.data[i, 10],

289 Jmag = summary_data[i, 11], 290 a = summary_data[i, 12] ,

291 Teq = summary_data[i, 13] ,

292 gs = summary_data[i, 14] ,

293 Mraed = summary_data[i, 15] ,

294 Rhomed = summary., da t a [i, 18] ,

295 tdur = summary_data[i, 19],

296 n tlO yr = summary_data[i, 20] ,

297 n t_ lo = summary_data[i, 21] ,

298 nt_h i = summary_data[i, 22] ,

299 t T .lo = summary_data[i, 23] ,

300 t T .h i = summary_data[i, 24],

301 tT_avg = summary_data[i, 25]))

302

303

304 fo r i in range(0, Nrow_end - Nrow_start + 1):

305

306 i f n p .int(summary_data[i, 0]) == j + 1 :

307

308 # Compute stats for each Category

309 f ou t .write(’\ n ’)

310 fout.write(fmt2.format(

311 Cat = np.min(sum m ary_data[start [ j] : end[ j] +1, 0] ) ,

312 Rank = np. min(suminary_data[start [j] end[j]+ 1, 1] ) ,

313 n = np.min(sum m ary_data[start [ j] e n d [j] +1, 2 ]),

314 RAdeg = np min(summary_data[start [ j] : e n d [j] +1, 3]), 315 DEdeg = np. min( summary _data [start [j' : end [ ]+l, 4]), 316 Rp = np,min(summary_data[start[j :end[ ]+l, 5]), 317 Per = np.min(summary_data[start[j :end[ ]+l. 6]), 318 S = np.min(summary_data[start[j :end[ ]+i, 7]),

319 K = np.min(summary_data[start[j :end[ ] + l, 8]),

320 Rstar = np.min(summary_data[start[j : end [ ]+l, 9]), 321 Teff = np.min(summary_data[start[j : end [ ]+i, 10]) 322 Jmag = np.min(summary_data[start[j :end[ ] + l, 11]) 323 a = np.min(summary_data[start[j : end [ ]+l, 12]) 324 Teq = np. min (summary _data [start [j :end[ ]+l, 13]) 325 gs = np .min (summary_data [start [j : end [ 3+1, 14]) 326 Mmed = np.min(summary_data[start [j :end[ ] + l . 15]) 327 Rhomed = np.min(summaxy_data[start[j : end [ ]+i, 18]) 328 tdur = np. min(summary_data[start [j :end[ ]+l, 19]) 329 ntlOyr = np.min(summary_data[start [j :end[ ] + l . 20]) 330 nt_lo = np .min(summary_data[start [j :end[ ] + l , 21]) 331 nt_hi = np.min(summary_data[start[j : end [ ] + l , 22]) 332 tT.lo = np.min(summary_data[start[j : end [ 1+1, 23]) 333 tT.hi = np.min(summary_data[start[j : end [ ]+l, 24]) 334 tT.avg = np ,min(summary_data[start [j :end[ ]+l, 25])

335

336 fout .write (fmt 3. format ( 337 Cat = np.median(summary_data[start[j] end J]+l. 0]), 338 Rank = np.median(summary_data[start[j] end j]+l. i]), 339 n = np.median (summary_data[start[j] end j ] +l. 2]), 340 RAdeg = np. median (summary_data [start [j] end J]+l. 3]), 341 DEdeg = np.median(summary_data[start[j] end j ] +l. 4]), 342 Rp = np.median(summary_data[start[j] end j]+i, 5]),

343 Per = np .median(summary_data[start [j] end j]+ l. 6]), 344 S = np.median (summary_data[start [j] end j]+ l. 7]), 345 K = np. median (summary _data [start [j] end j]+ i. 8]), 346 Rstar = np.median(summary_data[start[j] end J]+l. 9]), 347 Teff = np. median(summary_data[start [j] end j]+l. 10]),

348 Jmag = np.median(summary_data[start[j] end j]+ i. U]), 349 a = np .median(summary.data[start [j] end j]+ i. 12]), 159

Teq = np.median(summary_data[start [j] :end[j]+l, 13]),

351 gs = np.median(summary.data[start[j] :end[j] +1, 14]),

352 Mmed = np.median(summary.data[start [j] :end[j] +1, 15]),

353 Rhomed = np.median(summary.data[start [j] :end[j] +1, 18]),

354 tdur = np.median(summary_data[start [j] : end [j]+1, 19]),

355 ntlOyr = np.median(summary.data[start [j] : end [j] +1, 20]),

356 nt_lo = np.median(summary_data[start [j] :end[j] +1, 21]),

357 nt_hi = np.median(summary_data[start[j]:end[j]+l, 22]),

358 tT_lo = np.median(summary_data[start [j] :end[j]+l, 23]),

359 tT.hi = np.median(summary.data[start[j] :end[j]+l, 24]),

360 tT_avg = np.median(summary_data[start[j] :end[j]+l, 25])))

361

362 f out.write(fmt4.f ormat(

363 Cat = np.mean(summary.data[start[j : end [ ]+l, 0]), 364 Rank = np.mean(summary.data[start[j : end[ 1+1, 1]), 365 n = np. mean (summary _data [start [j :end[ ]+l, 2]), 366 RAdeg = np.mean(summary_data[start[j :end[ ]+l. 3]), 367 DEdeg = np.mean(summary.data[start[j : end [ ]+l, 4]), 368 Rp = np.mean(summary.data[start [j : end [ ]+l, 5]), 369 Per = np.mean(summary.data[start [j :end[ ]+l, 6]), 370 S = np.mean(summary_data[start[j : end [ ]+l, 7]), 371 K = np.mean(summary.data[start[j :end[ ]+l, 8]), 372 Rstar = np. mean (summary .data [start [j :end[ ]+l, 9]), 373 Teff = np. mean (summary.data [start [j : end [ ]+l, 10]) 374 Jmag = np.mean(summary.data[start[j : end [ ]+l, 11]) 375 a = np. mean (sununary.data [start [j : end [ ]+l, 12]) 376 Teq = np.mean(summary_data[start [j :end[ ]+l, 13])

377 gs = np.mean(summary_data[start [j' : end[ ]+l, 14]) 378 Mmed = n p . mean (summary.data [start [ j : end [ ]+l, 15]) 379 Rhomed = np.mean(summary.data[start[j : end [ ]+l. 18]) 380 tdur = np.mean(summary_data[start [j' : end [^ ]+l, 19]) 381 ntlOyr = np. mean (summary.data [start [j! :end[ ]+l, 20]) 382 nt_lo = np.mean(summary_data[start [j : end [ ]+l, 21]) 383 nt_hi = np.mean(summary_data[start [j : end [ ]+l, 22]) 384 tT_lo = np.mean(summary.data[start[j : end [ ]+l, 23]) 385 tT.hi = np.mean(summary.data[start [j] :end[j]+l 24]),

386 tT.avg = np.mean(summary_data [start [j] :end[j]+l 25]))

387

388 fo ut. write (fmt5. format (

389 Cat = np. max (summary .data [start [j] :end[ ] + l, 0]), 390 R a n k = np.max(summary_data[start[ j ] end[ 1+1, 1]), 391 n = np.max(summary_data[start[j]:end[ ]+l, 2]), 392 RAdeg = np.max(summary_data[start[j]:end[ ]+l. 3]), 393 DEdeg = np.max(summary.data [start[j]:end [ 3+1, 4]),

394 Rp = np. max (summary _data [start [j] : end [ ]+l. 5]), 395 Per = np.max(summary_data[start[j]:end[ ]+l. 6]), 396 S = np.max(summary_data[start[j]:end[ 1+1. 7]), 397 K = np. max (summary _data [start [j] :end[ ]+i, 8]), 398 Rstar = np.max(summary_data[start[j] :end[ ]+i, 9]), 399 Teff = np.max(summary.data[start [j] :end[ 3+1, 10]), 400 Jmag = np.max(summary_data[start [j] :end[ ]+l. U]), 401 a = np.max(summary.data[start[j] :end[ ]+l. 12]), 402 Teq = np.max(summary.data[start[j]:end[ ]+i, 13]), 403 gs = np. max (summary_data [start [j] :end[ ]+i, 14]), 404 Mmed = np.max(summary_data [start[j]:end[ ]+i. 15]), 405 Rhomed = np.max(summary_data[start[j]:end[ ]+i, 18]), 406 tdur = np. max (summary _data [start [j] : end [ ]+i, 19]), 407 ntlOyr = np.max(summary_data[start[j]:end[ ]+i. 20]), 408 nt_lo = np. max (summary .data [start [j] :end[ ]+i, 21]), 409 nt_hi = np. max (summary .data [start [j] :end[ ]+i, 22]), 410 tT.lo = np. max (summary .data [start [j] :end[ ]+i, 23]), 411 tT_hi = np.max(summary.data[start[j]:end[ ]+i, 24]), 412 tT_avg = np.max(summary_data[start [j] :end[ ]+i. 25])))

413 414 break

415

416 417 # Compute stats for full target set

418 fout.w rite(’\n ’)

419 f o u t . w r i t e ( ' \ n ’ ) 420 f o u t. w rite (’ \ n ’)

421 fout .w rite(’ \ n ’)

422 fout.w rite(head5)

423 fout.w rite(headl)

424 f o u t. w rite (head3)

425 fout ,w rite(fm t6.form atC

426 Cat = np.min(summary.data[ , 0]),

427 Rank = np.min(summary.data[ , 1]), 428 n = np.min(summary.data[ , 2]), 429 RAdeg = np,min(summary.data[ , 3]), 430 DEdeg = np.min(summary.data[ , 4]), 431 Rp = np.min(summary.data[ , 5]), 432 Per = np.min(summary.data[ , 6]), 433 S = np.min(summary.data[ , 7]), 434 K = np.min(summary.data[ . 8]), 435 Rstar = np.min(summary.data[ , 9]), 436 Teff = np.min(summary_data[ , 10]),

437 Jmag = np.min(summary.data[ , U ] ) , 438 a = np.min(summary.data[ , 12]), 439 Teq = np.min(summary.data[ , 13]), 440 gs = np.min(summary.data[ , 14]), 441 Mmed = np.min(summary.data[ , 15]), 442 Rhomed = np.min(summary.data[ , 18]), 443 tdur = np.min(summary.data[ , 19]), 444 ntlOyr = np.min(summary.data[ , 20]), 445 nt_lo = np.min(summary.data[ , 21]), 446 nt_hi = np.min(summary_data[ , 22]), 447 tT_lo = np.min(summary.data[ , 23]), 448 tT_hi = np.min(summary.data[ , 24]), 449 tT_avg = np.min(summary_data[ , 25])))

450

451 fo u t. write (fmt7 . format (

452 Cat = np.median (summary.data [: , 0] ) ,

453 Rank = np. median (summary .data [:, 1] ) , 454 n = np.median(summary_data[:, 2]), 162

RAdeg = np.median(summary_data[: 3]), DEdeg = np.median(summary_data[: 4]),

RP = np.median(summary_data[; 5]), Per = np.median(summary_data[. 6]), S = np.median(summary_data[: 7]), K = np. median ( summary _data[, 8]),

461 Rstar = np.median(summary_data[: 9]),

462 Teff = np.median(summary_data[: 10]),

463 Jmag = np.median(summary_data[: 11]),

464 a = np .median(summary_data[ 12]),

465 Teq = np.median(summary_data[: 13]), 466 gs = np.median(summary_data[; 14]), 467 Mmed = np. median (summary_data[: 15]),

468 Rhomed = np.median( summary _data[: 18]), 469 tdur = np, median (summary_data[: 19]),

470 n tlO yr = np.median(summary_data[: 20]),

471 nt_lo = np .median(summary_data[; 21]),

472 nt_hi - np .median (summary Hat.a [ • 22]),

473 tT_lo = np median(summary_data[i 23]),

474 tT.hi = np ,median(summary_data[ 24]),

475 tT.avg = np.median(summary_data[ 25])))

476

477 fout.write(fmt8.format(

478 Cat = np.mean(summary_data[: 0]), 479 Flank = np.mean(summary_data[; 1]), 480 n = np.mean(summary_data[ 2]), 481 RAdeg = np.mean(summary.data[: 3]),

482 DEdeg = np,mean(summary_data[: 4]), 483 Rp = np mean(summary_data[: 5]),

484 Per = np,roean(summary_data[: 6]) , 485 S = np mean(summary_data[: 7]), 486 K = np.mean(summary_data[: 8]), 487 Rstar = np, mean(smmaary_data[: 9]), 488 Teff = np,mean(summary_data[: 10]),

489 Jmag = np.mean(summary_data[; 11]), 490 a = np mean(summary_data[:, 12]), 491 Teq = np.mean(summary_data[:, 13]), 492 gs = np.mean(summary_data[:, 14]), 493 Mmed = np.mean(summary_data[:, 15]), 494 Rhomed = np.mean(summary_data[: , 18]), 495 tdur = np.mean(summary_data[:, 19]), 496 ntlOyr = np.mean(summary.data[ :, 20]), 497 nt_lo = np.mean(summary_data[:, 21]), 498 nt_hi = np.mean(summary_data[:, 22]), 499 tT_lo = np.mean(summary_data[:, 23]), 500 tT.hi = np.mean(summary_data[:, 24]), 501 tT_avg = np.mean(summary_data[:, 25]))) 502 503 fout.write(fmt9 .form at( 504 Cat = np.max(summary.data[: , 0]), 505 Rank = np.max(summary_data[: , 1 ] ) , 506 n = np.max(summary.data[:, 2]), 507 RAdeg = np.max(summary_data[:, 3]), 508 DEdeg = np.max(summary_data[:, 4]), 509 Ep = np. max (summary.data [:, 5]), 510 Per = np.max(summary.data[:, 6]), 511 S = np.max(summary_data[:, 7]),

512 K = np.max(summary_data[:, 8]), 513 Rstar = np.max(summary.data[:, 9]), 514 Teff = np.max(summary_data[:, 10]), 515 Jmag = np.max(summary.data[:, 11]), 516 a = np.max(summary.data[:, 12]), 517 Teq = np.max(summary_data[:, 13]),

518 gs = np.max(summary_data[: , 14]), 519 Mmed = n p .max(summary_data[:, 15]), 520 Rhomed = n p .ma x (summary.data[:, 18]), 521 tdur = np.max(summary_data[:, 19]), 522 ntlOyr = np.max(summary.data[:, 20]), 523 nt.lo = np.max (summary .data [: , 21]), 524 nt_hi = np.max(summary.data[:, 22]), 525 tT_lo = np.max(summary.data[:, 23]),

526 tT_hi « np.max(summary.data[:, 24]),

52? tT_avg = np.max(summary_data[:, 25])))

528

529

530 fout.write(textwrap.dedent(",f"\

531

532

533

534 Notes:

535 "995 and 9950" tT_avg undetermined since hi.metal atm not detected

536 "996 and 9960" Rp > 10: Mmed estimates are unreliable

537 "997 and 9970" number of transits needed for detection exceeds those"""

538 + """ observable in 10 yr mission

539 "998 and 9980" target Jmag is below (brighter than) the saturation"""

540 + """ threshold of this instrument/mode

541 "999 and 9990" dBIC is < dBIC threshold for this target: no detection""

542 + " "" for this atm assumption

543

544

545

546 fout. closeO

547

548

549 print(* JET run complete!*)

550

551 raise SystemExit 165

Appendix B: Baseline JET Run

Excerpt of Output Table: JET_Smry_20180924-155953.txt Target Summary Table: JET run ID: 2018-09-24 15:59:53.351376

Col Label Explanation

— ranking: 0 Cat Planet demographic category (1 - 7) 1 Rank Rank within Cat based on total observ. cycle for

— survey data: 2 Targ Survey table index (starting with 1) 3 RAdeg Right Ascension in decimal degrees (J2000) 4 DEdeg Declination in decimal degrees (J2000) 5 Rp Planetary radius (mean) in Earth units (R/Rearth) 6 Per Period (days) 7 S Planetary insolation in Earth units (S/Searth) 8 R* Stellar radius (Solar radii) 9 Teff Stellar effective temperature (K) 10 Jmag Apparent J band magnitude (mag)

— computed values: 11 a Semi-major axis of planet orbit (Solar radii) 12 Teq Planet equilibrium temperature (K) 13 gs Planet surface gravity (m/sA2! 14 Mmed Planet mass (median) in Earth units (IVi/Mearth) 15 tdur Transit duration (hrs) 16 ntlOyr Number of transits observable in lOyr mission 17 ntjo Number of transits needed for detection; lo-metal 18 nt_hi Number of transits needed for detection; hi-metal 19 tTJo Total observ. cycle (in/out of transit); lo-metal 20 tT_hi Total observ. cycle (in/out of transit); hi-metal 21 tT_avg Total observ. cycle for'average'atm detection

JWST Instrument: NIRSpec G395M Wavelength Range: 2.87 microns - 5.18 microns Jmag Limit: 8.0 Noise Floor: 25 ppm Eq. of State (lo_metal atm): eos_5Xso!ar_cond, with no clouds Eq. of State (hi_metal atm): eos_1000Xsolar_cond, with cloud deck at 100.0 mbar Detection Threshold (dBIC): 10 o> 0 5 Excerpt of Baseline Run (no more than top 25 targets for Cat 1) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953 |------survey data Rank Targ RAdeg DEdeg Rp Per S R* Teff 1 98 27.440 -1.258 1.64 5.61 4.1 0.23 3325 2 922 154.000 -28.260 1.40 4.39 1.2 0.12 2729 3 139 38.490 46.600 1.60 8.11 2.4 0.21 3170 4 105 28.700 -57.310 1.68 7.58 1.1 0.14 3130 5 1247 243.700 47.170 1.41 4.24 3.6 0.16 3224 6 1919 340.500 38.730 1.40 9.41 0.5 0.12 2838 7 1878 329.800 -19.960 1.08 9.96 0.8 0.14 3128 8 45 13.820 -20.210 1.05 15.96 0.6 0.16 3228 9 992 173.600 69.620 1.53 23.10 0.6 0.22 3302 10 1452 264.400 45.780 1.29 26.30 0.5 0.21 3284 11 1292 248.800 -29.470 1.52 14.27 1.4 0.25 3351 12 1026 185.200 26.940 1.59 20.09 0.7 0.21 3286 13 309 68.290 -42.360 1.64 5.63 3.2 0.21 3245 14 150 41.260 -1.671 1.30 8.96 2.6 0.25 3353 15 1065 197.800 81.370 1.03 6.78 2.2 0.18 3235 16 486 86.700 -19.840 1.59 6.88 2.2 0.18 3236 17 1448 264.200 69.090 1.64 6.19 3.5 0.23 3293 18 1576 279.100 14.390 1.37 7.57 3.9 0.28 3396 19 1705 290.200 65.350 1.07 13.95 1.0 0.20 3260

Cat 1 stats (all targets, not just top 25): min: 0.77 4.24 0.1 0.12 2729 med 1.49 10.14 1.6 0.24 3334 mean: 1.43 16.52 1.9 0.25 3323 max: 1.70 152.40 4.2 0.43 3628 JET computation ------1 Jmag a Teq gs Mmed tdur ntlOyr ntjo nt_hi tT_lo tT_hi tT_avg 8.6 8.0 397 12.1 3.33 1.3 173 1 3 5.8 17.4 11.6 11.3 5.1 290 12.7 2.53 0.8 300 1 4 4.7 18.9 11.8 8.1 8.8 348 12.2 3.19 1.6 145 1 3 6.5 19.5 13.0 11.3 8.5 287 12.0 3.48 1.1 256 1 4 5.3 21.1 13.2 11.3 5.7 383 12.7 2.57 1.0 458 1 7 5.1 35.5 20.3 12.2 8.7 235 12.7 2.54 1.1 173 1 7 5.3 37.3 21.3 11.4 10.2 262 10,7 1.28 1.1 97 1 8 5.4 43.4 24.4 10.9 14.0 248 10.3 1.15 1.5 70 1 7 6.3 44.2 25.2 10.2 20.2 244 12.4 2.95 2.1 84 1 6 7.6 45.3 26.4 10.3 21.5 230 13.0 2.22 2.1 75 1 9 7.6 68.4 38.0 9.1 15.3 300 12.4 2.92 1.8 68 1 10 7.1 70,8 38.9 11.1 18.1 253 12.2 3.14 1.9 57 1 11 7.3 80.3 43.8 11.9 8.1 372 12.1 3.32 1.2 345 1 17 5.6 95.1 50.3 10.5 11.4 354 13.0 2.24 1.6 112 1 18 6.5 116.7 61.6 11.7 8.1 338 10.0 1.08 1.2 292 1 22 5.5 122.0 63.8 12.3 8.3 340 12.2 3.16 1.3 242 1 25 5.7 142.3 74.0 12.3 8.4 381 12.1 3.31 1.4 560 1 26 5.9 154.1 80.0 10.0 10.7 390 12.8 2.44 1.6 179 1 47 6.5 304.9 155.7 12.3 13.9 279 10.7 1.26 1.6 189 2 49 13.1 322.1 167.6

6.9 5.1 147 6.3 0.39 0.8 15 11.0 13.1 314 12.3 2,83 1.6 163 10.7 15.9 316 12.1 2.60 1.8 182 13.7 80.9 400 13.1 3.52 4.5 560

• i—* -a Excerpt of Baseline Run (no more than top 25 targets for Cat 2) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953

Cat Rank Targ RAdeg DEdeg Rp Per S R* Teff 2 1 1622 283.200 43.650 0.71 0.77 38.1 0.17 3231 2 2 1856 320.200 12.770 1.55 0.55 32.2 0.13 3055 2 3 17 6.166 32.450 1.11 0.79 53.4 0.22 3304 2 4 857 141.200 -81.190 1.50 2.27 7.4 0.16 3141 2 5 805 126.800 39.300 1.67 1.82 14.6 0.13 37S8 2 6 125S 244.500 28.530 1.22 0.59 26.6 0.14 2871 2 7 882 145.200 -42.710 1.0S 1.61 1S.8 0.19 3242 2 8 978 168.400 70.880 1.21 1.32 20.6 0.19 3141 2 9 893 147.900 -67.480 1.07 2.56 7.2 0.17 3155 2 10 1533 273.600 54.150 1.30 0.56 61.4 0.18 3231 2 11 1007 178.700 33.180 1.27 0.97 56.0 0.27 3375 2 12 300 67.220 -74.920 1.01 1.72 45.3 0.37 3528 2 13 1013 180.300 55.230 1.59 0.88 19.4 0.14 3006 2 14 1241 243.100 -6.494 1.25 0.84 37.6 0.19 3239 2 15 63 19.110 -14.930 1.34 1.86 19.5 0.24 3327 2 16 263 62,780 -24.950 1.20 0.91 64.2 0.28 3377 2 17 1233 241.800 25.820 1.62 1.75 38.3 0.35 3475 2 18 206 54.550 -77.440 1.40 0.77 49.0 0.21 3266 2 19 678 106.600 15.210 1.59 2.80 16,5 0.30 3427 2 20 1003 177.400 43.520 1.57 1.27 47.8 0.31 3427 2 21 262 62.590 -15.850 1.18 2.55 17.3 0.25 3199 2 22 871 144.300 -22.750 1.19 2.35 15.3 0.25 3345 2 23 972 166.500 -3.504 1.35 2.52 12.9 0.24 3330 2 24 331 71.110 62.310 1.54 2.35 35.1 0.40 3575 2 25 613 98.960 -15.550 1.61 1.10 56.1 0.30 3416

Cat 2 stats (all targets, not just top 25): min: 0.71 0.55 4.5 0.13 2871 med 1.40 2.55 21.0 0.32 3436 mean: 1.40 4.44 24.4 0.35 3574 max: 1.70 38.31 64.2 0.97 6124 | ------je j computation 1 Jmag a Teq gs Mmed tdur ntlOyr n tjo nt_hi tTJo tT_hi tT_avg 11.4 1.9 692 5.5 0.28 0.6 2531 1 1 4.1 4.1 4.1 13.2 1.3 664 12.3 3.03 0.4 2077 1 3 3.8 11.4 7.6 11.1 2.2 753 11.3 1.42 0.7 1446 1 3 4.3 12.9 8.6 11.3 3.8 459 12.4 2.86 0.8 886 1 4 4.6 18.6 11.6 12.5 3.1 545 12.1 3.41 0.7 S71 1 S 4.3 21.5 12.9 12.0 1.4 633 13.1 2.00 0.5 3223 1 6 3.9 23.3 13.6 11.1 3.2 555 10.4 1.18 0.8 1187 1 5 4.5 22.7 13.6 11.1 2.6 593 12.9 1.93 0.8 1467 1 5 4.6 22.8 13.7 11.0 4.1 456 10.6 1.23 0.9 773 1 5 4.8 23.9 14.4 12.9 1.6 780 13.0 2.24 0.5 3935 2 6 8.0 24.1 16.1 11.1 2.7 762 13.1 2.16 0.8 1217 2 5 9.2 23.0 16.1 9.3 4.4 722 9.7 1.02 1.1 1355 1 5 5.4 27.0 16.2 13.0 1.9 584 12.2 3.16 0.6 2176 1 7 4.1 28.5 16.3 12.3 2.1 690 13.1 2.10 0.6 1197 1 7 4.2 29.5 16.9 10.4 3.9 585 12.9 2.35 0.9 577 1 6 4.9 29.6 17.3 11.2 2.6 788 12.7 1.86 0.8 2105 2 6 9.2 27.6 18.4 10.7 4.4 693 12.2 3.27 1.1 1087 1 6 5.4 32.2 18.8 12.3 2.0 737 12.7 2.55 0.6 2743 1 8 4.3 34.1 19.2 10.0 5.7 561 12.2 3.15 1.2 347 1 6 5.6 33.4 19.5 11.1 3.4 732 12.3 3.10 0.9 1093 1 7 4.9 34.5 19.7 10.5 3.9 568 12.4 1.75 1.3 516 1 6 5.8 34.6 20.2 10.4 4.6 551 12.6 1.83 1.0 545 1 7 5.1 36.0 20.6 10.0 4.8 528 12.9 2.38 1.0 385 1 7 5.2 36.1 20.6 10.1 5.6 678 12.4 2.97 1.3 620 1 7 5.9 41.2 23.5 12.0 3.1 762 12.2 3.23 0.9 1296 2 8 9.6 38.5 24.1

3.9 1.3 406 5.5 0.28 0.4 53 11.1 5.4 596 12.4 2.54 1.2 689 11.0 7.7 591 12.2 2.51 1.5 862 13.8 46.9 788 13.2 3.53 5.5 3935 CT> 00 Excerpt of Baseline Run (no more than top 25 targets for Cat 3) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-1559S3 |...... survey data Cat Rank Targ RAdeg DEdeg Rp Per S R* Teff 3 1 1745 295.100 44.250 1.09 0.51 110.2 0.24 3337 3 2 1421 261.600 84.210 1.40 0.63 92.1 0.27 3359 3 3 1057 195.100 -16.290 1.04 0.70 108.8 0.31 3425 3 4 281 64.840 •74.510 0.70 0.85 126.5 0.39 3557 3 5 13 4.788 78.630 1.56 0.62 71.2 0.22 3283 3 6 378 75.200 -40.890 1.04 0.59 184.1 0.37 3511 3 7 146 40.370 -43.350 0.89 0.76 113.7 0.34 3476 3 8 419 79.030 -23.700 1.09 0.64 174.9 0.38 3532 3 9 1293 249.000 30.390 1.69 0.60 490.3 0.54 3956 3 10 140 38.920 66.660 1.07 1.23 79.2 0.39 3563 3 11 1855 320.000 20.770 1.35 1.12 108,0 0.42 3640 3 12 917 153.200 -1.087 1.65 1,35 89.7 0.43 3670 3 13 1780 302.300 16.060 1.26 0.68 149.4 0.36 3500 3 14 858 141.500 4.070 1.48 0.58 243.1 0.41 3588 3 15 1926 344.400 70.250 1.38 0.80 125.6 0.37 3524 3 16 675 106.000 -33.520 1.47 0.56 75.S 0.21 3266 3 17 565 94.600 -54.760 1.50 0.57 72.7 0.21 3264 3 18 379 75.490 -45.830 1.68 0.90 125.3 0.40 3571 3 19 1043 189.600 32.430 1.64 0.58 553.5 0.56 3995 3 20 1340 253.800 7.091 1.44 1.07 156.4 0.48 3761 3 21 90 26.200 -68.700 1.34 1.35 115.7 0.48 3768 3 22 1160 225.400 41.130 1.26 0.53 293.4 0.43 3632 3 23 289 66.330 -50.740 1.49 0.71 248.0 0.47 3735 3 24 1021 183,700 14.560 1.27 0.55 232.1 0.40 3563 3 25 884 145.400 5.449 1.32 0.51 319.4 0.43 3643

Cat 3 stats (all targets, not just top 25): min: 0.70 0.50 70,7 0.19 2559 med 1.44 1.09 167.6 0,54 3856 mean: 1.38 2.38 438.0 0.64 4469 max: 1.69 16.13 7049.0 1.59 7145 ------1 JEl computation ------...... 1 Jmag a Teq gs Mmed tdur ntlOyr n tjo nt_hi tTJo tT_hi tT_avg 10.3 1.7 902 10.9 1.31 0,6 3781 1 2 4.2 8.3 6.3 10.9 2.1 863 12.7 2.55 0.7 3226 1 2 4.3 8.7 6.5 10.2 2.3 900 10.1 1.10 0,8 1385 1 2 4,6 9.1 6.8 10.1 2.8 934 5.4 0.27 0,9 2697 1 2 4.9 9.8 7.3 12,1 1.8 809 12.3 3.06 0.6 3127 1 3 4.2 12,6 8.4 10.1 2.1 1026 10.1 1.12 0.8 3290 1 3 4.6 13.9 9.2 10.3 2.5 910 7.9 0.64 0.8 2550 1 3 4.7 14,0 9.4 9.6 2.3 1013 10.9 1.33 0.8 2971 1 3 4.7 14.1 9.4 9.7 2.5 1311 12.0 3.51 1.0 3201 1 3 5.2 15,5 10.3 9.0 3.6 831 10.6 1.24 1.0 1554 1 3 5.2 15.6 10.4 8.1 3.5 898 12.9 2.38 1.1 1148 1 3 5.3 15.8 10.5 9.9 4.0 857 12.1 3.36 1.2 720 1 3 5.5 16.5 11.0 10.3 2.3 974 13.1 2.14 0,8 1900 1 4 4.7 18.8 11.7 10.3 2.2 1100 12.5 2.79 0.9 1678 1 4 4.8 19.1 11.9 10.1 2.6 932 12.8 2.48 0.9 2424 1 4 4.8 19.4 12.1 12.4 1.6 821 12.5 2.75 0,6 3484 2 4 8.2 16.5 12.3 12.5 1.7 813 12.4 2.86 0.6 3954 2 4 8,2 16.5 12.4 10.7 2.9 932 12.0 3.46 1.0 2202 1 4 5.0 20.1 12.6 9.7 2.4 1351 12.1 3.31 1,0 2145 1 4 5.2 20.8 13.0 9.4 3.5 985 12.6 2.66 1.2 1099 1 4 5.5 21.9 13.7 8.8 4.1 914 12.9 2.35 1.2 1438 1 4 5.7 22.7 14.2 10.3 2.1 1153 13.1 2.12 0.8 3637 1 5 4.7 23.7 14.2 10.3 2.7 1105 12.5 2.82 1.0 2822 1 5 5.1 25.3 15.2 10.8 2.1 1087 13.1 2.16 0.8 1815 1 6 4.7 28.0 16.3 10.6 2.1 1177 12.9 2.30 0.8 1915 1 6 4.7 28.3 16.5

5.0 0.9 808 5.4 0.27 0.5 150 10.2 3.8 1002 12.5 2.66 1.4 1385 10.0 6.1 1123 12.0 2.45 1.7 1746 13.4 28.6 2552 13.2 3.51 6.3 4939 i—* co Excerpt of Baseline Run (no more than top 25 targets for Cat 4) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953 |------survey data Cat Rank Targ RAdeg DEdeg Rp Per S R* Teff 4 1 8 1.789 -9.144 2.81 5.62 2.6 0.17 3228 4 2 921 153.900 -28.120 2.68 9.98 0.4 0.12 2729 4 3 1810 309.400 -27.380 2.83 3.84 3.5 0.16 2844 4 4 1444 263.900 48.600 2.89 6.89 2.8 0,21 3284 4 5 1804 307.900 -27.710 1.94 17.79 0.4 0.16 2844 4 6 1864 323.700 -5.102 2.56 4.82 0.7 0.11 2529 4 7 783 121.200 -51.200 2.29 6.20 2.4 0.19 3225 4 8 1005 178.200 67.420 2.12 6.66 3.1 0.22 3302 4 9 1296 249.500 41.100 1.92 11.56 1.0 0.17 3236 4 10 822 132.700 -15.450 2.93 9.05 2.1 0.22 3300 4 11 991 173.500 -19.190 1.74 18.71 0.4 0.16 3027 4 12 113 31.460 65.770 3.02 4.62 3.4 0.18 3006 4 13 806 127.100 -4.639 3.86 18.01 1.1 0.26 3364 4 14 48 14.810 -14.490 1.99 12.55 0.6 0.16 3027 4 15 1591 280.100 12.060 2.69 9.95 1.3 0.17 3231 4 16 135 37.480 75.540 2.42 18.46 0.2 0.12 2884 4 17 512 89.250 -33.310 2.46 20.63 0.3 0.16 2564 4 18 68 19.990 21.050 3.49 7.23 3.1 0.24 3309 4 19 1522 272.300 14.380 2.69 13.48 0.9 0.18 3233 4 20 127 34.090 36.220 2.08 9.09 2.7 0.26 3368 4 21 700 109.200 82.550 2.32 8.12 4.0 0.30 3424 4 22 1129 215.900 -32.940 3.45 11.97 1.5 0.23 3305 4 23 955 160.100 -26.670 2.46 9.19 3.4 0.30 3420 4 24 216 55.700 -57.650 3.35 30.34 0.2 0.15 3132 4 25 500 87.820 83.830 2.79 41.16 0.5 0.30 3424

Cat 4 stats (all targets, not just top 25): min: 1.71 3.84 0.1 0.10 2529 med 2.40 14.64 1,9 0.29 3385 mean: 2.47 19.98 2.0 0.30 3418 max: 3.98 189.40 4.2 0.82 5309 ...... ■ 1 JUI bUHI^ULailUII ------i Jmag a Teq gs Mmed tdur ntlOyr n tjo nt_hi tT_lo tT_hi tT_avg 11.1 7.0 352 10.3 8.28 1.2 173 1 1 5.5 5.5 5.5 11.3 8.9 220 10.4 7.65 1.2 132 1 1 5.6 5.6 5.6 9.8 4.6 380 10.3 8.38 1.2 253 1 1 5.6 5.6 5.6 10.3 8.8 359 10.2 8.71 1.4 297 1 1 6.1 6.1 6.1 9.8 12.7 228 11.5 4.41 1.9 55 1 1 7.3 7.3 7.3 12.5 5.3 255 10.6 7.06 0.9 201 1 2 4.9 9.8 7.4 10.1 8.3 347 11.0 5.84 1.2 319 1 2 5.6 11.2 8.4 10.2 8.8 370 11.2 5.13 1.4 292 1 2 6.0 12.0 9.0 10.0 11.4 278 11.5 4.35 1.4 168 1 2 6.1 12.3 9.2 10.6 10.8 334 10.2 8.89 1.6 134 1 2 6.5 12.9 9.7 10.5 15.3 221 11.9 3.66 1.7 56 1 2 6.6 13.3 10.0 12.5 5.8 379 10.1 9.37 1.3 413 1 3 5.8 17.3 11.5 11.1 18.6 283 9.4 14.23 2.2 60 1 2 7.9 15.8 11.9 11.1 11.6 249 11.4 4.63 1.5 83 1 3 6.2 18.5 12.3 11.7 10.4 296 10.4 7.73 1.5 129 1 3 6.2 18.5 12.3 12.8 13.7 192 10.8 6.45 1.5 105 1 3 6.2 18.7 12.4 12.3 11.7 209 10.7 6.63 2.4 94 1 2 8.4 16.7 12.5 12.0 9.5 369 9.6 12.00 1.6 134 1 3 6.4 19.2 12.8 11.8 12.8 268 10.4 7.70 1.6 103 1 3 6.5 19.6 13.0 9,8 11.7 357 11.3 4.99 1.7 118 1 3 6.7 20.0 13.3 8.9 11.4 394 10.9 6.00 1.8 239 1 3 6.9 20.6 13.7 11.4 13.2 308 9.7 11.74 1.8 87 1 3 7.0 20.9 13.9 9.8 12.4 378 10.7 6.61 1.8 132 1 3 7.1 21.2 14.1 13.4 21.9 184 9.8 11.19 1.9 67 1 3 7.3 21.8 14.5 8.9 33.6 229 10.3 8.21 3.1 47 1 2 9.9 19.8 14.8

6.3 4.6 151 9.3 3.57 0.9 12 11.9 16.4 326 10.8 6.35 2.1 117 11.8 19.8 319 10.8 6.84 2.3 144 14.9 125.9 399 12.0 14.99 8.9 512 —a o Excerpt of Baseline Run (no more than top 25 targets for Cat 5) from: Pdxo_Output.txt (raw unranked) for ranking: JET_5mry_20180924-155953 I Cat Rank Targ RAdeg DEdeg Rp Per 5 R* Teff 5 1 182 49.930 2.508 2.27 0.57 31.9 0.14 2871 5 2 1930 345.200 19.750 3.46 1.81 5.7 0.13 2877 5 3 934 156.300 62.220 3.64 2.16 11.4 0.19 3253 5 4 1260 245.200 37.520 3.91 1.91 19.9 0.25 3342 5 5 901 149.200 20.740 3.80 2.81 5.4 0.16 2793 5 6 492 87.130 5.560 3.70 2.03 20.6 0.23 3141 5 7 1130 216.600 13.520 2.01 0.66 30.5 0.15 2999 5 8 60 18.530 -39.800 3.19 2.46 34.1 0.41 3587 5 9 297 66.860 -28.850 3.33 2.18 57.9 0.47 3743 5 10 183 50.290 10.810 1.94 0.82 66.2 0.26 3363 5 11 1050 192.500 -69.160 3.91 1.94 8.9 0.15 3206 5 12 33 12.010 74.530 3.85 1.85 11.8 0.17 3225 5 13 1644 285.300 42.270 2.17 2.50 7.9 0.17 3231 5 14 1948 351.100 -61.130 3.11 3.09 7.1 0.20 3252 5 15 591 96.820 -29.610 2.96 2.31 16.4 0.26 3356 5 16 1752 296.800 63.750 2.31 1.77 48.9 0.39 3571 5 17 1938 349.100 -26.230 3.35 1.94 36.6 0.36 3495 5 18 326 70.000 52.820 3.40 3.93 7.1 0.24 3321 5 19 70 21.170 -38.090 3.52 2.85 17.5 0.32 3432 5 20 443 81.020 8.284 2.97 1.80 60.4 0.44 3641 5 21 835 135.900 64.080 2.69 3.10 17.1 0.33 3467 5 22 1039 187.900 30.080 1.74 0.90 49.1 0.24 3316 5 23 590 96.750 68.330 2.31 2.54 33.2 0.41 3604 5 24 863 142.300 35.420 3.41 2.27 41.0 0.42 3619 5 25 388 76.590 -13.310 2.00 1.90 9.0 0.16 3105

Cat 5 stats (all targets, not just top 25): min: 1.70 0.57 4.3 0.13 2793 med 2.57 7.32 15.9 0.48 3755 mean: 2.64 12.16 22.3 0.55 4175 max: 4.00 224.70 67.6 1.95 8147 ------1 JUI V-UI 1 ipu Ld UUI 1 ------1 Jmag a Teq gs Mmed tdur ntlOyr ntjo nt_hi tT Jo tT_hi tT_avg 12.8 1.3 662 11.0 5.76 0.5 1778 1 1 4.0 4.0 4.0 11.6 3.0 430 9.7 11.79 0.8 613 1 1 4.6 4.6 4.6 11.2 3.9 512 9.5 12.85 1.0 883 1 1 5.0 5.0 5.0 10.7 4.0 588 9.3 14.55 1.0 1015 1 1 5.2 5.2 5.2 12.3 3.6 425 9.4 13.83 1.2 346 1 1 5.6 5.6 5.6 12.1 3.3 594 9.5 13.22 1.3 513 1 1 5.7 5.7 5.7 12.6 1.6 655 11.4 4.68 0.5 1747 1 2 4.0 8.0 6.0 10.0 5.8 673 9.9 10.30 1.4 677 1 1 6.1 6.1 6.1 10.3 5.6 768 9.8 11.08 1.5 874 1 1 6.3 6.3 6.3 11.2 2.4 795 11.5 4.40 0.7 1179 1 2 4.5 9.0 6.8 13.5 3.3 481 9.3 14.52 0.8 999 1 2 4.7 9.4 7.1 12.9 3.4 516 9.4 14.18 0.9 1048 1 2 4.8 9.6 7.2 11.4 4.1 467 11.1 5.34 0.9 778 1 2 4.8 9.7 7.3 11.8 5.0 455 10.0 9.85 1.1 616 1 2 5.2 10.5 7.9 11.3 4.7 561 10.1 9.06 1.1 826 1 2 5.3 10.6 8.0 9.0 4.6 737 10.9 5.95 1.2 1294 1 2 5.6 11.2 8.4 11.0 4.7 685 9.8 11.21 1.2 535 1 2 5.7 11.3 8.5 11.8 6.4 454 9.7 11.47 1.3 300 1 2 5.7 11.5 8.6 10.6 5.8 569 9.6 12.18 1.3 573 1 2 5.8 11.7 8.8 11.0 4.8 777 10.1 9.12 1.3 558 1 2 5,9 11.7 8.8 9.3 6.3 566 10.4 7.70 1.4 604 1 2 5.9 11.9 8.9 11.4 2.4 737 11.9 3.68 0.7 1350 1 3 4.5 13.4 8.9 9.4 5.9 669 10.9 5.96 1.4 750 1 2 6.0 12.1 9.1 10.9 5.6 705 9.7 11.53 1.4 459 1 2 6.1 12.1 9.1 11.9 3.4 483 11.4 4.64 0.8 692 1 3 4.6 13.8 9.2

6.1 1.3 400 9.3 3.53 0.5 13 11.0 12.6 556 10.6 7.15 2.2 228 10.9 17.5 571 10.6 7.66 2.8 338 15.2 164.1 799 12.0 15.08 20.0 2000 Excerpt of Baseline Run (no more than top 25 targets for Cat 6) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953 i Cat Rank Targ RAdeg DEdeg Rp Per S R* Teff 6 1 1956 353.300 -88.260 2.38 0.60 95.0 0.25 3336 6 2 993 173.600 -S.016 1.91 0.52 98.5 0.23 3300 6 3 1903 335.300 -3.281 2.03 0.52 150.2 0.30 3407 6 4 945 158.600 56.890 3.87 3.22 307.7 0.82 5383 6 5 1682 288.100 -75.860 3.98 4.27 230.1 0.86 5470 6 6 231 58,920 -8.808 2.88 1.87 99.2 0.53 3918 6 7 866 143.400 40.880 3.58 2.13 72.9 0.51 3824 6 8 1516 271.800 62.460 1.77 0.67 307.8 0.49 3804 6 9 810 128.600 -27.170 1.75 0.68 427.8 0.54 3981 6 10 207 54.790 -30,060 1.79 0.64 83.7 0.25 3330 6 11 1514 271.600 50,380 3.01 2.01 382.0 0.78 4966 6 12 1518 272.000 28.340 3.52 2.70 200.2 0.70 4822 6 13 471 84.600 1.382 3.89 2.90 211.6 0.73 4977 6 14 1776 300.900 50.310 1.89 0.77 143.0 0.39 3534 6 15 874 144.800 -55.940 2.73 3.41 286.5 0.77 5521 6 16 900 148.900 38.440 3.89 4.44 83.7 0.66 4667 6 17 1918 340.100 53.430 3.03 0.92 968.0 0.72 4921 6 18 932 156.200 1.458 3.65 4.51 87.9 0.68 4723 6 19 144 39.890 -22.920 3.36 2.85 407.1 0.87 5458 6 20 983 169.600 -17.260 1.81 0.93 107.3 0.38 3530 6 21 706 109.700 -35.210 3.53 1.20 430.5 0.66 4537 6 22 1725 292.600 -1.429 1.91 2.09 75.2 0.51 3822 6 23 1110 211.200 16.920 2.84 2.18 71.2 0.51 3845 6 24 1389 257.900 5.880 3.66 5.24 85.3 0.71 4853 6 25 1167 226.800 80.370 3.44 4.91 159.9 0.82 5297

Cat 6 stats (all targets, not just top 25): min: 1.70 O.SO 68.1 0.23 3300 med 2.58 5.71 281.6 1.04 5916 mean: 2.65 7.22 940,6 1.12 5942 max: 4.00 51.43 55380,0 4.09 11910 JET computation ------1 Jmag a Teq gs Mmed tdur ntlOyr n tjo nt_hi tT_lo tT_hi tT_avg 11.6 1.9 870 10.8 6.24 0.7 3258 1 1 4.3 4.3 4.3 11.9 1.6 877 11.6 4.30 0.6 1885 1 2 4.2 8.3 6.3 11.7 1.8 975 11.4 4.78 0.7 1871 1 2 4.4 8.8 6.6 8.3 8.8 1167 9.3 14.30 2.4 539 1 1 8.4 8.4 8.4 8.3 10.9 1085 9.3 14.98 2.7 447 1 1 9.0 9.0 9.0 10.2 5.3 879 10.2 8.67 1.5 612 1 2 6.3 12.6 9.4 10.4 5.6 814 9.6 12.54 1.6 521 1 2 6.4 12.9 9.6 9.8 2.6 1167 11.8 3.79 1.0 5152 1 3 5.1 15.3 10.2 9.4 2.7 1267 11.9 3.73 1.1 2616 1 3 5.3 15.8 10.6 12.2 1.9 842 11.8 3.85 0.7 2965 1 4 4.3 17.4 10.8 9.3 6.3 1231 10.1 9.34 2.0 1034 1 2 7.3 14.7 11.0 10.1 7.4 1048 9.6 12.15 2.0 706 1 2 7.5 15.0 11.3 10.0 8.0 1062 9.3 14.41 2.1 370 1 2 7.7 15.4 11.5 11.4 2.6 963 11.6 4.23 0.9 2584 1 4 4.9 19.6 12.2 8.6 9.0 1146 10.4 7.92 2.3 570 1 2 8,2 16.3 12.2 9.4 10.1 842 9.3 14.41 2.3 250 1 2 8.2 16.4 12.3 10.3 3.6 1554 10.1 9.41 1.5 2110 1 3 6.2 18.5 12.3 10.1 10.4 853 9.5 12.92 2.4 215 1 2 8.3 16.5 12.4 9.5 8.3 1251 9.8 11.25 2.4 463 1 2 8.3 16.5 12.4 11.1 2.9 896 11.8 3.94 1.0 1121 1 4 5.0 20.0 12.5 11.2 4.2 1269 9.6 12.19 1.5 1620 1 3 6.3 18.8 12.5 9.3 5.5 820 11.6 4.31 1.5 497 1 3 6.3 18.9 12.6 10.7 5.7 809 10.3 8.44 1.5 525 1 3 6.4 19.1 12.8 8.6 11.7 847 9.5 13.02 2.6 218 1 2 8.7 17.4 13.1 8.6 11.7 990 9.7 11.69 2.7 417 1 2 9.1 18.2 13.7

3.4 1.6 800 9.3 3.54 0.6 47 9.4 13.6 1141 10.6 7.16 3.3 345 9.3 15.3 1228 10.6 7.77 3.7 543 13.7 71.2 4273 12.0 15.10 12.5 5581 -4 to Excerpt of Baseline Run (no more than top 25 targets for Cat 7) from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953 |...... survey data Rank Targ RAdeg DEdeg Rp Per S R* Teff 1 79 22.450 -74.160 7.51 2.07 129.1 0.59 4147 2 860 142.100 -6.040 7.70 1.66 868.7 0.86 5470 3 104 28.140 23.920 5.07 3.85 52.8 0.58 4122 4 905 150.400 -35.570 6.61 2.82 264.5 0.74 5152 5 1898 334.800 40.880 6.77 4.63 42.2 0.59 4134 6 352 73.090 -42.620 8.93 3.56 116.1 0.67 4673 7 1784 302.700 -35.620 6.88 4.46 101.4 0.69 4835 8 168 46.520 10.200 9.26 6.53 26.2 0.58 4144 9 1213 238.500 69.050 8.34 2.69 710.6 1.00 5834 10 608 98.110 -47.680 9.71 4.15 153.2 0.79 5000 11 1073 201.100 62.440 6.34 4.07 213.4 0.86 5260 12 549 93.360 -58.620 9.59 6.00 59.0 0.67 4715 13 20 7.592 -79.920 7.72 3.92 320.7 0.91 5623 14 816 129.800 86.460 4.84 4.25 251.7 0.91 5433 15 1842 316.900 18.050 5.93 7.39 53.5 0.70 4879 16 1506 270.100 15.770 5.13 5.06 359.5 1.04 5984 17 1224 240.400 41.050 5.95 10.00 65.3 0.80 5433 18 1126 215.800 67.440 6.55 8.55 109.0 0.86 5675 19 1735 293.500 45.990 6.28 4.35 548.2 1.20 5957 20 790 122.600 -28.930 7.37 7.69 127.2 0.91 5546 21 36 12.320 75.640 6.92 5.25 513.2 1.20 6295 22 447 81.860 57.110 6.21 11.89 70.9 0.84 5728 23 655 104.400 -58.200 7.85 5.05 632.1 1.32 6295 24 742 114.700 -61.530 9.81 5.15 715.8 1.29 6592 25 1902 335.200 70.380 6.04 12.36 85.4 0.91 5888

Cat 7 stats (all targets, not just top 25): min: 4.01 0.82 0.4 0.56 4044 med 7.51 10.30 109.0 0.97 5728 mean: 9.05 27.46 768.8 1.16 5793 max: 21.95 205,20 39060.0 3.01 10590 1 J 1 OUI 1 LO LIUI 1 i Jmag a Teq gs Mmed tdur ntlOyr n tjo nt_hi tTJo tT_hi tT_avg 11.1 5.8 939 7.7 43.99 1.8 955 1 1 7.0 7.0 7.0 8.4 5.6 1512 7.6 45.94 2.1 629 1 1 7.6 7.6 7.6 10.7 8.8 751 8.6 22.58 2.1 252 1 1 7.7 7.7 7.7 9.7 7.8 1123 7.9 35.45 2.2 626 1 1 7.9 7.9 7.9 10.5 9.9 710 7.9 36.87 2.3 412 1 1 8.1 8.1 8,1 10.8 8.8 914 7.3 59.02 2.3 546 1 1 8.2 8.2 8.2 10.0 10.3 884 7.9 37.91 2.5 226 1 1 8.5 8.5 8.5 10.3 12.5 630 7.2 62.77 2.6 149 1 1 8.9 8.9 8.9 8.7 8.3 1438 7.4 52.55 2.7 839 1 1 9.0 9.0 9.0 10.9 10.2 980 7.1 68.04 2.7 485 1 1 9.1 9.1 9.1 9.1 10.5 1065 8.1 33.04 2.7 477 1 1 9.1 9.1 9.1 10.3 12.6 772 7.1 66.64 2.8 451 1 1 9.2 9.2 9.2 9.8 10.4 1179 7.6 46.09 2.8 495 1 1 9.4 9.4 9.4 8.6 10.9 1109 8.7 20.86 2.8 456 1 1 9.4 9.4 9.4 9.2 14.6 753 8.2 29.46 2.9 169 1 1 9.5 9.5 9.5 8.9 12.7 1213 8.6 23.03 3.3 281 1 1 10.5 10.5 10.5 9.6 18.7 792 8.2 29.61 3.5 194 1 1 10.8 10.8 10.8 10.3 17.2 900 8.0 34.93 3.5 235 1 1 10.9 10.9 10.9 9.3 11.7 1348 8.1 32.46 3.6 446 1 1 11.1 11.1 11.1 8.7 16.0 935 7.7 42.67 3.6 248 1 1 11.1 11.1 11.1 9.2 13.6 1326 7.8 38.31 3.7 370 1 1 11.5 11.5 11.5 9.4 21.2 808 8.1 31.87 3.9 105 1 1 11.7 11.7 11.7 9.7 13.4 1397 7.5 47.47 4.0 467 1 1 12.1 12.1 12.1 10.2 13.5 1441 7.1 69.26 4.0 438 1 1 12.1 12.1 12.1 9.5 22.0 847 8.2 30.43 4.1 157 1 1 12.4 12.4 12.4

5.0 3.7 214 5.5 15.20 1.7 12 9.5 19,7 900 7.7 43.99 4.3 186 9.3 32.1 1007 7.6 69.72 5.5 288 13.0 159.8 3916 9.2 271.94 20.8 1633 CO Excerpt of Baseline Run from: Pdxo_Output.txt (raw unranked) for ranking: JET_Smry_20180924-155953 | ------survey data Full survey stats (all targets, not just top 25): Rp Per S R* Teff min: 1 0.70 0.50 0.1 0.10 2529 med 2.41 7.20 21.8 0.50 3817 mean: 2.91 12.77 285.1 0.65 4472 max: 1984 21.95 224.70 55380.0 4.09 11910 | ------JET computation

Jmag a Teq gs Mmed tdur ntlOyr 3.4 0.9 147 5.4 0.27 0.4 12 10.7 12.9 602 10.7 6.40 2.4 238 10.6 17.2 719 10.6 11.49 2.9 456 15.2 164.1 4273 13.2 271.94 20.8 5581

>4^ 175

References

Ballard, S.: 2018, arXiv:1801.04949

Barclay, T., Pepper, J., and Quintana, E. V,: 2018, arXiv: 1804-05050

Batalha, N. E. and Line, M. R.: 2017, The Astronomical Journal 153(4), 151

Batalha, N. E., Mandell, A., Pontoppidan, K., Stevenson, K. B., Lewis, N. K., Kalirai, J., Earl, N., Greene, T., Albert, L., and Nielsen, L. D.: 2017, Publications of the Astronomical Society of the Pacific 129(976), 064501

Beichman, C., Benneke, B. Knutson, H., Smith, R., Lagage, P.-O., Dressing, C., Latham, D. Lunine, J., Birkmann, S., Ferruit, P., Giardino, G., Kempton, E., Carey, S., Krick, J , Deroo, P. D., Mandell, A., Ressler, M. E., Shporer, A., Swain, M., Vasisht, G., Ricker, G., Bouwman, J., Crossfield, I., Greene, T., Howell, S., Christiansen, J., Ciardi, D., Clampin, M., Greenhouse, M., Sozzetti, A., Goud- frooij, P., Hines, D., Keyes, T., Lee, J., McCullough, P., Robberto, M., Stansberry, J., Valenti, J., Rieke, M., Rieke, G., Fortney, J., Bean, J., Kreidberg, L., Ehren- reich, D., Deming, D., Albert, L., Doyon, R., and Sing, D : 2014, Publications of the Astronomical Society of the Pacific 126(946), 1134

Bouma, L. G., Winn, J. N., Kosiarek, J,, and McCullough, P. R.: 2017, arX%v:1705.08891

Broeg, C., Fortier, A., Ehrenreich, D., Alibert, Y., Baumjohann, W., Benz, W., Deleuil, M., Gillon, M., Ivanov, A., Liseau, R., Meyer, M., Oloffson, G., Pagano, I., Piotto, G., Pollacco, D., Queloz, D., Ragazzoni, R., Renotte, E,, Steller, M., Thomas, N., and the CHEOPS team: 2013, EPJ Web of Conferences. Vol. ^7. EDP Sciences 176

Burdanov, A., Delrez, L., Gillon, M., and Jehin, E.: 2018, Handbook of Exoplanets

Carnall, A. C.: 2017, arXiv: 1705.05165

Charbonneau, D., Berta, Z. K., Irwin, J., Burke, C. J., Nutzman, P., Buchhave, L. A., Lovis, C., Bonfils, X., Latham, D. W., Udry, S., Murray-Clay, R. A., Holman, M. J., Falco, E. E., Winn, J. N., Queloz, D., Pepe, F., Mayor, M., Delfosse, X., and Forveille, T.: 2009. Nature 462(7275), 891

Chen, J. and Kipping, D 2017, The Astrophysical Journal 834(1), 17

Crossfield, I. J. M.: 2015, Publications of the Astronomical Society of the Pacific 127(956), 941

Crossfield, I. J, M. and Kreidberg, L.: 2017, The Astronomical Journal 154(6), 261

Danielski, C., Baudino, J. L., Lagage, P. O., Boccaletti, A,, Gastaud, R., Coulais, A., and Bzard, B.i 2018

Deming, D., Seager, S., Winn, J., Miller-Ricei, E., Clampin, M. Lindler, I).. Greene, T., Charbonneau. D., Laughlin, G., Ricker, G., Latham, D., and Ennico, K.: 2009, Publications of the Astronomical Society of the Pacific 121(883), 952

Dorner, B., Giardino, G., Ferruit, P., de Oliveira, C. A., Birkmann, S. M., Bker, T., Marchi, G. D., Gnata, X., Khler, J., Sirianni, M., and Jakobsen, P.: 2016, Astronomy & Astrophysics 592, A113

Eylen, V. V., Agentoft, C., Lundkvist, M. S., Kjeldsen, H., Owen, J. E.. Fulton, B. J., Petigura, E., and Snellen, I.: 2018, ArXiv: 1710.05398v2

Fulton, B. J., Petigura, E. A., Howard, A. W., Isaacson, H., Marcy, G. W., Cargile, P. A., Hebb, L,, Weiss, L. M,, Johnson, J. A., Morton, T. D., Sinukoff, E., Cross­ field, I. J. M., and Hirsch, L. A.: 2017, The Astronomical Journal 154(3), 109

Gardner, J, P., Mather, J. C., Clampin, M., Doyon, R., Greenhouse, M. A., Hammel, H. B., Hutchings, J. B., Jakobsen, P., Lilly, S. J., Long, K. S., Lunine, J. I., Mccaughrean, M. J., Mountain, M .: Nella, J., Rieke, G. FI., Rieke, M. J., Rix, H. W., Smith, E. P., Sonneborn, G., Stiavelli, M., Stockman, H. S., Windhorst, R. A., and Wright, G. S.: 2006, Space Science Reviews 123(4), 485 177

Gillon, M., Jehin, E., Lederer, S. M., Delrez, L., de Wit, J., Burdanov, A., Grootel, V. V., Burgasser, A. J., Triaud, A. H. M. J., Opitom, C., Demory, B.-O., Sahu, D. K., Gagliuffi, D. B., Magain, P., and Queloz, I) 2016, Nature 533(7602), 221

Gillon, M., Jehin, E., Magain, P., Chantry, V., Hutsemekers, D., Manfroid, J,, Queloz, D., and Udry, S.: 2011, EPJ Web of Conferences 11, 06002

Greene, T. P., Line, M. R,, Montero, C., Fortney, J. J., Lustig-Yaeger, J., and Luther, K.: 2016, The Astrophysical Journal 817(1), 17

Howe, A. R., Burrows, A., and Deming, D : 2017, The Astrophysical Journal 835(1), 96

Howell, S. B., Sobeck, C., Haas, M., Still, M., Barclay, T., Mullally, F., Troeltzsch, J., Aigrain, S., Bryson, S. T., Caldwell, I) Chaplin, W. J., Cochran, W. D., Huber, D., Marcy, G. W., Miglio, A., Najita, J, R., Smith, M., Twicken, J. D., and Fortney, J. J.: 2014, Publications of the Astronomical Society of the Pacific 126(938), 398

Irwin, J., Charbonneau, D., Nutzman, P., and Falco, E.: 2008, Proceedings of the International Astronomical Union 4(S253), 37

Irwin, J. M., Berta-Thompson, Z. K... Charbonneau, D , Dittmann, J., Falco, E. E., Newton, E. R., and Nutzman, P.: 2014

Kalirai, J.: 2018, arXiv:1805.06941

Kaltenegger, L. and Traub, W. A.: 2009, The Astrophysical Journal 698(1), 519

Kass, R. E. and Raftery, A. E.: 1995, Journal of the American Statistical Association 90(430), 773

Kempton, E. M.-R., Bean, J. L., Louie, D. R., Deming, D., Koll, D. D. B., Mansfield, M., Lopez-Morales, M., Swain, M. R., Zellem, R. T., Ballard, S., Barclay, T., Barstow, J. K., Batalha, N. E., Beatty, T. G., Berta-Thompson, Z., Birkby, J., Buchhave, L. A., Charbonneau, D. Christiansen, J. L., Cowan, N. B., Crossfield, I., de Val-Borro, M., Doyon, R., Dragomir, D., Gaidos, E., Heng, K., Kane, S. R., Kreidberg, L., Mallonn, M., Morley, C. V., Narita, N., Nascimbeni, V., Palle, E., 178

Quintana, E. V., Rauscher, E., Seager, S., Shkolnik, E. L., Sing, D. K., Sozzetti, A., Stassun, K, G., Valenti, J. A., and von Essen, C.: 2018, arXiv. 1805.03671

Kempton, E. M.-R.. Lupu, R., Owusu-Asare, A., Slough, P., and Cale, B.: 2017, Publications of the Astronomical Society of the Pacific 129(974), 044402

Kreidberg, L. 2017, in Handbook of Exoplanets, pp 1—23, Springer International Publishing

Line, M. R., Knutson, H., Wolf, A. S., and Yung, Y. L.: 2014, The Astrophysical Journal 783(2), 70

Louie, D. R. Deming, D., Albert, L., Bouma, L. G., Bean, J., and Lopez-Morales, M.: 2018, Publications of the Astronomical Society of the Pacific 130(986), 044401

Miller-Ricci, E. and Fortney, J. J.: 2010, The Astrophysical Journal Letters 716(1), L74

Miller-Ricci, E., Seager, S., and Sasselov, D ; 2009, The Astrophysical Journal 690(2), 1056

Morley, C. V., Fortney, J. J., Marley, M. S., Zahnle, K., Line, M., Kempton, E., Lewis, N., and Cahoy, K.: 2015, The Astrophysical Journal 815(2), 110

Morley, C. V., Kreidberg, L., Rustamkulov, Z., Robinson, T., and Fortney, J J, 2017, The Astrophysical Journal 850(2), 121

Muirhead, P. S., Dressing, C. D,, Mann, A. W., Rojas-Ayala, B., Lepine, S., Paegert, M., Lee, N, D., and Oelkers, R.: 2018, The Astronomical Journal 155(4), 180

Perryman, M.: 2014, The Exoplanet Handbook, Cambridge University Press

Petigura, E. A., Howard, A. W., Marcy, G. W., Johnson, J. A., Isaacson, H,, Cargile, P. A., Hebb, L.. Fulton, B. J., Weiss, L. M., Morton, T. D., Winn, J. N., Rogers, L. A., Sinukoff. E., Hirsch, L. A., and Crossfield, I. J. M.: 2017, The Astronomical Journal 154(3), 107 179

Pickering, T. E., Pontoppidan, K. M., Laidler, V. G., Sontag, C. D., Robberto, M., Karakla, D M., Hanley, C., Gilbert, K., Slocum, C., Earl, N. M., Pueyo, L,, Ravindranath, S., Noriega-Crespo, A., Barker, E., and Sienkiewicz, M. J.: 2016, in A. B. Peck, C. R. Benn, and R. L. Seaman (eds.), Observatory Operations: Strategies, Processes, and Systems VI, SPIE

Ricker, G. R., Winn, J. N., Vanderspek, R., Latham. D. W., Bakos, G. A.. Bean, J. L.. Berta-Thompson, Z. K., Brown, T. M., Buchhave, L., Butler, N. R., Butler, R. P., Chaplin, W. J., Charbonneau, D., Christensen-Dalsgaard, J., Clampin, M., Deming, D., Doty, J., Lee, N. D., Dressing, C., Dunham, E. W., Endl, M., Pressin, F., Ge, J., Henning, T., Holman, M. J., Howard, A. W., Ida, S., Jenkins, J. M., Jernigan, G., Johnson, J. A., Kaltenegger, L., Kawai, N„,. Kjeldsen, H., Laughlin, G., Levine, A. M., Lin, D., Lissauer, J. J., MacQueen, P., Marcy, G., McCullough, P. R., Morton, T. D , Narita, N., Paegert, M.. Palle, E.. Pepe, F., Pepper, J., Quirrenbach, A., Rinehart, S. A., Sasselov, D,, Sato, B., Seager, S., Sozzetti, A., Stassun, K. G., Sullivan, P., Szentgyorgyi, A., Torres, G., Udry, S., and Villasenor, J. 2014, Journal of Astronomical Telescopes, Instruments, and Systems 1(1), 014003

Stamnes, K., Tsay, S.-C., Wiscombe, W., and Jayaweera, K.: 1988, Appl. Opt. 27(12), 2502

Stevenson, K. B., Lewis, N. K., Bean, J. L.. Beichman, C., Fraine, J., Kilpatrick, B. M.. Krick, J. E., Lothringer, J, D , Mandell, A. M., Valenti, J. A., Agol, E,, Angerhausen, D., Barstow, J. K., Birkmann, S. M., Burrows, A., Charbonneau, D., Cowan, N. B,, Crouzet, N., Cubillos, P. E., Curry, S. M., Dalba, P. A., de Wit, J., Deming, D., Dsert, J.-M., Doyon, R.. Dragomir, D., Ehrenreich, D , Fortney, J. J., Muoz, A. G., Gibson, N. P., Gizis, J. E., Greene, T. P.. Harrington, J., Heng, K., Kataria, T., Kempton, E. M.-R., Knutson, H., Kreidberg, L., Lafrenire, D., Lagage, P.-O., Line, M. R., Lopez-Morales, M., Madhusudhan, N., Morley, C. V., Rocchetto, M., Schlawin, E., Shkolnik, E. L., Shporer, A., Sing, D. K., Todorov, K. O., Tucker, G. S., and Wakeford, H. R.; 2016, Publications of the Astronomical Society of the Pacific 128(967), 094401

Sullivan, P. W., Winn, J. N., Berta-Thompson, Z. K., Charbonneau, D., Deming, D., Dressing, C D., Latham, D. W., Levine, A. M., McCullough, P. R., Morton, 180

T., Ricker, G. R., Vanderspek, R., and Woods, D.: 2015, The Astrophysical Journal 809(1), 77

Wall, J. V. and Jenkins, C. R.: 2012, Practical Statistics for Astronomers (Cam­ bridge Observing Handbooks for Research Astronomers), Cambridge University Press

Weiss, L. M. and Marcy, G. W.: 2014, The Astrophysical Journal Letters 783(1), L6

Winn, J. N.: 2010, arXiv:1001.2010

Wolfgang, A. and Lopez, E.: 2015, The Astrophysical Journal 806(2), 183