Skip to content

Releases: dsavransky/EXOSIMS

v2.1.3

10 Mar 16:22
4ebe773
Compare
Choose a tag to compare

Bugfix release correcting extraneous calc_dMag_per_intTime method from Nemati_2019 optical system

v2.1.2

23 Feb 15:58
af989aa
Compare
Choose a tag to compare

Minor bugfix release correcting bad interpolation errors in Nemati_2019 optical system. All interpolants which could potentially produce (non-phyiscal) negative values with cubic splines have been changed to linear fits instead.

Note: v2.1.1 was only released on pypi and not github. It is identical to 2.1.0. Starting with this version, all releases should be automatically synchronized between github and pypi.

v2.1.0

07 Oct 18:19
Compare
Choose a tag to compare

New features:

  • New module SubtypeCompleteness which calculates the probability that a detected planet belongs to a given sub-population.
  • New option to specify common inclination for whole target systems (i.e., define an ecliptic) with individual planet inclinations distributed about it. The exozodiacal cloud is assumed to be aligned with the system inclination for all individual planet calculations.
  • Option to set number of exozodi for each individual target system
  • New optical system: Nemati2019, implementing the calculations in the famous spreadsheet
  • New method for computing stellar spectra based on Pickles atlas (spectral data is now packaged with EXOSIMS). More atlases coming in subsequent releases.

Critical Bug Fixes:

  • Full compatibility with astropy 4.0+ and numpy 1.16+ Fix. Everything works in Python 2.7.8+ and 3.6/3.7/3.8.

Notes:

  • Starting with this release, EXOSIMS will be available on PyPI
  • Python 2 support will be dropped within the next two releases.

Acknowledgements:
This release includes significant contributions from Corey Spohn, Dean Keithly, Gabriel Soto, and Walker Dula. Thanks also to Rhonda Morgan, Mike Turmon, and Ewan Douglas.

v2.0.0

07 Jan 00:35
Compare
Choose a tag to compare

This release explicitly breaks backwards compatibility with v1.4, and is incompatible with astropy v4.0 (requirements and setup both specify astropy<4.0). A subsequent minor release will add astropy 4.0 compatibility. This release is largely similar to the recent SDET Final Report release, but does contain algorithmic differences (although is fully compatible in terms of all interfaces).

Many thanks to Dean Keithly, Gabriel Soto, Walker Dula, Mike Turmon, and Rhonda Morgan for their numerous contributions.

Major Changes

EXOSIMS is now python 3 compatible and pip installable! EXOSIMS will be added to the python package index upon the next release (as soon as astropy 4.0 compatibility is fixed). We will maintain python 2 compatibility for the next few releases, but will drop python 2.7 support when required modules (astropy, scipy, etc.) become incompatible with their last-released python 2 supporting versions. There will be a final, stable python 2.7-compatible release prior to end of support.

Compiled documentation is now being hosted on readthedocs.io and is not packaged with the source code (only documentation sources are packaged).

Prototypes

All prototypes have been updated with bug fixes and algorithmic updates. In particular, the OpticalSystem and TargetList prototype now supports many more inputs, including tracking of close companions for target stars. The SurveySimulation prototype has had multiple additional sections or run_sim abstracted into their own methods to allow for easier overloading.

PlanetPopulation

Bug fixes throughout the existing planet populations. Multiple new planet populations have been added including:

  • AlbedoByRadius - allows for albedo to be drawn as a function of planet radii
  • DulzPlavchan - Modification of the SAG13 extrapolation incorporating dynamical stability constraints, based on work by Shannon Dulz and Peter Plavchan (in prep).

StarCatalog

EXOCAT has been updated and allow for combination of the existing data with updated WDS entries for close companions.

SurveySimulation

Added multiple SDET-specific schedulers. All SLSQP-based schedulers, which were previously separate classes, have been combined into a single module.

TargetList

New GaiaCatTargetList allows for Gaia-based catalogs.

util

New plotting and analysis utilities, including keepout map plotting and yield histogram plotting.

ExEP SDET Final Report Release

06 Nov 15:41
0fa4b13
Compare
Choose a tag to compare

The code in this release was used for all of the EXOSIMS simulations in the final report of the Exoplanet Exploration Office's Standards Definitions and Evaluation Team. It is intended to produce a snapshot of EXOSIMS as used in all of the SDET analyses to ensure future reproducibility of results.

A description of the team and their task is available at https://exoplanets.nasa.gov/system/internal_resources/details/original/562_ExSDET_Charter.pdf

The final report and associated results are available at https://exoplanets.nasa.gov/exep/studies/sdet/

This release contains a rollup of pending updates to be included in the upcoming v2.0, along with unique features used specifically in the final report analyses (as such, this release is distinct from the 2.0 release and is not guaranteed to produce the same exact results).

Additional plotting and execution utilities developed at JPL and used in the generation of the final report results are available at https://github.com/turmon/Exosims-Sandbox

This release includes major contributions from Walker Dula, Mike Turmon, and Rhonda Morgan.

EXOSIMS v1.4

13 Sep 15:02
e6bd41c
Compare
Choose a tag to compare

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

v1.35 Bugfix Rollup and New Schedulers

09 Apr 11:03
Compare
Choose a tag to compare

Rollup of the last few months of bugfixes (in particular targeted at improved reproducibility when setting the random seed, and ensuring proper use of scaleOrbits) as well as new, non-ICD changing features (mostly new input parameters).

Specific updates:

  • Fixing scaleOrbits support in BrownCompleteness.
  • Adding support for albedo calculated from planet radius in GarrettCompleteness and removing unused pgrand method.
  • Removing random seed generation from MissionSim (offloaded to SurveySimulation) and adding alias from MissionSim.seed to SurveySimulation.seed.
  • Adding pixelScale as an input parameter in the instrument dictionary in the OpticalSystem prototype.
  • Adding support for albedo calcualted from planet radius in PlanetPopulation prototype (pfromRp boolean).
  • Adding Min input to SimulatedUniverse prototype and KeplerLike and SAG13 implementations (allows for setting all initial mean anomalies to given value).
  • Adding error checking to SimulatedUniverse and TargetList prototypes to ensure KnownRV family of modules is properly used.
  • Update to algorithm used in set_planet_phase in SimulatedUniverse prototype.
  • Adding scaleWAdMag input (boolean) to SurveySimulation to toggle overwriting WAint and dMagint based on stellar properties.
  • Moving order of random seed generation in SurveySimulation to ensure DRM repeatability.
  • Adding dt_max input (float) to SurveySimulation to allow for variable time windows when selecting which targets are 'currently' scheduled for revisit.
  • Adding new methods scheduleRevisit and revisitFilter to SurveySimulation to make overloading revisit logic easier.
  • Cleanup of reset_sim method in SurveySimulation to ensure reproduceability.
  • Adding sane handling of equal xmin, xmax in InverseTransformSampler.
  • Removing use of np.flip in waypoint utility
  • Adding AlbedoByRadius and JupiterTwin planet populations.
  • Adding Walker Dula's det_only, char_only and tiered schedulers.
  • Adding builddocs.bat, porting builddocs.sh to Windows systems.

Release Fix April 9, 2018: A bug was fixed in this release that prevented simulations from running properly after reset.

v1.34

14 Dec 21:02
33c1530
Compare
Choose a tag to compare

The primary purpose of this release is to fix the Observatory reset bug encountered when running starshade DRMs in parallel.

New functionality: the ability to specify a different planetpopulation and planetphysicalmodel (along with associated parameters) for completeness calculations.

New functionality: waypoint calculations courtesy of Walker Dula.

v1.33: Bugfixes and New Functionality

04 Oct 15:04
Compare
Choose a tag to compare

Yet another bugfix release, specifically targeting the calculation of completeness and its gradient as functions of integration time.

Completeness

comp_per_intTime and dcomp_dt have been updated to take optional C_b and C_sp arguments when using the same background count values for many iterations of these calculations. Both routines now expect all inputs to be either arrays of length N or scalars (in which case they are padded out to N. Both return arrays of length N. dcomp_dt always returns astropy quantities with units 1/time.

OpticalSystem

calc_dMag_per_intTime and ddMag_dt no also take the same optional C_b and C_sp inputs, and expect all array inputs to be of equal length.

New Functionality

MissionSim now has a checkScript method, provided by Walker Dula, to automate the sanity-checking of JSON scripts.

New SurveySimulation SLSQPScheduler optimizes integration times to maximize completeness.
NB: This implementation requires the or-tools package, which may be installed from PyPI (pip install ortools).

More 1.3 Bugfixes

22 Sep 15:34
Compare
Choose a tag to compare

Specifically fixing bugs #80 and #82.