EXOSIMS.SurveySimulation package

Submodules

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.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

JEZ (astropy Quantity):

Intensity of exo-zodiacal light in units of ph/s/m2/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

JEZ (astropy Quantity):

Intensity of exo-zodiacal light in units of ph/s/m2/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

JEZ (astropy.units.Quantity(numpy.ndarray(float))):

Intensity of exo-zodiacal light in units of photons/s/m2/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_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

JEZ (astropy Quantity):

Intensity of exo-zodiacal light in units of ph/s/m2/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_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

JEZ (astropy.units.Quantity(numpy.ndarray(float))):

Intensity of exo-zodiacal light in units of photons/s/m2/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.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, revisit_wait=None, nokoMap=False, nofZ=False, cachedir=None, defaultAddExoplanetObsTime=True, find_known_RV=False, include_known_RV=None, make_debug_bird_plots=False, debug_plot_path=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.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, JEZ, 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

  • JEZ (astropy Quantity) – Intensity of exo-zodiacal light in units of ph/s/m2/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

JEZ (astropy.units.Quantity(numpy.ndarray(float))):

Intensity of exo-zodiacal light in units of photons/s/m2/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)