Releases: AstarVienna/ScopeSim
Version 0.11.1
What's Changed
API Changes
Bugs fixed
- Rename
Effect.__getitem__()➡️.get_from_meta()by @teutoburg in #815 - Improve handling of BUNIT in FOV by @teutoburg in #822
- Fix BUNIT not added for Source from image + flux by @teutoburg in #823
- Catch extra special units by @teutoburg in #824
- No ABmag in BUNIT by @teutoburg in #826
- Use lower case photlam for headers by @oczoske in #827
Changes to or addition of Effects
- Inter-pixel capacitance effect by @oczoske in #806
- Compute METIS/LMS predisperser angle for given central wavelength by @oczoske in #812
- Local TER library by @oczoske in #765
Dependency Changes
- Bump jupyterlab from 4.2.5 to 4.4.8 by @dependabot[bot] in #805
- Bump sphinx from 7.3.7 to 8.1.3 by @dependabot[bot] in #809
Documentation Improvements
- Fix some docstring formatting, add version info by @teutoburg in #828
Other Changes
- Refactor data collections download by @teutoburg in #810
- Replace
np.trapzwithscipy.integrate.trapezoidby @teutoburg in #813 - No longer ignore some warnings by @teutoburg in #814
Full Changelog: v0.11.0...v0.11.1
Version 0.11.0
Large release in preparation of the ScopeSim Workshop happening next week. See below for important changes and deprecations.
Highlights
- Finally add support for Python 3.13 and Numpy 2.
- Partially resolve circular dependency between ScopeSim and ScopeSim_Templates
- Several new effects in preparation for MOSAIC simulations (#796).
- New and improved plotting methods on some classes for easier and nicer visualisation of results.
What's Changed
Deprecations
Download functionality
- Deprecate downloading IRDB packages directly from GitHub by @teutoburg in #727
Installing IRDB packages directly from GitHub using download_packages() is deprecated. We're not aware that this functionality saw any significant use by the community. If you do need to install unreleased IRDB packages from the GitHub repository (and you know why you need that!), the same result can be achieved by cloning the repository (or your own fork) and then use sim.link_irdb(<path_to_clone>) to point ScopeSim there. That solution has the added benefit that you can keep thing in sync through git alone, which is more reliable anyway. The relevant functionality will be removed in version 0.12.0, at which point attempting to use download_packages() with a GitHub ref will result in an error.
Passing a list as the first argument to download_example_data() has been deprecated since version 0.8.4 and will now result in a TypeError being raised. This is to catch any remaining uses of the old call signature of this function. From version 0.12.0 onwards, arguments will be silently forwarded to the file retriever, meaning if a list is still passed at that point, it will result in an error further downstream.
Source Fields
- Deprecate direct attribute access in
SourceFieldby @teutoburg in #733
After the SourceField refactor in version 0.9.0, it was still possible to access any item of the underlying data structur (Table or ImageHDU) directly through the SourceField via a standard dict-like syntax. This was retained for backwards compatibility, because some code still relied on this functionality. It does however have the potential to leade to some hard-to-track bugs and is generally an unclean solution, which is why we have been working behind the scenes to slowly remove all internal code that still uses this feature. Now because this is related to how the Source object might be put together in user code, we're using a more carefuly approach in deprecating this, to avoid breaking existing code for no urgent reason. We're thus activating a PendingDeprecationWarning now, which should give users an advanced warning that we will probably fully deprecate this in the future. If you do encounter this warning, please try to use the .field attribute to explicitly access the underlying data structur before using dict-like lookup on it.
API Changes
- Improve handling of DeprecationWarnings by @teutoburg in #730
- Remove obsolete code by @teutoburg in #737
- Accept filename and relative path as well as absolute path by @oczoske in #758
Bugs fixed
- Fix creation of cube source from file name by @teutoburg in #559
- Fix WCU radiometry by @oczoske in #754
- Use
RegularGridInterpolatorfor proper extrapolation of small PSF images by @oczoske in #798
Changes to or addition of Effects
New Features or Improvements
- Add plotter utils functions by @teutoburg in #734
- Add
.plot()method toImagePlaneby @teutoburg in #735 - Improve cube plotter by @teutoburg in #736
Dependency Changes
- Bump synphot from 1.5.0 to 1.6.0 by @teutoburg in #713
- Minor bumps on a few dependencies by @teutoburg in #718
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #756
- Update internal dependencies more often by @teutoburg in #769
- Bump pyyaml from 6.0.1 to 6.0.2 by @dependabot[bot] in #771
- Bump lxml from 5.2.2 to 5.4.0 by @dependabot[bot] in #772
- Refine dependabot configuration by @teutoburg in #780
- Bump the dev-dependencies group with 8 updates by @dependabot[bot] in #782
- Update to Poetry 2 based pyproject.toml, update workflows by @teutoburg in #783
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #786
- Bump packaging from 23.2 to 25.0 by @teutoburg in #794
- Bump astar-utils from 0.3.3 to 0.3.4 by @dependabot[bot] in #791
- Remove semicircular dependency on ScopeSim_Templates by @teutoburg in #799
- Allow numpy 2.x by @teutoburg in #784
- Add support for Python 3.13 by @teutoburg in #800
Documentation Improvements
- Remove mention of deprecated GitHub download from docs by @teutoburg in #745
- Fix toml classifiers and URLs by @teutoburg in #795
- Docstrings, formatting, linting by @teutoburg in #802
Other Changes
- Ignore a random DeprecationWarning from Pillow by @teutoburg in #715
- Various typing fixes by @teutoburg in #728
- Fix locally failing mock path test by @teutoburg in #729
- Refactor
flatten_dict()by @teutoburg in #725 - Remove empty
spectrograph.pyby @teutoburg in #738 - Split
FieldOfViewinto subclasses by @teutoburg in #739 - Remove obsolete
fov_manager_utils.pyand tests by @teutoburg in #740 - Remove obsolete
PoorMansHeaderby @teutoburg in #741 - Remove some unused code by @teutoburg in #744
- Remove unused spectroscopy integration tests by @teutoburg in #746
- Remove
Effect.fov_grid()in base class by @teutoburg in #747 - Fix CI comments by @hugobuddel in #748
- Add basic pylint config in pyproject.toml by @teutoburg in #760
- Update workflows by @teutoburg in #801
Full Changelog: v0.10.0...v0.11.0
Version 0.10.0
Large release before the summer, with many improvements and also breaking changes, please make sure to also update your IRDB packages accordingly!
Highlights
- Many new features, including the "simplified IFU cube readout" mode.
- More physical treatment of the "electrons to ADU" process, including different gain values (#604).
- Extensive refactoring and many many bug fixes.
- More consistency across different classes with similar attributes.
- Improved treatment of flux units (still WIP, see #662).
- Many improvements to visual outputs (especially in notebooks), a few new progress bars in long-running loops.
What's Changed
API Changes
- Refactor FOV, add
BackgroundSourceFieldby @teutoburg in #610 - Deprecate
FieldOfView.spectraby @teutoburg in #653 - Deprecate adding a
Tabledirectly to anImagePlaneby @teutoburg in #657 - Implement simplified IFU mode with cube readout by @teutoburg in #654
- Rename
CubeSourceField.waveto.wavesetfor consistency by @teutoburg in #666 - Rename
SummedExposure➡️ExposureIntegrationby @oczoske in #701 - Change
.waveto.wavesetby @oczoske in #707
Bugs fixed
- Fix BUNIT in
FieldOfViewby @teutoburg in #659 - Fix source spectral resolution by @oczoske in #669
- Fix METIS LSF axes orientation by @teutoburg in #673
- Remove "per pixel" from BUNIT for consistency by @teutoburg in #684
- Fix search path when updating inst pkgs path by @teutoburg in #710
Changes to or addition of Effects
- ADConversion effect by @oczoske in #455
- Add pretty repr to
Effectbase class to avoid cmds spam by @teutoburg in #661 - Allow PSF interpolation to be switched off by @teutoburg in #671
- Implement line spread function for IFU cube mode by @oczoske in #670
- Convert to signed float before chopnodcombine by @oczoske in #687
New Features or Improvements
- Add
zeros_from_header()utils function by @teutoburg in #656 - Add
._repr_html_()magic method toOpticalTrainfor nice notebook display by @teutoburg in #667 - Add version requirement support for IRDB packages by @teutoburg in #660
- Use progress bar for spectral traces by @teutoburg in #674
- More logging and another progress bar by @teutoburg in #697
Dependency Changes
- Bump actions/download-artifact from 4.2.1 to 4.3.0 by @dependabot in #647
- Bump numpy, astropy, httpx and synphot by @teutoburg in #652
- Bump setuptools from 75.3.0 to 78.1.1 by @dependabot in #663
- Bump tornado to get rid of security warning by @teutoburg in #664
- Bump versions of internal dependencies by @teutoburg in #672
- Bring dependency versions back in sync with lock file by @teutoburg in #675
- Bump a few minor dependencies by @teutoburg in #681
- Bump requests from 2.32.2 to 2.32.4 by @dependabot in #690
- Bump spextra from 0.41.3 to 0.41.4 by @teutoburg in #695
- Bump urllib3 from 1.26.19 to 2.5.0 by @dependabot in #703
- Bump astar-utils from 0.3.2 to 0.3.3 by @teutoburg in #704
- Bump internal dependencies by @teutoburg in #711
Documentation Improvements
- Add proper error message for removed
Quantizationeffect by @teutoburg in #676 - Add version info in various docstrings by @teutoburg in #678
- Minor cleanup of docs by @teutoburg in #677
- Add units flow page to docs by @teutoburg in #689
Other Changes
- Make better use of
SourceFieldinFieldOfViewby @teutoburg in #651 - Remove obsolete
FovVolumeList.detector_limitsby @teutoburg in #655 - Add replaceholder workflow by @teutoburg in #688
- Remove unused private attributes from
OpticsManagerby @teutoburg in #694 - Refactor and cleanup in
OpticalElementby @teutoburg in #700
Full Changelog: v0.9.3...v0.10.0
Version 0.9.3
Addition of average exposure effect by @oczoske in #603, otherwise mostly bugfixes, small quality-of-life improvements and some internal refactoring.
What's Changed
Bugs fixed
- Fix broken flux scaling for extended sources in spectroscopy by @teutoburg in #638
Changes to or addition of Effects
- Implement average exposure effect by @oczoske in #603
- Remove spurious base classes by @teutoburg in #621
New Features or Improvements
- Make setting the
inst_pkgspath more convenient by @teutoburg in #627 - Check if all ref keys are found in spectra by @teutoburg in #633
- Ignore non-package directories for bug_report by @teutoburg in #631
- Switch off spammy INFO logs from httpx by @teutoburg in #642
Dependency Changes
- Bump beautifulsoup to 4.13.3 to get rid of deprecation warning by @teutoburg in #600
- Disable GitHub-based webtests by default by @teutoburg in #601
- Bump actions/download-artifact from 4.1.9 to 4.2.1 by @dependabot in #602
- Bump python-dateutil from 2.8.2 to 2.9.0.post0 by @teutoburg in #628
- Bump h11 from 0.14.0 to 0.16.0 by @dependabot in #645
Other Changes
- Remove base class check in
Effect.apply_to()by @teutoburg in #620 - Use
.to_value(<unit>)instead of.to(<unit>).valueby @teutoburg in #643
Full Changelog: v0.9.2...v0.9.3
Version 0.9.2
Mainly the inclusion of METIS WCU effects in #494 plus a few bugfixes and quality-of-life improvements.
What's Changed
Bugs fixed
- Fix detectorwindow by @hugobuddel in #507
- Don't fail subpixels for edge sources by @teutoburg in #549
- Ensure at least one pixel in header by @teutoburg in #586
Changes to or addition of Effects
Dependency Changes
- Bump abatilo/actions-poetry from 2 to 4 by @dependabot in #520
- Bump actions/download-artifact from 4.1.7 to 4.1.8 by @dependabot in #521
- Bump jinja2 from 3.1.4 to 3.1.5 by @hugobuddel in #519
- Bump sphinx from 5.3.0 to 7.3.7 by @dependabot in #525
- Bump jupyter-sphinx from 0.2.3 to 0.5.3 by @dependabot in #528
- Bump sphinxcontrib-apidoc from 0.4.0 to 0.5.0 by @dependabot in #522
- Bump nbsphinx from 0.9.3 to 0.9.6 by @dependabot in #526
- Bump skycalc-ipy from 0.5.1 to 0.5.2 by @dependabot in #523
- Bump jupyter from 1.0.0 to 1.1.1 by @dependabot in #530
- Bump ipympl from 0.9.4 to 0.9.6 by @dependabot in #538
- Bump jupytext from 1.16.0 to 1.16.6 by @dependabot in #541
- Bump myst-nb from 1.1.2 to 1.2.0 by @dependabot in #558
- Bump matplotlib from 3.8.2 to 3.10.1 by @dependabot in #577
- Bump actions/download-artifact from 4.1.8 to 4.1.9 by @dependabot in #576
- Bump jinja2 from 3.1.5 to 3.1.6 by @dependabot in #582
Documentation Improvements
- Add bugfix label to auto release notes by @teutoburg in #562
Other Changes
- make test_applies_dark_current_with_level_of_dit deterministic by @hugobuddel in #517
- Add dependabot configuration by @hugobuddel in #518
- Fix runnotebooks.sh by sorting the notebooks by @hugobuddel in #535
- Add a few more
@pytest.mark.slowmarkers by @teutoburg in #560 - Generatorify
stringify_dictfunction by @teutoburg in #563 - Update dependabot.yml by @teutoburg in #578
- fix fp mask emission by @oczoske in #583
- Fine-tune dependabot config by @teutoburg in #591
Full Changelog: v0.9.1...v0.9.2
Version 0.9.1
Many small but important fixes and improvements that were missing in v0.9.0.
What's Changed
Changes to or addition of Effects
- Improve z_order by @teutoburg in #500
- Fix FieldVaryingPSF by @hugobuddel in #506
New Features or Improvements
- Enable DeprecationWarnings by default by @teutoburg in #508
- Minor fixes for ScopeSimple by @teutoburg in #510
- Add support for package and mode status keywords by @teutoburg in #509
Dependency Changes
- Require Templates 0.6.0 and sync from there by @teutoburg in #501
- Bump tornado from 6.4.1 to 6.4.2 by @dependabot in #511
Documentation Improvements
- Cleanup example notebooks by @teutoburg in #496
Other Changes
- Added source scaling test by @janusbrink in #495
- Move logging config to separate yaml, configure individual loggers by @teutoburg in #502
- Ignore strip_cdata warning by lxml, introduced by bs4 by @hugobuddel in #504
- Fix #490: make rescale_imagehdu more robust against dimension mismatches by @oczoske in #503
- Make random test deterministic by @hugobuddel in #512
- Fix two more issues with ScopeSimple by @teutoburg in #514
Full Changelog: v0.9.0...v0.9.1
Version 0.9.0
Important
The minimum required Python version for this package is now 3.10 (see Dependency Changes).
Python 3.13 is currently not supported as it causes issues on some platforms that are not yet fully understood. We are currently working on fixing 3.13 support.
What's Changed
API Changes
- ScopeSimple by @teutoburg in #426
- Make
DataContaineran attribute ofEffectby @teutoburg in #482
New Features or Improvements
- Replace NaNs in images, log warning by @teutoburg in #466
- Make observe work with no source (empty field) by @oczoske in #483
- Add a new top level to CMDS nested mapping to store current simulation run settings by @teutoburg in #493
Dependency Changes
- Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows by @dependabot in #465
- Drop support for Python 3.9 by @teutoburg in #471
- Bump some dependency versions by @teutoburg in #472
- Use sphinx-book-theme for RTD by @teutoburg in #473
- Bump two dependencies, use tqdm.auto by @teutoburg in #477
- Bump scipy from 1.11.4 to 1.14.1 and httpx from 0.23.0 to 0.26.0 by @teutoburg in #480
- Remove skycalc_cli from dependencies by @teutoburg in #481
- Bump notebook from 7.0.7 to 7.2.2 by @dependabot in #486
- Limit supported Python version to 3.10 <= x < 3.13 by @teutoburg in #497
Documentation Improvements
- Update source_from_images.ipynb by @hugobuddel in #469
- Update example notebook to properly show the same observation by @hugobuddel in #476
Other Changes
- Add
SourceFieldand subclasses, reworkSourceby @teutoburg in #405 - Some small improvement, mostly focused on numpy by @teutoburg in #467
- Don't fail on symlinks for packages path by @teutoburg in #474
- Cleanup
DataContainerin preparation for Effect refactoring by @teutoburg in #478 - Fix Poisson NaN bug and clarify by @hugobuddel in #484
- Source object data scaling fix by @janusbrink in #485
- Workaround for #491 metadata.requires can return None by @hugobuddel in #492
- Fixed cdelt calculation when scaling an imageHDU by @janusbrink in #490
New Contributors
- @janusbrink made their first contribution in #485
Full Changelog: v0.8.4...v0.9.0
Version 0.8.4
Last version to support Python 3.9
This includes many small and not-so-small fixes and improvements, which are made available here to Python 3.9, while a few more major changes will be released soon as Version 0.9.0, but without support for Python 3.9.
What's Changed
Changes to or addition of Effects
- Test all cases of DIT & NDIT vs. exptime and AutoExposure by @teutoburg in #428
- Avoid in-place operations because of dtype conflicts by @teutoburg in #432
- Split PSF and Electronic effects into subpackages by @teutoburg in #434
- Improve SVO filter handling by @teutoburg in #454
- Added function to round the edges of square PSF kernels by @astronomyk in #459
Dependency Changes
- Bump tornado from 6.4 to 6.4.1 by @dependabot in #427
- Bump urllib3 from 1.26.18 to 1.26.19 by @dependabot in #429
- Bump certifi from 2023.11.17 to 2024.7.4 by @dependabot in #435
- Bump zipp from 3.17.0 to 3.19.1 by @dependabot in #436
- Bump setuptools from 69.0.2 to 70.0.0 by @dependabot in #437
- Bump some dependencies to get rid of some indirect ones by @teutoburg in #445
- Use
poochfordownload_example_databy @teutoburg in #446 - Bump matplotlib, synphot, pyerfa by @teutoburg in #450
Other Changes
- Formatting and Refactoring of
nghxrg.pyby @teutoburg in #431 - Rename
DetectorArray➡️DetectorManagerplus Docstrings and Refactoring by @teutoburg in #423 - Enlarge initial Field of View to suppord wide-field imagers by @hugobuddel in #433
- Fix some exposure things by @hugobuddel in #440
- Deepcopy readout, to prevent it being overwritten. Closes #439 by @hugobuddel in #441
- Allow star to be shifted by @hugobuddel in #443
- Attempt to catch crypto warning by @teutoburg in #444
- Use new main branch for DevOps workflows by @teutoburg in #448
- Refactor
example_data_utilsby @teutoburg in #447 - Remove unused function
return_latest_github_actions_jobs_status()by @teutoburg in #449 - Remove remaining master references by @teutoburg in #460
- Add units to DataContainer table directly. by @hugobuddel in #461
Full Changelog: v0.8.3...v0.8.4
Version 0.8.3
Mostly a small hotfix to allow changing of exptime in AutoExposure, plus some housekeeping.
What's Changed
Dependency Changes
- Bump requests from 2.31.0 to 2.32.0 by @dependabot in #417
- Update astropy version by @hugobuddel in #418
Other Changes
- Install ScopeSim_Data in the poetry environment by @hugobuddel in #416
- Do not ignore PytestRemovedIn8Warning. by @hugobuddel in #420
- Fix configure_logging by using function scope. by @hugobuddel in #422
- Fix exptime dit ndit bug by @teutoburg in #424
Full Changelog: v0.8.2...v0.8.3
Version 0.8.2 Unsigned Hero
What's Changed
New Features or Improvements
- Cap negative values below 0 before quantifying to an unsigned int. by @hugobuddel in #414
Full Changelog: v0.8.1...v0.8.2