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)
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:
- 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)
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)
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_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)
- 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)
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:
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)
- 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:
- 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)
- 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:
- 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:
- 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:
- 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
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)
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:
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:
- 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)
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:
- 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)
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:
- 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
- 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)
- 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:
- 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:
- 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:
- observation_characterization(sInd, mode)[source]
Finds if characterizations are possible and relevant information
- Parameters:
- 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:
- 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
- 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:
- 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:
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:
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:
- 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:
- 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:
- 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:
- 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:
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:
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:
- 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:
- 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:
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:
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:
- 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:
- 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:
- 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:
- 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