EXOSIMS.SurveySimulation package

Submodules

EXOSIMS.SurveySimulation.ExoC_Scheduler module

class EXOSIMS.SurveySimulation.ExoC_Scheduler.ExoC_Scheduler(**specs)[source]

Bases: SurveySimulation

Survey Simulation class template

This class contains all variables and methods necessary to perform Survey Simulation Module calculations in exoplanet mission simulation.

It inherits from the prototype SurveySimulation module.

The ExoC_Scheduler is designed to perform detections as normal and characterizations in series.

Parameters:

**specs – user specified values

observation_characterization(sInd, mode, mode_index)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.KnownRVSurvey module

class EXOSIMS.SurveySimulation.KnownRVSurvey.KnownRVSurvey(**specs)[source]

Bases: SurveySimulation

Survey Simulation module based on Know RV planets

This class uses estimates of delta magnitude (int_dMag) and instrument working angle (int_WA) for integration time calculation, specific to the known RV planets.

Parameters:

**specs – user specified values

EXOSIMS.SurveySimulation.SLSQPScheduler module

class EXOSIMS.SurveySimulation.SLSQPScheduler.SLSQPScheduler(cacheOptTimes=False, staticOptTimes=False, selectionMetric='maxC', Izod='current', maxiter=60, ftol=0.001, **specs)[source]

Bases: SurveySimulation

This class implements a continuous optimization of integration times using the scipy minimize function with method SLSQP. ortools with the CBC linear solver is used to find an initial solution consistent with the constraints. For details see Keithly et al. 2019. Alternatively: Savransky et al. 2017 (SPIE).

Parameters:

**specs – user specified values

Notes

Due to the time costs of the current comp_per_inttime calculation in GarrettCompleteness this should be used with BrownCompleteness.

Requires ortools

arbitrary_time_advancement(dt)[source]

Handles fully dynamically scheduled case where OBduration is infinite and missionPortion is less than 1. Input dt is the total amount of time, including all overheads and extras used for the previous observation.

calc_targ_intTime(sInds, startTimes, mode)[source]

Given a subset of targets, calculate their integration times given the start of observation time.

This implementation updates the optimized times based on current conditions and mission time left.

Note: next_target filter will discard targets with zero integration times.

Parameters:
  • sInds (integer array) – Indices of available targets

  • startTimes (astropy quantity array) – absolute start times of observations. must be of the same size as sInds

  • mode (dict) – Selected observing mode for detection

Returns:

Integration times for detection. Same dimension as sInds

Return type:

astropy Quantity array

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Given a subset of targets (pre-filtered by method next_target or some other means), select the best next one.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

sInd (integer):

Index of next target star

waitTime (astropy Quantity):

the amount of time to wait (this method returns None)

Return type:

tuple

inttimesfeps(eps, Cb, Csp)[source]

Compute the optimal subset of targets for a given epsilon value where epsilon is the maximum completeness gradient.

Everything is in units of days

objfun(t, sInds, fZ)[source]

Objective Function for SLSQP minimization. Purpose is to maximize summed completeness

Parameters:
  • t (ndarray) – Integration times in days. NB: NOT an astropy quantity.

  • sInds (ndarray) – Target star indices (of same size as t)

  • fZ (astropy Quantity) – Surface brightness of local zodiacal light in units of 1/arcsec2 Same size as t

objfun_deriv(t, sInds, fZ)[source]

Jacobian of objective Function for SLSQP minimization.

Parameters:
  • t (astropy Quantity) – Integration times in days. NB: NOT an astropy quantity.

  • sInds (ndarray) – Target star indices (of same size as t)

  • fZ (astropy Quantity) – Surface brightness of local zodiacal light in units of 1/arcsec2 Same size as t

whichTimeComesNext(absTs)[source]

Determine which absolute time comes next from current time Specifically designed to determine when the next local zodiacal light event occurs form fZQuads

Parameters:

absTs (list) – the absolute times of different events (list of absolute times)

Returns:

the absolute time which occurs next

Return type:

astropy time quantity

EXOSIMS.SurveySimulation.SS_char_only module

class EXOSIMS.SurveySimulation.SS_char_only.SS_char_only(coeffs=[1, 0, 0, 0], **specs)[source]

Bases: SurveySimulation

choose_next_target(old_sInd, sInds, slewTimes, t_dets)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTime (float array) – slew times to all stars (must be indexed by sInds)

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.SS_char_only2 module

class EXOSIMS.SurveySimulation.SS_char_only2.SS_char_only2(occHIPs=[], **specs)[source]

Bases: SurveySimulation

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target at random

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.SS_det_only module

class EXOSIMS.SurveySimulation.SS_det_only.SS_det_only(scriptfile=None, ntFlux=1, nVisitsMax=5, charMargin=0.15, dt_max=1.0, record_counts_path=None, nokoMap=False, nofZ=False, cachedir=None, defaultAddExoplanetObsTime=True, find_known_RV=False, include_known_RV=None, **specs)[source]

Bases: SurveySimulation

SS_det_only is a variant of survey scheduler that performs only detections

calc_EVPOC()[source]
calc_int_inflection(sInd, fEZ, fZ, WA, mode, ischar=False)[source]

Calculate integration time based on inflection point of Completeness as a function of int_time

Parameters:
  • sInd (integer) – Index of the target star

  • fEZ (astropy Quantity array) – Surface brightness of exo-zodiacal light in units of 1/arcsec2

  • fZ (astropy Quantity) –

  • WA (astropy Quantity) – Working angle of the planet of interest in units of arcsec

  • mode (dict) – Selected observing mode

Returns:

The suggested integration time

Return type:

int_time (float)

choose_next_target(old_sInd, sInds, slewTime, t_dets)[source]

Choose next telescope target based on star completeness and integration time.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTime (float array) – slew times to all stars (must be indexed by sInds)

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

genC(Cpath, nplan, xedges, yedges, steps)[source]

Gets completeness interpolant for initial completeness

This function either loads a completeness .comp file based on specified Planet Population module or performs Monte Carlo simulations to get the 2D completeness values needed for interpolation.

Parameters:
  • Cpath (string) – path to 2D completeness value array

  • nplan (float) – number of planets used in each simulation

  • xedges (float ndarray) – x edge of 2d histogram (separation)

  • yedges (float ndarray) – y edge of 2d histogram (dMag)

  • steps (integer) – number of simulations to perform

Returns:

2D numpy ndarray containing completeness probability density values

Return type:

H (float ndarray)

genplans(nplan)[source]

Generates planet data needed for Monte Carlo simulation

Parameters:

nplan (int) – Number of planets

Returns:

s (astropy.units.Quantity numpy.ndarray):

Planet apparent separations in units of AU

dMag (numpy.ndarray):

Difference in brightness

Return type:

tuple

hist(nplan, xedges, yedges)[source]

Returns completeness histogram for Monte Carlo simulation

This function uses the inherited Planet Population module.

Parameters:
  • nplan (float) – number of planets used

  • xedges (float ndarray) – x edge of 2d histogram (separation)

  • yedges (float ndarray) – y edge of 2d histogram (dMag)

Returns:

2D numpy ndarray containing completeness histogram

Return type:

h (ndarray)

next_target(old_sInd, mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing mode for detection

Returns:

Design Reference Mission, contains the results of one complete

observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

DRM (dict)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.cbytScheduler module

class EXOSIMS.SurveySimulation.cbytScheduler.cbytScheduler(**specs)[source]

Bases: SurveySimulation

cbytScheduler - Completeness-by-time Scheduler

This class implements a Scheduler that selects the current highest Completeness/Integration Time.

Parameters:

**specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (int) – Index of the previous target star

  • sInds (int numpy.ndarray) – Indices of available targets

  • slewTimes (astropy.units.Quantity numpy.ndarray) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy.units.Quantity numpy.ndarray) – Integration times for detection in units of day

Returns:

sInd (int):

Index of next target star

waitTime (astropy.units.Quantity or None):

the amount of time to wait (this method returns None)

Return type:

tuple

EXOSIMS.SurveySimulation.coroOnlyScheduler module

class EXOSIMS.SurveySimulation.coroOnlyScheduler.coroOnlyScheduler(revisit_wait=0.5, revisit_weight=1.0, n_det_remove=3, n_det_min=3, max_successful_chars=1, max_successful_dets=4, lum_exp=1, promote_by_time=False, detMargin=0.0, **specs)[source]

Bases: SurveySimulation

coroOnlyScheduler - Coronograph Only Scheduler

This scheduler inherits directly from the prototype SurveySimulation module.

The coronlyScheduler operates using only a coronograph. The scheduler makes detections until stars can be promoted into a characterization list, at which point they are charcterized.

Parameters:
  • revisit_wait (float) – Wait time threshold for star revisits. The value given is the fraction of a characterized planet’s period that must be waited before scheduling a revisit.

  • revisit_weight (float) – Weight used to increase preference for coronograph revisits.

  • n_det_remove (integer) – Number of failed detections before a star is removed from the target list.

  • n_det_min (integer) – Minimum number of detections required for promotion to char target.

  • max_successful_chars (integer) – Maximum number of successful characterizions before star is taken off target list.

  • max_successful_dets (integer) – Maximum number of successful detections before star is taken off target list.

  • lum_exp (int) – The exponent to use for luminosity weighting on coronograph targets.

  • promote_by_time (bool) – Only promote stars that have had detections that span longer than half a period.

  • detMargin (float) – Acts in the same way a charMargin. Adds a multiplyer to the calculated detection time.

  • **specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, t_dets)[source]

Choose next telescope target based on star completeness and integration time.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

initializeStorageArrays()[source]

Initialize all storage arrays based on # of stars and targets

next_target(old_sInd, det_modes, char_modes)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing mode for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

Return type:

tuple

observation_characterization(sInd, mode, mode_index)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (added in MJD) –

Returns:

sInds - indices of stars still in observation list

Return type:

ndarray(int)

run_sim()[source]

Performs the survey simulation

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection :param sInd - sInd of the star just detected: :param smin - minimum separation of the planet to star of planet just detected: :param det -: :param pInds - Indices of planets around target star:

Returns:

updates self.starRevisit attribute

test_observation_characterization(sInd, mode, mode_index)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

EXOSIMS.SurveySimulation.linearJScheduler module

class EXOSIMS.SurveySimulation.linearJScheduler.linearJScheduler(coeffs=[1, 1, 1, 1, 2, 1], revisit_wait=91.25, find_known_RV=False, **specs)[source]

Bases: SurveySimulation

This class implements the linear cost function scheduler described in [Savransky2010]

Parameters:
  • coeffs (iterable 6x1) – Cost function coefficients: slew distance, completeness, least visited planet ramp, unvisited known RV planet ramp, least visited ramp, unvisited ramp

  • revisit_wait (float) – The time required for the scheduler to wait before a target may be revisited

  • find_known_RV (boolean) – A flag that turns on the ability to identify known RV stars. The stars with known rocky planets have their int_comp value set to 1.0.

  • specs (dict) – Input Specification

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

sInd (int):

Index of next target star

waitTime (astropy.units.Quantity or None):

the amount of time to wait (this method returns None)

Return type:

tuple

next_target(old_sInd, mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing mode for detection

Returns:

Design Reference Mission, contains the results of one complete

observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

Return type:

DRM (dict)

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (int) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

characterized (integer list):

Characterization status for each planet orbiting the observed target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

tuple

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • sInds (int numpy.ndarray) – indices of stars still in observation list

  • tmpCurrentTimeNorm (MJD) – the simulation time after overhead was added in MJD

Returns:

sInds - indices of stars still in observation list

Return type:

int numpy.ndarray

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection

Parameters:
  • sInd (int) – sInd of the star just detected

  • smin (float) – minimum separation of the planet to star of planet just detected

  • det (bool numpy.ndarray) – detection array

  • pInds (int numpy.ndarray) – Indices of planets around target star

Returns:

None

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.linearJScheduler_3DDPC module

class EXOSIMS.SurveySimulation.linearJScheduler_3DDPC.linearJScheduler_3DDPC(**specs)[source]

Bases: linearJScheduler_DDPC

linearJScheduler_3DDPC - linearJScheduler 3 Dual Detection Parallel Charachterization

This scheduler inherits from the LJS_DDPC, but is capable of taking in six detection modes and six characterization modes. Detections can then be performed using a dual-band mode that is selected from the best available mode-pair, while characterizations are performed in parallel.

next_target(old_sInd, modes)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing modes for detection

Returns:

Design Reference Mission, contains the results of one complete

observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

det_mode (dict):

Selected detection mode

Return type:

DRM (dict)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.linearJScheduler_3DDPC_sotoSS module

class EXOSIMS.SurveySimulation.linearJScheduler_3DDPC_sotoSS.linearJScheduler_3DDPC_sotoSS(**specs)[source]

Bases: linearJScheduler_DDPC_sotoSS

linearJScheduler_3DDPC_sotoSS - linearJScheduler 3 Dual Detection Parallel Characterization SotoStarshade

This scheduler inherits from the LJS_DDPC, but is capable of taking in six detection modes and six characterization modes. Detections can then be performed using a dual-band mode that is selected from the best available mode-pair, while characterizations are performed in parallel.

Parameters:

**specs – user specified values

next_target(old_sInd, modes)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing modes for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

det_mode (dict):

Selected detection mode

Return type:

tuple

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.linearJScheduler_DDPC module

class EXOSIMS.SurveySimulation.linearJScheduler_DDPC.linearJScheduler_DDPC(revisit_weight=1.0, **specs)[source]

Bases: linearJScheduler

linearJScheduler_DDPC - linearJScheduler Dual Detection Parallel Charachterization

This scheduler inherits from the LJS, but is capable of taking in two detection modes and two chracterization modes. Detections can then be performed using a dual-band mode, while characterizations are performed in parallel.

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, modes)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • modes (dict) – Selected observing modes for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

det_mode (dict):

Selected detection mode

Return type:

tuple

observation_characterization(sInd, modes)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • modes (dict) – Selected observing modes for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.linearJScheduler_DDPC_sotoSS module

class EXOSIMS.SurveySimulation.linearJScheduler_DDPC_sotoSS.linearJScheduler_DDPC_sotoSS(revisit_weight=1.0, **specs)[source]

Bases: linearJScheduler_sotoSS

linearJScheduler_DDPC_sotoSS - linearJScheduler Dual Detection Parallel Characterization Sotostarshade

This scheduler inherits from the LJS, but is capable of taking in two detection modes and two chracterization modes. Detections can then be performed using a dual-band mode, while characterizations are performed in parallel.

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, modes)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • modes (dict) – Selected observing modes for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

det_mode (dict):

Selected detection mode

Return type:

tuple

observation_characterization(sInd, modes)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • modes (dict) – Selected observing modes for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

run_sim()[source]

Performs the survey simulation

EXOSIMS.SurveySimulation.linearJScheduler_det_only module

class EXOSIMS.SurveySimulation.linearJScheduler_det_only.linearJScheduler_det_only(**specs)[source]

Bases: linearJScheduler

linearJScheduler_det_only - linearJScheduler Detections Only

This class implements the linear cost function scheduler described in Savransky et al. (2010).

This scheduler inherits from the linearJScheduler module but performs only detections.

Parameters:

specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • mode (dict) – Selected observing mode for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (integer):

Index of next target star. Defaults to None.

intTime (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

Return type:

tuple

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (was added in MJD) –

Returns:

sInds - indices of stars still in observation list

run_sim()[source]

Performs the survey simulation

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection :param sInd - sInd of the star just detected: :param smin - minimum separation of the planet to star of planet just detected: :param det -: :param pInds - Indices of planets around target star:

Returns:

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.linearJScheduler_det_only_sotoSS module

class EXOSIMS.SurveySimulation.linearJScheduler_det_only_sotoSS.linearJScheduler_det_only_sotoSS(coeffs=[1, 1, 2, 1], revisit_wait=91.25, **specs)[source]

Bases: SurveySimulation

This class implements the linear cost function scheduler described in Savransky et al. (2010).

Parameters:
  • coeffs (iterable 4x1) – Cost function coefficients: slew distance, completeness, target list coverage, revisit weight

  • **specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (in MJD) –

Returns:

indices of stars still in observation list

Return type:

ndarray(int)

run_sim()[source]

Performs the survey simulation

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection

Parameters:
  • detected (smin - minimum separation of the planet to star of planet just) –

  • detected

  • - (det) –

  • star (pInds - Indices of planets around target) –

Returns:

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.linearJScheduler_orbitChar module

class EXOSIMS.SurveySimulation.linearJScheduler_orbitChar.linearJScheduler_orbitChar(coeffs=[1, 1, 1, 1, 2, 1], revisit_wait=0.5, n_det_remove=3, n_det_min=3, max_successful_dets=4, max_successful_chars=1, det_only=False, char_only=False, **specs)[source]

Bases: SurveySimulation

This class implements a varient of the linear cost function scheduler described in Savransky et al. (2010).

It inherits directly from the protoype SurveySimulation class.

The LJS_orbitChar scheduler performs scheduled starshade visits to both detect and characterize targets. Once a target is detected, it will be subsequently characterized. If the characterization is successful, that taget will be marked for further detections to characeterize it’s orbit.

Parameters:
  • coeffs (iterable 6x1) – Cost function coefficients: slew distance, completeness, least visited known RV planet ramp, unvisited known RV planet ramp, least visited ramp, unvisited ramp

  • revisit_wait (float) – Wait time threshold for star revisits. The value given is the fraction of a characterized planet’s period that must be waited before scheduling a revisit.

  • n_det_remove (int) – Number of failed detections before a star is removed from the target list.

  • n_det_min (int) – Minimum number of detections required for promotion to char target.

  • max_successful_dets (int) – Maximum number of successful detections before star is taken off target list.

  • max_successful_chars (int) – Maximum number of successful characterizations on a given star before it is removed from the target list.

  • det_only (bool) – Run the sim only performing detections and no chars.

  • (bool (char_only) – Run the sim performing only chars, particularly for precursor RV using known_rocky.

  • specs (dict) – Input Specification

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (int) – Index of the previous target star

  • sInds (int array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy.units.Quantity array) – Integration times for detection in units of day

Returns:

sInd (int):

Index of next target star

waitTime (astropy.units.Quantity):

the amount of time to wait (this method returns None)

Return type:

tuple

next_target(old_sInd, mode, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (int) – Index of the previous target star

  • mode (dict) – Selected observing mode for detection

Returns:

DRM (dict):

Design Reference Mission, contains the results of one complete observation (detection and characterization)

sInd (int):

Index of next target star. Defaults to None.

intTime (astropy.units.Quantity):

Selected star integration time for detection in units of day. Defaults to None.

waitTime (astropy.units.Quantity):

a strategically advantageous amount of time to wait in the case of an occulter for slew times

Return type:

tuple

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (int) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

characterized (int list):

Characterization status for each planet orbiting the observed target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy.units.Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float numpy.ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy.units.Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

tuple

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (in MJD) –

Returns:

sInds - indices of stars still in observation list

run_sim()[source]

Performs the survey simulation

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection

Parameters:
  • detected (smin - minimum separation of the planet to star of planet just) –

  • detected

  • - (det) –

  • star (pInds - Indices of planets around target) –

Returns:

None

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.linearJScheduler_sotoSS module

class EXOSIMS.SurveySimulation.linearJScheduler_sotoSS.linearJScheduler_sotoSS(coeffs=[1, 1, 2, 1], revisit_wait=91.25, **specs)[source]

Bases: SurveySimulation

linearJScheduler

This class implements the linear cost function scheduler described in Savransky et al. (2010).

Parameters:
  • coeffs (iterable 3x1) – Cost function coefficients: slew distance, completeness, target list coverage

  • **specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target based on truncated depth first search of linear cost function.

Parameters:
  • old_sInd (int) – Index of the previous target star

  • sInds (int array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

sInd (int):

Index of next target star

waitTime (astropy Quantity):

the amount of time to wait (this method returns None)

Return type:

tuple

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (MJD) –

Returns:

indices of stars still in observation list

Return type:

ndarray(int)

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection :param sInd - sInd of the star just detected: :param smin - minimum separation of the planet to star of planet just detected: :param det -: :param pInds - Indices of planets around target star:

Returns:

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.occulterJScheduler module

class EXOSIMS.SurveySimulation.occulterJScheduler.occulterJScheduler(nSteps=1, useAngles=False, **specs)[source]

Bases: linearJScheduler

This class inherits linearJScheduler and works best when paired with the SotoStarshade Observatory class.

Parameters:
  • nSteps (integer 1x1) – Number of steps to take when calculating the cost function.

  • useAngles (bool) – Use interpolated dV angles.

  • **specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Helper method for method next_target to simplify alternative implementations.

Given a subset of targets (pre-filtered by method next_target or some other means), select the best next one. The prototype uses completeness as the sole heuristic.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

sInd (integer):

Index of next target star

waitTime (astropy Quantity):

some strategic amount of time to wait in case an occulter slew is desired (default is None)

Return type:

tuple

EXOSIMS.SurveySimulation.randomWalkScheduler module

class EXOSIMS.SurveySimulation.randomWalkScheduler.randomWalkScheduler(scriptfile=None, ntFlux=1, nVisitsMax=5, charMargin=0.15, dt_max=1.0, record_counts_path=None, nokoMap=False, nofZ=False, cachedir=None, defaultAddExoplanetObsTime=True, find_known_RV=False, include_known_RV=None, **specs)[source]

Bases: SurveySimulation

This class implements a random walk scheduler that selects the next target at random from the pool of currently available targets.

This is useful for mapping out the space of possible mission outcomes for a fixed population of planets in order to validate other schedulers.

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target at random

Parameters:
  • old_sInd (int) – Index of the previous target star

  • sInds (int array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

sInd (int):

Index of next target star

waitTime (astropy Quantity):

the amount of time to wait (this method returns None)

Return type:

tuple

EXOSIMS.SurveySimulation.randomWalkScheduler2 module

class EXOSIMS.SurveySimulation.randomWalkScheduler2.randomWalkScheduler2(occHIPs=[], **specs)[source]

Bases: SurveySimulation

This class implements a random walk scheduler that selects the next target at random from the pool of currently available targets.

This is useful for mapping out the space of possible mission outcomes for a fixed population of planets in order to validate other schedulers.

The random walk will attempt to first choose from occulter targets before defaulting back to the general target list.

Parameters:
  • occHIPs (iterable nx1) – List of star HIP numbers to initialize occulter target list.

  • **specs – user specified values

choose_next_target(old_sInd, sInds, slewTimes, intTimes)[source]

Choose next target at random

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

EXOSIMS.SurveySimulation.starkAYO_staticSchedule module

class EXOSIMS.SurveySimulation.starkAYO_staticSchedule.starkAYO_staticSchedule(cacheOptTimes=False, staticOptTimes=False, **specs)[source]

Bases: SurveySimulation

starkAYO _static Scheduler

This class implements a Scheduler that creates a list of stars to observe and integration times to observe them. It also selects the best star to observe at any moment in time

2nd execution time 2 min 30 sec

altruisticYieldOptimization(sInds)[source]

Updates attributes: self.schedule self.t_dets self.CbyT self.Comp00

calcTinit(sInds, TL, fZ, fEZ, WA, mode, TK=None)[source]

Calculate Initial Values for starkAYO (use max C/T) <- this is a poor IC selection

calc_targ_intTime(sInds, startTimes, mode)[source]

Finds and Returns Precomputed Observation Time

Parameters:
  • sInds (integer array) – Indices of available targets

  • startTimes (astropy quantity array) – absolute start times of observations. must be of the same size as sInds

  • mode (dict) – Selected observing mode for detection

Returns:

Integration times for detection. same dimension as sInds

Return type:

Quantity(ndarray(float))

choose_next_target(old_sInd, sInds, slewTime, intTimes)[source]

Generate Next Target to Select based off of AYO at this instant in time

Parameters:
  • sInds (int array) – indicies of stars under consideration

  • old_sInd (int) – unused

  • slewTime (quantity) – unused

  • intTimes (quantity array) – unused

Returns:

sInd (int):

the single index of self.schedule_startSaved to observe

waitTime (astropy.units.Quantity):

a strategic amount of time to wait (this module always returns None)

Return type:

tuple

distributedt(sInds, t_dets, sacrificedStarTime, fZ, fEZ, WA)[source]

Distributes sacrificedStarTime amoung sInds :param sInds[nStars] - indicies of stars in the list: :param t_dets[nStars] - time to observe each star: :type t_dets[nStars] - time to observe each star: in days :param sacrificedStarTime - time to distribute in days: :param fZ[nStars] - zodiacal light for each target: :param fEZ - 0:

Returns:

t_dets[len(sInds)] - time to observe each star (in days)

sacrificeStarCbyT(sInds, t_dets, fZ, fEZ, WA, overheadTime)[source]

Sacrifice the worst performing CbyT star :param sInds[nStars] - indicies of stars in the list: :param t_dets[nStars] - time to observe each star: :type t_dets[nStars] - time to observe each star: in days :param fZ[nStars] - zodiacal light for each target: :param fEZ - 0: :param WA - inner working angle of the instrument: :param overheadTime - overheadTime added to each observation:

Returns:

sInds[nStars] - indicies of stars in the list t_dets[nStars] - time to observe each star (in days) sacrificedStarTime - time to distribute in days

EXOSIMS.SurveySimulation.tieredScheduler module

class EXOSIMS.SurveySimulation.tieredScheduler.tieredScheduler(coeffs=[2, 1, 1, 8, 4, 1, 1], occHIPs=[], topstars=0, revisit_wait=0.5, revisit_weight=1.0, GAPortion=0.25, int_inflection=False, GA_simult_det_fraction=0.07, promote_hz_stars=False, phase1_end=365, n_det_remove=3, n_det_min=3, occ_max_visits=3, max_successful_chars=1, max_successful_dets=4, nmax_promo_det=4, lum_exp=1, tot_det_int_cutoff=None, **specs)[source]

Bases: SurveySimulation

This class implements a tiered scheduler that independently schedules the observatory while the starshade slews to its next target.

Parameters:
  • coeffs (iterable 7x1) – Cost function coefficients: slew distance, completeness, intTime, deep-dive least visited ramp, deep-dive unvisited ramp, unvisited ramp, and least-visited ramp

  • occHIPs (iterable nx1) – List of star HIP numbers to initialize occulter target list.

  • topstars (integer) – Number of HIP numbers to recieve preferential treatment.

  • revisit_wait (float) – Wait time threshold for star revisits. The value given is the fraction of a characterized planet’s period that must be waited before scheduling a revisit.

  • revisit_weight (float) – Weight used to increase preference for coronograph revisits.

  • GAPortion (float) – Portion of mission time used for general astrophysics.

  • int_inflection (boolean) – Calculate integration time using the pre-calculated integration time curves. Default is False.

  • GA_simult_det_fraction (float) – Fraction of detection time to be considered as GA time.

  • promote_hz_stars (boolean) – Flag that allows promotion of targets with planets in the habitable zone to the occulter target list.

  • phase1_end (int) – Number of days to wait before the end of phase 1, when phase 1 ends, target promotion begins.

  • n_det_remove (int) – Minimum number of visits with no detections required to filter off star

  • n_det_min (int) – Minimum number of detections required for promotion

  • occ_max_visits (int) – Number of maximum visits to a star allowed by the occulter.

  • max_successful_chars (int) – Maximum number of successful characterizations on a given star before it is removed from the target list.

  • max_successful_dets (int) – Maximum number of successful detections on a given star before it is removed from the target list.

  • nmax_promo_det (int) – Number of detection on a star required to be promoted regardless of detection occurance times.

  • lum_exp (int) – Exponent used in the luminosity weighting function.

  • tot_det_int_cutoff (float) – Number of total days the scheduler is allowed to spend on detections.

  • **specs – user specified values

calc_int_inflection(t_sInds, fEZ, startTime, WA, mode, ischar=False)[source]

Calculate integration time based on inflection point of Completeness as a function of int_time

Parameters:
  • t_sInds (integer array) – Indices of the target stars

  • fEZ (astropy Quantity array) – Surface brightness of exo-zodiacal light in units of 1/arcsec2

  • startTime (astropy Quantity array) – Surface brightness of local zodiacal light in units of 1/arcsec2

  • WA (astropy Quantity) – Working angle of the planet of interest in units of arcsec

  • mode (dict) – Selected observing mode

Returns:

The suggested integration time

Return type:

int_times (astropy quantity array)

choose_next_occulter_target(old_occ_sInd, occ_sInds, intTimes)[source]

Choose next target for the occulter based on truncated depth first search of linear cost function.

Parameters:
  • old_occ_sInd (integer) – Index of the previous target star

  • occ_sInds (integer array) – Indices of available targets

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (int)

choose_next_telescope_target(old_sInd, sInds, t_dets)[source]

Choose next telescope target based on star completeness and integration time.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, old_occ_sInd, det_mode, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_mode (dict) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

promote_coro_targets(occ_sInds, sInds)[source]

Determines which coronograph targets to promote to occulter targets

Parameters:
  • occ_sInds (numpy array) – occulter targets

  • sInds (numpy array) – coronograph targets

Returns:

updated occulter targets

Return type:

occ_sInds (numpy array)

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (in MJD) –

Returns:

sInds - indices of stars still in observation list

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection

Parameters:
  • detected (smin - minimum separation of the planet to star of planet just) –

  • detected

  • - (det) –

  • star (pInds - Indices of planets around target) –

Returns:

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.tieredScheduler_DD module

class EXOSIMS.SurveySimulation.tieredScheduler_DD.tieredScheduler_DD(**specs)[source]

Bases: tieredScheduler

tieredScheduler_DD - tieredScheduler Dual Detection

This class implements a version of the tieredScheduler that performs dual-band detections

next_target(old_sInd, old_occ_sInd, det_modes, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_modes (dict array) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

EXOSIMS.SurveySimulation.tieredScheduler_DD_SLSQP module

class EXOSIMS.SurveySimulation.tieredScheduler_DD_SLSQP.tieredScheduler_DD_SLSQP(**specs)[source]

Bases: tieredScheduler_SLSQP

tieredScheduler_DD_SLSQP - tieredScheduler Dual Detection SLSQP

This class implements a version of the tieredScheduler that performs dual-band detections and uses the SLSQP scheduler as a base for inheritance.

next_target(old_sInd, old_occ_sInd, det_modes, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_modes (dict array) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

EXOSIMS.SurveySimulation.tieredScheduler_DD_SS module

class EXOSIMS.SurveySimulation.tieredScheduler_DD_SS.tieredScheduler_DD_SS(**specs)[source]

Bases: tieredScheduler_DD

tieredScheduler_DDSS - tieredScheduler Dual Detection with SotoStarshade

This class implements a version of the tieredScheduler that performs dual-band detections with SotoStarshade

chooseOcculterSlewTimes(sInds, slewTimes, dV, intTimes, loTimes)[source]

Selects the best slew time for each star

This method searches through an array of permissible slew times for each star and chooses the best slew time for the occulter based on maximizing possible characterization time for that particular star (as a default).

Parameters:
  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • dV (astropy Quantity) – Delta-V used to transfer to new star line of sight in unis of m/s

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

  • loTimes (astropy Quantity array) – Time left over after integration which could be used for characterization in units of day

Returns:

sInds (integer):

Indeces of next target star

slewTimes (astropy Quantity array):

slew times to all stars (must be indexed by sInds)

intTimes (astropy Quantity array):

Integration times for detection in units of day

dV (astropy Quantity):

Delta-V used to transfer to new star line of sight in unis of m/s

Return type:

tuple

choose_next_occulter_target(old_occ_sInd, occ_sInds, intTimes, slewTimes=None)[source]

Choose next target for the occulter based on truncated depth first search of linear cost function.

Parameters:
  • old_occ_sInd (integer) – Index of the previous target star

  • occ_sInds (integer array) – Indices of available targets

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds). Input is set to None by default

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, old_occ_sInd, det_modes, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_modes (dict array) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

refineOcculterIntTimes(occ_sInds, occ_startTimes, char_mode)[source]

Refines/filters/chooses occulter intTimes based on tieredScheduler criteria

This method filters the intTimes for the remaining occ_sInds according to the tiered_Scheduler_DD criteria. Including int_inflection and adjusting for stars with known earths around them. Code was copied from tieredScheduler_DD in section #4 to this method so that it can be conducted multiple times for different occ_startTimes. This method was created for use with SotoStarshade. In refineOcculterSlews with SotoStarshade, the intTimes are calculated once at the start of the observable time window and again at the end of it.

Parameters:
  • occ_sInds (integer array) – Indices of available targets for occulter

  • occ_startTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • char_mode (dict) – Selected observing mode for detection

Returns:

Filtered occulter integration times

Return type:

occ_intTimes (astropy Quantity)

refineOcculterSlews(old_sInd, sInds, slewTimes, obsTimes, sd, mode)[source]

Refines/filters/chooses occulter slews based on time constraints

Refines the selection of occulter slew times by filtering based on mission time constraints and selecting the best slew time for each star. This method calls on other occulter methods within SurveySimulation depending on how slew times were calculated prior to calling this function (i.e. depending on which implementation of the Observatory module is used).

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • slewTimes (astropy quantity array) – slew times to all stars (must be indexed by sInds)

  • obsTimes (astropy Quantity array) – A binary array with TargetList.nStars rows and (missionFinishAbs-missionStart)/dt columns where dt is 1 day by default. A value of 1 indicates the star is in keepout for (and therefore cannot be observed). A value of 0 indicates the star is not in keepout and may be observed.

  • sd (astropy Quantity) – Angular separation between stars in rad

  • mode (dict) – Selected observing mode for detection

Returns:

sInds (integer):

Indeces of next target star

slewTimes (astropy Quantity array):

slew times to all stars (must be indexed by sInds)

intTimes (astropy Quantity array):

Integration times for detection in units of day

dV (astropy Quantity):

Delta-V used to transfer to new star line of sight in unis of m/s

Return type:

tuple

EXOSIMS.SurveySimulation.tieredScheduler_DD_sotoSS module

class EXOSIMS.SurveySimulation.tieredScheduler_DD_sotoSS.tieredScheduler_DD_sotoSS(**specs)[source]

Bases: tieredScheduler_sotoSS

tieredScheduler_DD - tieredScheduler Dual Detection

This class implements a version of the tieredScheduler that performs dual-band detections

next_target(old_sInd, old_occ_sInd, det_modes, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_modes (dict array) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

EXOSIMS.SurveySimulation.tieredScheduler_SLSQP module

class EXOSIMS.SurveySimulation.tieredScheduler_SLSQP.tieredScheduler_SLSQP(coeffs=[2, 1, 1, 8, 4, 1, 1], occHIPs=[], topstars=0, revisit_wait=0.5, revisit_weight=1.0, GAPortion=0.25, int_inflection=False, GA_simult_det_fraction=0.07, promote_hz_stars=False, phase1_end=365, n_det_remove=3, n_det_min=3, occ_max_visits=3, max_successful_chars=1, max_successful_dets=4, nmax_promo_det=4, lum_exp=1, nofZ=False, **specs)[source]

Bases: SLSQPScheduler

tieredScheduler_SLSQP_old

This class implements a tiered scheduler that independently schedules the observatory while the starshade slews to its next target.

Parameters:
  • coeffs (iterable 7x1) – Cost function coefficients: slew distance, completeness, intTime, deep-dive least visited ramp, deep-dive unvisited ramp, unvisited ramp, and least-visited ramp

  • occHIPs (iterable nx1) – List of star HIP numbers to initialize occulter target list.

  • topstars (integer) – Number of HIP numbers to recieve preferential treatment.

  • revisit_wait (float) – Wait time threshold for star revisits.

  • revisit_weight (float) – Weight used to increase preference for coronograph revisits.

  • GAPortion (float) – Portion of mission time used for general astrophysics.

  • int_inflection (boolean) – Calculate integration time using the pre-calculated integration time curves. Default is False.

  • GA_simult_det_fraction (float) – Fraction of detection time to be considered as GA time.

  • promote_hz_stars (boolean) – Flag that allows promotion of targets with planets in the habitable zone to the occulter target list.

  • phase1_end (int) – Number of days to wait before the end of phase 1, when phase 1 ends, target promotion begins.

  • n_det_remove (int) – Minimum number of visits with no detections required to filter off star

  • n_det_min (int) – Minimum number of detections required for promotion

  • occ_max_visits (int) – Number of maximum visits to a star allowed by the occulter.

  • max_successful_chars (int) – Maximum number of successful characterizations on a given star before it is removed from the target list.

  • max_successful_dets (int) – Maximum number of successful detections on a given star before it is removed from the target list.

  • nmax_promo_det (int) – Number of detection on a star required to be promoted regardless of detection occurance times.

  • lum_exp (int) – Exponent used in the luminosity weighting function.

  • nofZ (bool) – Flag whether the fZQuads have been created

  • **specs – user specified values

calc_int_inflection(t_sInds, fEZ, startTime, WA, mode, ischar=False)[source]

Calculate integration time based on inflection point of Completeness as a function of int_time

Parameters:
  • t_sInds (integer array) – Indices of the target stars

  • fEZ (astropy Quantity array) – Surface brightness of exo-zodiacal light in units of 1/arcsec2

  • startTime (astropy Quantity array) – Surface brightness of local zodiacal light in units of 1/arcsec2

  • WA (astropy Quantity) – Working angle of the planet of interest in units of arcsec

  • mode (dict) – Selected observing mode

Returns:

The suggested integration time

Return type:

int_times (astropy quantity array)

choose_next_occulter_target(old_occ_sInd, occ_sInds, intTimes)[source]

Choose next target for the occulter based on truncated depth first search of linear cost function.

Parameters:
  • old_occ_sInd (integer) – Index of the previous target star

  • occ_sInds (integer array) – Indices of available targets

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

choose_next_telescope_target(old_sInd, sInds, t_dets)[source]

Choose next telescope target based on star completeness and integration time.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, old_occ_sInd, det_mode, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_mode (dict) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

promote_coro_targets(occ_sInds, sInds)[source]

Determines which coronograph targets to promote to occulter targets

Parameters:
  • occ_sInds (numpy array) – occulter targets

  • sInds (numpy array) – coronograph targets

Returns:

updated occulter targets

Return type:

occ_sInds (numpy array)

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (in MJD) –

Returns:

sInds - indices of stars still in observation list

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection

Parameters:
  • detected (smin - minimum separation of the planet to star of planet just) –

  • detected

  • - (det) –

  • star (pInds - Indices of planets around target) –

Returns:

updates self.starRevisit attribute

EXOSIMS.SurveySimulation.tieredScheduler_sotoSS module

class EXOSIMS.SurveySimulation.tieredScheduler_sotoSS.tieredScheduler_sotoSS(coeffs=[2, 1, 8, 4, 1, 1], occHIPs=[], topstars=0, revisit_wait=91.25, revisit_weight=1.0, GAPortion=0.25, int_inflection=False, GA_simult_det_fraction=0.07, promote_hz_stars=False, phase1_end=365, n_det_remove=3, n_det_min=3, occ_max_visits=3, **specs)[source]

Bases: SurveySimulation

tieredScheduler

This class implements a tiered scheduler that independantly schedules the observatory while the starshade slews to its next target.

Parameters:
  • coeffs (iterable 6x1) – Cost function coefficients: slew distance, completeness, deep-dive least visited ramp, deep-dive unvisited ramp, unvisited ramp, and least-visited ramp

  • occHIPs (iterable nx1) – List of star HIP numbers to initialize occulter target list.

  • topstars (integer) – Number of HIP numbers to recieve preferential treatment.

  • revisit_wait (float) – Wait time threshold for star revisits.

  • revisit_weight (float) – Weight used to increase preference for coronograph revisits.

  • GAPortion (float) – Portion of mission time used for general astrophysics.

  • **specs – user specified values

calc_int_inflection(t_sInds, fEZ, startTime, WA, mode, ischar=False)[source]

Calculate integration time based on inflection point of Completeness as a function of int_time

Parameters:
  • t_sInds (integer array) – Indices of the target stars

  • fEZ (astropy Quantity array) – Surface brightness of exo-zodiacal light in units of 1/arcsec2

  • startTime (astropy Quantity array) – Surface brightness of local zodiacal light in units of 1/arcsec2

  • WA (astropy Quantity) – Working angle of the planet of interest in units of arcsec

  • mode (dict) – Selected observing mode

Returns:

The suggested integration time

Return type:

int_times (astropy quantity array)

choose_next_occulter_target(old_occ_sInd, occ_sInds, intTimes)[source]

Choose next target for the occulter based on truncated depth first search of linear cost function.

Parameters:
  • old_occ_sInd (integer) – Index of the previous target star

  • occ_sInds (integer array) – Indices of available targets

  • intTimes (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

choose_next_telescope_target(old_sInd, sInds, t_dets)[source]

Choose next telescope target based on star completeness and integration time.

Parameters:
  • old_sInd (integer) – Index of the previous target star

  • sInds (integer array) – Indices of available targets

  • t_dets (astropy Quantity array) – Integration times for detection in units of day

Returns:

Index of next target star

Return type:

sInd (integer)

next_target(old_sInd, old_occ_sInd, det_mode, char_mode)[source]

Finds index of next target star and calculates its integration time.

This method chooses the next target star index based on which stars are available, their integration time, and maximum completeness. Returns None if no target could be found.

Parameters:
  • old_sInd (integer) – Index of the previous target star for the telescope

  • old_occ_sInd (integer) – Index of the previous target star for the occulter

  • det_mode (dict) – Selected observing mode for detection

  • char_mode (dict) – Selected observing mode for characterization

Returns:

DRM (dicts):

Contains the results of survey simulation

sInd (integer):

Index of next target star. Defaults to None.

occ_sInd (integer):

Index of next occulter target star. Defaults to None.

t_det (astropy Quantity):

Selected star integration time for detection in units of day. Defaults to None.

Return type:

tuple

observation_characterization(sInd, mode)[source]

Finds if characterizations are possible and relevant information

Parameters:
  • sInd (integer) – Integer index of the star of interest

  • mode (dict) – Selected observing mode for characterization

Returns:

Characterization status for each planet orbiting the observed

target star including False Alarm if any, where 1 is full spectrum, -1 partial spectrum, and 0 not characterized

fZ (astropy Quantity):

Surface brightness of local zodiacal light in units of 1/arcsec2

systemParams (dict):

Dictionary of time-dependant planet properties averaged over the duration of the integration

SNR (float ndarray):

Characterization signal-to-noise ratio of the observable planets. Defaults to None.

intTime (astropy Quantity):

Selected star characterization time in units of day. Defaults to None.

Return type:

characterized (integer list)

promote_coro_targets(occ_sInds, sInds)[source]

Determines which coronograph targets to promote to occulter targets :param occ_sInds: occulter targets :type occ_sInds: numpy array :param sInds: coronograph targets :type sInds: numpy array

Returns:

updated occulter targets

Return type:

occ_sInds (numpy array)

revisitFilter(sInds, tmpCurrentTimeNorm)[source]

Helper method for Overloading Revisit Filtering

Parameters:
  • list (sInds - indices of stars still in observation) –

  • tmpCurrentTimeNorm (MJD) –

  • form (in MJD) –

Returns:

sInds - indices of stars still in observation list

run_sim()[source]

Performs the survey simulation

Returns:

Message printed at the end of a survey simulation.

Return type:

mission_end (string)

scheduleRevisit(sInd, smin, det, pInds)[source]

A Helper Method for scheduling revisits after observation detection :param sInd - sInd of the star just detected: :param smin - minimum separation of the planet to star of planet just detected: :param det -: :param pInds - Indices of planets around target star:

Returns:

updates self.starRevisit attribute