Exosims

Latest version: v3.2.2

Safety actively analyzes 638346 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 6

3.1.3

Bugfix rollup:

- `BrownCompleteness` cache name hash previously included both cachedir and outspec in the argument string, which would cause a new cachename to be generated if using a different cache directory. These have now been removed from the hash generation, making completeness cache products more portable.
- Updated `PlanetPopulation` prototype to automatically add only input arguments to the outspec. This requires all inputs from all implementations to be added as attributes. All relevant implementations have been updated accordingly.
- `SurveySimulation` prototype `observation_characterization` had an intermittent failure mode where `startTime` would be beyond the end of mission, causing an indexing error in the `koMap`. An explicit check for out of bounds times has been added.

3.1.2

Bugfix rollup:

- Fixes fZ local minimum indexing off-by-one error in method `calcfZmin` or `ZodiacalLight` Prototype and `Stark` implementation.
- Makes `process_opticalsys_package` more robust to deviations from standard package definition: allows for `PIXELSCALE` keywords to be missing in diameter and PSF offset lists, and allows PSF offsets to be 1D.
- Updates template matching in `starFlux` method in `TargetList` prototype to prefer matching within the same luminosity class (when possible).
- Fixes minor typo in error message in `OpticalSystem`.

**Full Changelog**: https://github.com/dsavransky/EXOSIMS/compare/v3.1.1...v3.1.2

3.1.1

Minor bugfix release, addressing an issue encountered in `process_opticalsys_package` in cases where the intensity map stellar diameter array is stored as a row rather than column array in the input FITS file. New behavior is to flatten the array, so long as it has only 1 non-singleton dimension.

Also adding a few useful attributes to `TargetList`:

- `default_mode`: The detection mode, or the first characterization mode if `filter_for_char` is toggled.
- `int_tmin`: The integration time associated with `int_dMag` assuming the global local zodi minimum value.

3.1.0

This release includes a fairly major reworking of the `TargetList`, `OpticalSystem`, and `ZodiacalLight` prototypes, along with associated updates to multiple downstream implementations.

The `OpticalSystem` prototype is updated to perform a basic set of integration time calculations assuming a non-photon counting model (a photon counting model is provided, as before, by the `Nemati` implementation). This replaces the original behavior where the prototype generated fake integration times unrelated to the inputs. The `OpticalSystem` initialization is restructured to allow for easier expansion of inputs in downstream implementations, and to also keep track of allowed keywords in the various `OpticalSystem` dictionaries (i.e., `scienceInstruments`, `starlightSuppressionSystems`, and `observingModes`).

In TargetList, calculation of stellar fluxes is significantly updated via the inclusion of the `synphot` package as an upstream dependency. All relevant calculations using stellar template spectra and blackbody spectra are offloaded to `synphot`. Every `OpticalSystem` `observingMode` now includes a `synphot` bandpass model. There are also numerous updates to caching mechanisms to ensure proper caching of computed products, and the addition of computation of stellar diameters and effective temperatures for *all* targets.

`OpticalSystem` Changes

- All `Nemati` and `Nemati2019` specific inputs are moved to those classes and removed from prototype.
- New `starlightSuppressionSystem` allowed inputs: `input_angle_units` (allows specification of input angle units as physical angles or lambda/D units), `core_platescale_units` (same, for `core_platescale`), `bandpass_model` and `bandpass_step` specify `observingMode` bandpass, `use_core_thruput_for_ez` toggle use of `core_thruput` vs `occ_trans` in computing exozodi contribution, `csv_angsep_colname` allows specification of angular separation column header for CSV table data.
- New attributes: `allowed_observingMode_kws`, `allowed_scienceInstrument_kws`, allowed_starlightSuppressionSystem_kws` used to track allowable inputs for each dictionary type. `vega_spectrum` contains Vega's spectrum.
- Change in behavior: if `core_mean_intensity` is set for a `starlightSuppressionSystem`, the `core_contrast` is *not* populated from defaults (and is set to None if not in the input dictionary). If `core_mean_intensity` is not None `core_platescale` may not be none (error is raised).
- New methods: `populate_starlightSuppressionSystems`, `populate_starlightSuppressionSystems_extra`, `populate_scienceInstruments`, `populate_scienceInstruments_extra`, `populate_observingModes`, and `populate_observingModes_extra` offload functionality previously in `__init__` and make it easier to add new dictionary keys in inheriting implementations.
- New `observingMode` keys: `F0` (integration of Vega's spectrum over the observing bandpass), `attenuation` (product of instrument and system `optics` values), `losses` (product of pupil area, QE, attenuation, and accounts for spectral resolution of spectrometers).
- New method `get_core_mean_intensity` adds support for stellar-diameter core mean intensity table inputs. `core_mean_intensity` lambda functions now take 3 inputs: wavelength, angular separation, and stellar diameter, the last of which defaults to 0 (unresolved).
- New method `get_angle_unit_from_header` for processing angle units from inputs and FITS headers.
- Updates to `get_coro_param` to allow more flexibility in processing FITS and CSV files. Adding special handling of `core_area` such that the lambda function returns units (arcsec^2). **All interpolants are now linear by default and occulter interpolants do not have inputs scaled by wavelength.**
- New helper method `Cp_Cb_Csp_helper` offloads most of `Cp_Cb_Csp` functionality for easier overloading in `Nemati`.
- `calc_intTime` implements the basic integration time model from Garrett et al. 2016/Nemati et al. 2014 (without photon counting effects). Infeasible integration times are now returned as NaN (not zero).
- `int_time_denom_obj` moved to `Nemati`.
- New method: `calc_saturation_dMag` computes saturation delta mag.

`StarCatalog` Changes

- New input `VmagFill` (default 0.1) sets all Vmag values to avoid all zeros (which causes problems in `TargetList`).

`SurveySimulation` Changes

- Removing redundant calculation of limiting delta mag (this is done via the saturation dMag in `TargetList` now).

`TargetList` Changes

- New input `fillMissingBandMags` toggles filling missing band magnitudes (new flux calculation makes this generally unnecessary).
- New helper methods `load_spectral_catalog`, `get_template_spectrum`, and `load_standard_bands` for spectral template library handling.
- Rationalized helper methods: `stellar_Teff`, `stellar_diameter` and `stellar_mass` to all behave the same - all now generate attribute arrays of the relevant properties by default.
- Methods `F0`, `starF0`, and `starMag` are deprecated and replaced with new method `starFlux` which directly computes the stellar flux in a given band.
- Method `calc_intCutoff_dMag` deprecated and functionality folded into `calc_saturation_and_intCutoff_vals`.
- Method `calc_saturation_dMag` deprecated and functionality moved into `OpticalSystem`.

`ZodiacalLight` Changes

- `fZmap` is now computed to match the time step of the `koMap`s.
- `fZQuads` is deprecated and replaced with two dictionaries: `fZmins` and `fZtypes`, which encode the same information in a more easily addressable fashion.
- `calclogf` replaced with `load_zodi_wavelength_data`, which is always called from the Prototype `__init__`.
- `calcfbetaInput` replaced with `load_zodi_spatial_data`, which is always called from the Prototype `__init__`.
- New method `zodi_intensity_at_wavelength` computes the zodiacal light intensity as a function of wavelength
- New method `zodi_color_correction_factor` to compute the zodiacal light color correction factor
- New method `zodi_intensity_at_location` computes the zodiacal light intensity at a particular solar lat/lon at 500 nm
- New method `zodi_latitudinal_correction_factor` computes the zodiacal light latitudinal correction factor

New Utilities

- `input_script_check` checks JSON scripts against their module specification for spurious/deprecated keywords
- `photometricModels` collection of useful photometric models and extensions to `synphot` used by `TargetList`
- `radialfun` collection of routines for radial averaging and aperture arithmetic
- `process_opticalsys_package` turns the standard Stark/Krist yield model coronagraph input files into EXOSIMS-standard inputs.

Internals

- Massive documentation updates. Switching from drawio diagrams to mermaid flowcharts.
- `setup.py` now reads requirements directly from `requirements.txt`.
- Added `.readthedocs.yaml` for better control over documentation build.

**Full Changelog**: https://github.com/dsavransky/EXOSIMS/compare/v3.0.4...v3.1.0-alpha

3.1.0alpha

3.0.4

Bugfix rollup release addressing the following issues:

- In the ``TargetList`` prototype the ``calc_saturation_dMag`` function always assumed that the denominator of the integration time used the model from Nemati. But the ``calc_intTime`` function treats occulters differently from coronagraphs. This logic was added to the ``calc_saturation_dMag`` function so that the values returned are infinite instead when ignoring speckle noise.
- In ``GarrettCompleteness`` there was an error in the handling of infinite ``smax`` values, which are valid for occulters. Added a check that changes infinite ``smax`` values to the max float value.
- In ``HIPfromSimbad`` fixed a bug that was caused by the distance line being commented out (and fixed the distance units).

Page 2 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.