Skip to content

EXOSIMS v1.4

Compare
Choose a tag to compare
@dsavransky dsavransky released this 13 Sep 15:02
· 2146 commits to master since this release
e6bd41c

EXOSIMS v1.4

This release represents a significant set of updates from v1.3x and explicitly breaks backwards compatibility. Forwards compatibility in terms of JSON scripts and cached products is not broken, but certain default values have changed and so unexpected behavior may occur when using old inputs/cached products.

The number of cached products has increased in this release, with the addition of cached keepout maps and zodiacal light fluxes. This allows for simulations to execute more rapidly than before, but also means that the initial setup time has increased.

To reduce versioning confusion, the v1.4 releases will adopt the convention of v1.4.x version numbers. All releases under v1.4.x are guaranteed to be fully compatible. Only bugfixes and new feature additions will be released under these version numbers.

The next planned release to EXOSIMS is version 2.0.0, which will add Python 3 support. If a critical interface error is found before that release, there will be a v1.5 intermediate release.

This release represents significant contributions by Dean Keithly, Gabriel Soto, Daniel Garrett and Walker Dula. Many thanks to them and all other contributors.

Changes from v1.3

Github/Travis/Coveralls/Testing-specific Changes

  • Added templates for bug and enhancement issues
  • Coverage tests exclude test frameworks and cython setup files
  • Test framework and travis setup are now included in the distribution for easier local testing
  • Moving ICD code to its own repository (EXOSIMS-ICD) and moving ICD pdf to documentation folder
  • Multiple new end-to-end tests added

Global

  • In MissionSim, added seed keyword input to reset_sim wrapper
  • All _outspec variables have been redefined as local class variables in the prototype constructors (previously these were all globals)
  • reset_sim has been moved to before run_sim in all run_one instances to ensure that a unique seed is generated on all workers when running in parallel.
  • In all prototypes, the outspec is now populated only with specific values, rather than all object attributes to avoid polluting the outspec with extraneous information.

Completeness

  • Fixed indexing bug in calculation forcing luminosities to be strictly positive values when scaleOrbits is true

Observatory

  • Added ObservatoryL2Halo, inheriting prototype. This is the new base class for all Halo-orbit observatories.
  • Added SotoStarshade, inheriting ObservatoryL2Halo. This is the new base class for all Halo-orbit external occulter missions. Key features are the generation of a delta-V map to allow for fast, accurate calculations of fuel use for variable-length slews between targets. N.B.: All calculations in this class assume impulsive maneuvers, and this utility deprecates the defBurnPortion keyword.
  • Deleted WFIRSTObservatory. All unique functionality from this class has been moved to the prototype.
  • WFIRSTObservatoryL2 is now strictly a wrapper for ObservatoryL2Halo, which it directly inherits.
  • The prototype has been extensively reworked to absorb functionality previously in WFIRSTObservatory, and to add utilities for generating and caching keepout maps (komaps). A new utility method has been added: find_nextObsWindow to efficiently find the next observable (out of keepout) set of targets. See ICD for details.

PlanetPopulation

  • KeplerLike1 has been updated to correct the normalization on the piece-wise radius distribution. The default value for the esigma keyword input has been changed to 0.175/np.sqrt(np.pi/2.) (previously 0.25). The sma normalization has been changed to use the range of 8 to 85 days, matching the data set in the Fressin (2012) paper (previously it was 0 to 85). Albedo is now generated from the sma via a call to the PlanetPhysicalModel calc_albedo_from_sma method.
  • SAG13 - the joint generation of the extrapolated sma/radius values has been extensively reworked. See Garrett et al (2017, 2018) for details. The controlling parameters of the grid are now: Gamma, alpha,beta, Rplim (changed from eta2D, lnRp,lnT,Trange, Tknee) - see the doc strings for details.

StarCatalog

  • New implementation: FakeCatalog added to help in generation of generalized delta-V maps. Generates spatially isotropic distribution of stars on the sky.

SurveySimulation

  • There have been multiple architectural changes to run_sim. In particular, time is only allocated in subcalls to observation_detection, observation_characterization, and use is made of new utility functions in Observatory and elsewhere. Multiple portions of run_sim have also been abstracted to separate methods to ease overloading. See ICD for all the details. New methods: refineOcculterSlews, findAllowableOcculterSlews, and choose OcculterSlewTimes have been added to allow for variable time occulter slewing.
  • Added 9 variants of SLSQPScheduler with varying selection criteria. See docstrings for details.

SurveyEnsemble

  • Added ability for IPClusterEnsemble to terminate hanging runs.

TargetList

  • The prototype constructor now checks to ensure that KnownRVPlanets is only being used with KnownRVPlanetsTargetList.
  • Added binary filter and filterBinaries input keyword.

TimeKeeping

  • Massive reworking of observing blocks, including ability to input specific observing block schedule via csv file on disk. See ICD for all the details.

ZodiacalLight

  • Added pre-calculation and caching of local zodi values.
  • Added calculation of max and min zodi levels (calcfZmax, calcfZmin) in Stark

Utilities

  • New makeSimilarScripts utility for auto-generating sets of scripts with one or more parameter varying
  • New runQueue utility for executing multiple scripts in a queue