Skip to content

v1.7.0 - Locked parameters and vectorization - #28

Merged
eleonoraalei merged 7 commits into
mainfrom
vectorization
Jul 13, 2026
Merged

v1.7.0 - Locked parameters and vectorization#28
eleonoraalei merged 7 commits into
mainfrom
vectorization

Conversation

@eleonoraalei

Copy link
Copy Markdown
Collaborator

Changelog

[1.7.0] - 2026-07-13

Breaking Changes

  • Locked component parameters in EAC/YIP mode: Telescope, detector, and coronagraph values are no longer user-definable by default when using EAC/YIP configurations. These now strictly take default values from YAML/YIP files to ensure consistency.
    • To customize components, use ToyModel mode instead.
    • To override specific parameters, use the new parameters['overrides'] = [...] list (defaults to None). The Imaging Tutorial has been updated accordingly to show an example.
    • Impact: Users performing architecture trades with EAC/YIP configurations will need to update their workflows. See migration notes below.
  • nchannels default changed from 2 to 1: Previously, the code assumed simultaneous observation in 2 channels for all EAC modes, producing overly optimistic time estimates. This has now been changed to 1 and will be entirely removed in a future release.
    • Impact: Exposure time estimates for EAC1 users will now be more accurate (and will differ from previous results). Proper spectral channel/filter handling is planned for a future release.
  • Removed minimum_IWA and maximum_OWA shortcut checks in exposure time calculations. These optimizations are no longer needed due to vectorization performance gains, and their removal eliminates a source of user confusion.

Bug Fixes

  • Fixed exposure time calculation to return accurate validation variables across the entire spectrum, instead of only the last wavelength point (previously overwritten in a loop).
  • Fixed mag, deltamag, and SNR not being recalculated or regridded correctly when regrid=True.
  • Fixed a rebinning issue in physics_validation where detector values matching the original wavelength grid incorrectly failed validation.
  • Fixed cases where parameters were silently defaulted without user awareness due to missing calls to parse_input.
  • Resolved #11 and #21.
  • Closed #7.

Performance Improvements

  • Vectorized exposure time calculation — ~10x speed increase by replacing per-wavelength looping with array-based operations.
  • Vectorized calc_exozodi_flux and calc_zodi_flux.

New Features / Improvements

  • Introduced LOCKED_KEYS for consistent, config-driven component definitions in EAC/YIP mode (see Breaking Changes).
  • Enforced parse_parameters calls at every function that touches parameters, adopting a "better-safe-than-sorry" approach. Users no longer need to manually call parse_parameters. If they do, the _parser flag will protect the parameters dictionary from being parsed twice.
  • Refactored regrid_spectra and related interpolation functions; all relevant variables are now properly regridded.
  • Renamed parse_list_paramnormalize_list_shapes for clarity.
  • Code now fails clearly when wavelength input is ambiguous, rather than silently proceeding with incorrect assumptions.
  • npix_multiplier is now handled as a scalar internally.
  • Added temporary regridding support for ifs_eff. This will change in the upcoming major release (see Looking Ahead).
  • Expanded logger.debug messages throughout to clarify which values are used and their source (default vs. user-provided).

Testing & Documentation

  • Fully unit tested new exposure time and parameter parsing logic.
  • Verified and updated tutorials.
  • Updated README and glossary to reflect new locked-parameter behavior.

Migration Notes

  • If you use EAC/YIP mode and modify component parameters directly: You must now use parameters['overrides'] to specify which parameters to override. Default behavior (no overrides) is unaffected.
  • If you rely on nchannels=2 behavior for EAC1: Exposure time results will change. Please re-validate any saved results generated with previous versions. Reproduce previous results by manually setting nchannels=2 in input parameters.

Looking Ahead

This release lays groundwork for upcoming changes, including proper spectral channel/filter treatment. Additional breaking changes are planned for a future major release (v2.0.0) — deprecation warnings will be added in upcoming minor releases to help users prepare in advance.

…reviously. Vectorized exposure_time_calculator.py. Required parameters when regrid_wavelength is True. Removed minimum_IWA and maximum_OWA.
…ry. Vectorialized calc_exozodi_flux and calc_zodi_flux. Added parse_parameters at each load_configuration. Updated parsing of necessary variables. Refactored regrid_spectra function and interpolation functions. Regridded all relevant variables. Renamed parse_list_param to normalize_list_shapes. Added extra logs. Unit tested.
…te tutorial). Made the code fail if input is unclear with respect to lambda. npix_multiplier made scalar. Regridding ifs_eff (temporary). Added _parser flag for legacy users.
…up: Noticing disagreement in output between main spectroscopy_tutorial and branch spectroscopy_tutorial.
@eleonoraalei
eleonoraalei merged commit 465f622 into main Jul 13, 2026
4 checks passed
@eleonoraalei
eleonoraalei deleted the vectorization branch July 13, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hardcoded IWA/OWA Change keyword for spectroscopy mode

1 participant