Skip to content

Releases: sherpa/sherpa

Sherpa 4.16.0

17 Oct 15:03
Compare
Choose a tag to compare

Sherpa 4.16.0

This release of Sherpa includes various enhancements, documentation updates, bug fixes, and infrastructure changes.

  • enhancements:
    • the grouping commands like group_counts and group_snr now default to only grouping within the noticed range of channels, which is a change in behaviour
    • new plotting backend: Users can now choose between matplotlib and bokeh (experimental) support use of arbitrary python functions when linking model parameters
    • updates to fake_pha, save_all, allowing to write out RMF/ARF files
    • get_plot_prefs and get_contour_prefs call to simplify access to the plot and contour preferences
    • implementation of RMFPlot and DataIMGPlot classes and associated UI functions (plot_rmf, get_rmf_plot)
    • update support for XSPEC to include version 12.13.1, allow XSPEC table models which include the ESCALE parameter, and provide experimental support for writing out XSPEC table models.
  • documentation changes:
    • added doc strings for sherpa data classes
    • several updates to in code and RTD documentation
  • Infrastructure changes:
    • revamp of plotting backends from modules to classes and adding support for multiple backends
    • changes to use the NumPy random generator API
  • bug fixes:
    • PHA source plot Y axis scaling (#1825)
    • fix model display for grouped data (#1779, #1784)
    • Change in the ordering of operations when grouping background PHA datasets. (#1881)

Details

#1382 - Plot changes: Step 1 A- Draft API for backend classes
Plotting infrastructure changes that make the plotting backends classes
instead of modules.

#1617 - Pass keyword arguments to models
Allow keyword arguments to be passed to models and ensure these arguments
are respected by the model cache.

#1629 - Note when a XSPEC model is changed to F77 form (double precision)
Update a script used when updating the XSPEC support to point out models
that use the double-precision FORTRAN support. There is no functional
change to the code.

#1653 - Allow arbitrary functions for linking parameters
Provide a way to use any Python function to be used for linking
parameters. Fix #1652

#1730 - Update xspec model creation
Update the code created by the sherpa.astro.utils.xspec routines to
account for changes in the XSPEC interface in Sherpa. This only affects
users who call these routines directly.

#1734 - Unify the fake and fake_pha calls
The fake_pha call now accepts a method argument to match the fake call.

#1735 - Allow use of the NumPy random generator API
Take advantage of the NumPy random-number generator classes to provide
random numbers, and move away from using the global state provided by
numpy.random.seed and random.seed routines.

#1738 - Return more-useful information when an XSPEC model fails
Include the model name and parameter values in the error message of a failed XSPEC model.

#1750 - Replace pkg_resources as it is deprecated
Remove the use of the deprecated pkg_resources module and replace with use
of importlib.resources. Fix #1723

#1763 - Allow load_image to change the coordinate system
Ensure that the coordinate setting used in load_image calls is properly
handled (when not set to the default value of "logical"). Fix #1762

#1770 - Drop python2 ism in the fit code
Internal clean up of the fit code to replace a Python 2 method with a
Python 3 version and to use f-strings.

#1771 - utils: make sure OutOfBoundErr is an actual exception
Ensure that OutOfBoundErr is an exception (this is an internal feature).

#1772 - Tweak resample data code
Internal changes to the ReSampleData class to better handle invalid input.

#1773 - Internal clean up of estmethods
Code clean up of sherpa.estmethods.

#1775 - Change a single test to use explicit rather than implicit random state
from NumPy
Simplify a single test. There is no functional change.

#1776 - Move the parallel code into a separate module
Move the parallal_map code from sherpa.utils to the new sherpa.utils.
parallel module (the symbols are still accessible from the original
location but code should be updated to use the new location, including the
renames of _ncpus and _multi to ncpus and multi).#1777 - Change get_sample
to require named arguments

#1778 - Optmethods cleanup
Move testing code out of the optmethods modules and into a separate test,
along with a number of code clean ups. There is no functional change.

#1780 - Fix model plot display when factor is set for grouped PHA data (issue
#1779)
Ensure that model plots can be created for PHA data when set_analysis
routine is used to set factor > 0 and the data is grouped. Fixes #1779 and
#1784

#1781 - utils: remove the numpy_convolve routine
Remove the sherpa.utils.numpy_convolve routine.

#1785 - Add docs to Sherpa data classes
Add docstring to most Sherpa dataclasses.

#1791 - Tests: ensure repeatable test of get_draws
Ensure tests of get_draws use a fixed seed to make the results
reproducible. There is no functional changes in this commit.

#1794 - docs: note requirement on ar for building Sherpa
Add ar to the list of requirements for building Sherpa. Fix #1792

#1795 - Add docs to describe the inputs for the calc function of a user
model
Add docs that describe the arguments of the calc function for user models.

#1797 - model: explicitly send parameter argument to calc
Ensure that the calc method for models begins with the parameter array
(explicitly given) rather than extracting it from the named arguments sent
to the routine. This should not change any user code.

#1800 - utils: minor code clean up
Internal clean up of the sherpa.ui.utils module.

#1805 - Clean up display of dataset ids during fits
Ensure dataset ids are listed without leading brackets in the fit and
staterror string outputs (remove an accidental change made in #1770). Fix
#1804

#1806 - Activate sphinx directive to make plots
Use the Sphinx plot directive to generate (some of) the plots in the docs.

#1807 - NumPy 1.25 support
Remove deprecation warnings seen when using NumPy 1.25.0.

#1808 - Use Sherpa install instead of code only to build docs
Switches from building the documentations from the source directory, to
building it from an installed version of Sherpa.

#1809 - Update the hardcoded Zenodo releases to include the 4.14/4.15 releases
Update the stored Zenodo releases to include the 4.14.* and 4.15.* Sherpa
releases. Users should see no difference (other than avoiding the need for
an http call to retrieve this information) when calling sherpa.citation().

#1810 - RTD: fix script name for XSPEC updates
Improve the documentation on how to update to a new XSPEC version by
ensuring the correct helper script is run in an example.

#1811 - ui: use the default pickle version when dumping the state
Use the default version when pickling data (used by the UI save call)
rather than an old version. Fix #1243

#1812 - Autoupdate copyright year in sphinx docs
Autoupdate copyright year in sphinx docs.

#1813 - Fix ReadTheDocs warnings and then make RTD fail on warnings in CI
Fix ReadTheDocs warnings and then make RTD fail on warnings in CI.

#1819 - CI: hide NumPy 1.25 array ndim>0 deprecation warnings
Allow the tests to run with NumPy 1.25 and with Crates (from CIAO 4.15) as
the I/O backend. There are no functional changes.

#1821 - parallel: tweak ordering of checks for parallelization
Internal change to the decision of whether to use the multiprocessing
module to run code or not.

#1823 - sherpa_test: tweak how pytest/plugins are installed
Internal changes to how we check for test requirements used by the
sherpa_test script.

#1824 - remove non-existent datastack plotting backend initialization attribute
Clean up error condition by removing the sherpa.plot.backend.
initialize_backend attribute as no longer exists.

#1828 - Improve PHA source plots: support type=counts and factor above 1
Source plots for PHA data now follow the rate and factor analysis
settings. Prior to this the rate setting was ignored and the factor
setting produced incorrect values for factor=1 and factor=2). Fix #1825

#1829 - Limit precision in the comparison of string outputs
Update the tests to support running on ARM/AARCH64 platforms where numeric
differences can complicate string comparisons. Fix #1815.

#1832 - astropy: rework RMF input (fix #1344)
Allow the AstroPy backend to read in HRC-I RMF data. Fixes #1344.

#1835 - Note compatibility with XSPEC 12.13.1
Note that Sherpa can be built against XSPEC 12.13.1 and update some
parameter ranges or defaults to match the new values from this release.

#1836 - Allow ARF and RMF to be written out
Support writing out ARF and RMF data to FITS files (and, for ARF, ASCII
files). Fix #1699, #1695, and #203.

#1839 - ui: add get_plot_prefs/get_contour_prefs calls
Add the get_plot_prefs and get_contour_prefs call to simplify access to
the plot and contour preferences.

#1840 - Fix #1828 - histogram plot issue
Fix up the histogram display for the unlikely case when the bin edges have
at least one gap, the low edges are integer values, and the high edges are
floating-point values.

#1841 - Minor refresh of AstroPy I/O code for better FITS and ASCII output
Minor rework of the sherpa.astro.io.pyfits_backend module to improve on
the output (both FITS and ASCII), such as a closer mapping of the data
type used on disk and written out to file, and some chang...

Read more

Sherpa 4.15.1

18 May 16:05
Compare
Choose a tag to compare

Sherpa 4.15.1

This release of Sherpa includes various enhancements, documentation updates, bug fixes, and infrastructure changes.

  • enhancements:
    • further improvements to filtering/grouping including reporting a filter change in the UI
    • fake_pha can be called with a list of ARF/RMF names
    • added linewidth option for line and histogram plots
  • documentation changes:
    • fixed broken URLs
    • improved documentation for templates, plot_pvalue
    • added documentation testing with doctestplus
  • Infrastructure changes:
    • dropped support for Python 3.8
    • experimental support of Python 3.11
    • supported versions of Xspec are 12.12.0 - 12.13.0
  • bug fixes:
    • various updates to notice/ignore and group/ungroup code
    • fixed issue with show_bkg
    • fixed issue when binning values into a 1D histogram
    • fixed cache errors with the TableModel class

Details

#1396 - XSPEC minimum version is now 12.10.1
Bump the minimum-supported version of XSPEC from 12.9.0 to 12.10.1.
(superseded by #1609)

#1472 - tests: remove work-around for #1334 from #1336
Remove a test work around for our CI tests failing (issue #1334)

#1486 - Improve filtering/grouping behavior
Changing the grouping array of a PHA dataset (with set_grouping from the UI layer
or by setting the grouping attribute of a DataPHA object) will now re-create the
filter, to fix #1160.
It is suggested that the filter expression (e.g. as returned by the get_filter
routine for uses of the UI layer) is checked to ensure the result is still sensible.

#1502 - Cleanup template code
Improve the documentation and testing of the template-model code. There is no
significant change in behavior, but some use cases will generate more-appropriate
errors than they used to.

#1591 - Document params and return values for root finding functions
Add docstrings for root finding functions

#1607 - Fix an issue when binning values into a 1D histogram
Fix a problem when binning data into a histogram (issue #1605).

#1609 - XSPEC minimum version is now 12.12.0
Bump the minimum supported XSPEC version to version 12.12.0.

#1611 - Post 4.15.0 updates
Add the 4.15.0 DOI to the README.md.

#1613 - Allow testing of the documentation
Adds the ability to run doctests in py and rst files. Those tests will run
automatically, if doctestplus is installed (not on CI in the current setup) and
the file is not explicitly blacklisted for doctestplus.

#1621 - Fix a cache error with TableModel
Fix cache errors with the TableModel class (#1622), add validation of input
values, and minor additions to the documentation.

#1630 - Add support for XSPEC 12.13.0
Add explicit support for XSPEC 12.13.0. Sherpa can be built against XSPEC
12.13.0 without this PR, but this adds in support for the new cglumin
convolution model added in this release.

#1637 - report the filter changes when grouping is changed for the ui
Report the filter when data is grouped with UI commands - such as group,
group_counts, and set_grouping - to match the notice/ignore behavior added in
#1562. The logic for setting the background group flag has been moved from the
UI layer to the DataPHA class. Addresses #1632.

#1644 - Deployments via GH Actions
Dropped support for RH7 and macOS 10.15

#1656 - CIAOX deployments require force. As they deployed for main already.
Based on the current scheme used for the build number, we need to force uploads
for CIAOX as they have already been deployed for main. This was already done for
the previous GitLab builds.

#1660 - Associated group fixes
Clean up of the notice/ignore and group/ungroup code to avoid unnecessary work,
move logic from the UI layer into the DataPHA class, and ensure that if the
grouping field is set to None that the data is not grouped. Fix #1641, #1657,
and #1659

#1662 - Add grouping tests
Add a number of tests to check out corner case behavior, primarily for grouping
PHA data but there's also a number of routines from the UI code that have missed
some tests.

#1664 - Allow save_model/source/resid to work with 2D data (fix #1642)
Fix save_model/source/resid calls when used with 2D data sets. Fix #1642

#1665 - Fix an issue with show_bkg (fix #1645)
The show_bkg routine could fail when the set of backgrounds is not the same for
all datasets (e.g. one has a background and another does not). Fix #1645

#1666 - model-wrapped symbols now reference the actual model (fix #215)
Wrapped models, accessible from the UI layer, now reference the wrapped model
rather than being devoid of any useful information. Fix #215

#1672 - models: f-string changes
Change the models code to use f-strings where appropriate rather than other methods
of string interpolation. There is no change in behavior.

#1675 - Bump ds9 to 8.4.1 - Ubuntu 20 and macOS BigSur
Bump to the latest DS9 version and update to ubuntu20 version. This resolves #1674

#1676 - update model macro definitions for compiled code
Re-work the macro definitions used to build the compiled models and use this to
clean up the handling of the XSPEC models, in particular table models. There is
no functional change.

#1681 - XSPEC test cleanup
Minor clean up to some XSPEC tests to make better use of pytest.

#1689 - Address regression created by #1672
Internal change to the Sherpa-specific logging code, to ensure that logged
message includes all components. This fixes #1688 which was a regression created
when #1672 was recently merged.

#1693 - Test cleanup related to #1334
Complete the cleanup related to removing the #1334 workaround which was added in
#1336. These two tests were missed from #1472 (which was meant to remove these
changes). The two test files have also seen some minor style changes (no change
in behavior).

#1696 - Docs: fix #1694
Correct a link in the RTD documentation.

#1697 - Ds9 test tweaks
Minor cleanup of the DS9 tests (no functional change)

#1698 - Update versioneer to 0.28
Update the version of versioneer included in Sherpa from 0.21 to 0.28. Fix #1677.

#1708 -Ensure string id can be used for the background id in the DataPHA notice/ignore call
Allow a string identifier to be used for the bkg_id argument to the
DataPHA.notice (and ignore) method, fixing #1709 (it does not affect users
using the ui layer).

#1711 - plot: add linewidth option
Add the linewidth option for line and histogram plots (e.g. plot_data,
plot_model, plot_fit) with the matplotlib backend.

#1715 - utils: rework the error-column saving code
Internal clean up of the save_*error routines. There is no change in behavior.

#1716 - utils: tweak internal _save_type routine
Minor internal change to a routine in the utils code. There is no change in
behavior.

#1720 - Fix get_stat_info output for individual components
Fix the get_stat_info output for multiple PHA data when the data has a different
number of background components (fix #1721). The get_bkg_model routine will now
use the source PHA for a response if the background has no response (to match
what fit and fit_bkg do, fix #1724).

#1733 - Allow fake_pha to be called with a list of ARF/RMF names of length 1
Allow fake_pha to be called with a list of ARF and RMF names that only contains
one element. Fix #1722

#1739 - pyfits: be more lenient with FITS files with messed-up headers
Allow some FITS files with an invalid header to be used with the AstroPy I/O
backend.

#1747 - reduce chance of plot_pvalue getting stuck in a bad parameter space
Ensure that each simulation step for the likelihood ratios code, as used by
plot_pvalue, starts with the same parameter values to reduce the chance that the
results can get stuck in certain areas of parameter space. The ratios field of
the LikelihoodRatioResults structure - e.g. the return value of
get_pvalue_results() - can be plotted to see if this has happened (e.g. large
ranges where the ratio is close to zero.

#1751 - Explicitly require attrs module when testing Sherpa
Ensure that the attrs module is available for testing Sherpa.

#1752 - Drop Python 3.8 and Pick up Python 3.11 as a beta
move to be NEP-29 compliant with python version

#1753 - Initial support for Python 3.11
Basic support of Python 3.11.

#1755 - Tests: replace use of attrs package by dataclass
Change a test file to use data classes rather than use the attrs module, which
means that attrs is no-longer needed to test Sherpa. There is no functional
change in this PR.

#1756 - Fix broken URL in docs
Updated URLS which are no longer valid

#1759 - updated plot_pvalue docs
Updated docstring for plot_pvalue to include reference to the algorithm

#1760 - Tweak test tolerances mac arm
Improve test reliance when running on the macOS ARM platform

Sherpa 4.15.0

11 Oct 16:10
Compare
Choose a tag to compare

Sherpa 4.15.0

This release of Sherpa includes various enhancements, documentation updates, bug fixes, and infrastructure changes.

  • enhancements:
    • Improved validation of arguments when creating Data objects:
      • arrays sent to Data objects are now converted to ndarrays
      • the independent axis is now made read-only
      • the size of a data object is now fixed.
    • Filter setting with notice/ignore are reported to the screen for the users of the UI layer.
    • Increased test coverage for plotting
  • documentation changes:
    • updated readthedocs to use pip and pytest instead of setup.py
    • several updates to documentation, including updates to fake_pha, calc_ftest, calc_mlr
  • Infrastructure changes:
    • Drop support for Python 3.7
    • Updates to start creating Python 3.10 Conda packages.
    • Use Numpy 1.20 for Python 3.8/3.9 and Numpy 1.21 for Python 3.10.
    • Moves toward PEP-517 with some distutils cleanup and more configuration moved from setup.py to setup.cfg
    • Various improvements to the GitHub Actions and GitLab workflows
  • bug fixes:
    • Ensure chi2xspecvar errors match XSPEC when 0 counts are present during background subtraction
    • Remove model instances from the global symbol table when clean is called
    • Addresses new warnings in the tests for Matplotlib 3.6.0 and AstroPy 5.1
    • Minor copy and paste error in fake_pha docstring
    • Test issues in test_fake_pha.py due to randomness

Details

#1329 - Build updates (move towards PEP-517 support)
Move the Sherpa build system towards a more static configuration (PEP 517)

#1412 - XSPEC: initialize XSPEC library at load time
Simplify how and when the XSPEC model library is initialized. Fixes #1388

#1477 - Add data validation
Improve the validation of arguments when creating Data objects- Arrays sent to
Data objects are now converted to ndarrays, the independent axis is now made
read-only, the size of a data object is now fixed.

#1504 - CI: rework setup
Update the GitHub workflows for Continuous Integration to better take advantage
of the workflow language.

#1505 - RTD use pip/pytest rather than setup.py for install/develop/test
Change the RTD documentation to use pip and pytest rather than setup.py when
building and testing Sherpa

#1507 - tests: ensure DS9 window is closed after the tests
Ensure that any DS9 process started by the Sherpa tests is closed when the tests
are finished.

#1510 - Tests: improve test coverage of plot code
Improve the testing coverage for several plot routines.

#1513 - Minor UI tweaks
Added validation to the set_xlog/ylog/xlinear/ylinear and updated save_model,
save_source, save_resid, and save_delchi commands from sherpa.ui to not error
out if not given an explicit identifier.

#1516 - Consolidate plot and set_xlog handling
Use the same labels for the plot and set_xlog/set_ylog/set_xlinear/set_ylinear
functions. As a result, a number of names can no-longer be used as an identifier
for a dataset (bkg_chisqr, bkg_delchi, bkg_fit, bkg_model, bkg_ratio, bkg_resid,
bkg_source).

#1519 - Use direct html links instead of using [1] and a reference section
This replaces the use of a "References" section with direct URL links in
particular in cases where the reference is just a plain old HTML website and
not a scholarly publication.

#1523 - Ensure the region-lib code is re-generated when needed
Fix a build issue with clang where the region-library code caused an error
message

#1529 - Add arguments to -i in sed calls in config script
Update sed command in config script for improved portability

#1532 - Add plot related tests
Add more tests to cover corner case scenarios (mostly plotting related).

#1534 - docs: fix calc_ftest/mlr documentation
Note that calc_ftest and calc_mlr can return an array or scalar value, depending
on the input.

#1536 - Tests: add more tests of get_order_plot/plot_order
Add a test for multiple orders and plot_order.

#1537 - Remove model instances from the global symbol table when clean is called
Ensure that models are removed when clean() is called.

#1538 - Ensure chi2xspecvar errors match XSPEC when 0 counts are present during background subtraction
When using the chi2xspecvar statistic for estimating PHA errors, ensure that the
errors match those calculated by XSPEC when the background is subtracted and the
source or background group contains 0 counts

#1540 - Tests: fix the random seed for a fake_pha test
Remove randomness from a test.

#1547 - Fix CI failures from AstroPy 5.1 warning changes
Allow the macOS tests to run on CI with AstroPy 5.1.

#1554 - Install New libxcb Dependencies for Qt
For Linux GitHub Actions, we now install libxcb dependencies required for
Conda's Qt package.

#1555 - Bump the ci-pip-arch workflow to ubuntu-20.04
Update to use ubuntu 20 as GutHub Actions is deprecating ubuntu 18.04

#1562 - report the change in the filter because of calls to notice and ignore
When a notice or ignore call - including the variants like notice_id and
ignore2d - then the change in the filter is reported to the screen (for users
of the ui layer).

#1563 - Add Python 3.10 Conda Builds, Drop Python 3.7 and Numpy <1.20, Switch to Pip for Conda Builds
Drop official support for Python 3.7 and start creating Python 3.10 Conda
packages. Our Conda builds now use Numpy 1.20 for Python 3.8/3.9 and
Numpy 1.21 for Python 3.10.

#1566 - GitLab: Add version info to deploy test, update test OS, and allow interrupt.
Updates to gitlab to support automated tests, save version info, set default to
interruptible to allow canceling pipelines, and switched to source conda instead
of adding it to the path

#1567 - Fix minor copy and paste error in fake_pha docstring
Make UI layer fake_pha work for XMM/RGS by accepting input of arf=None when an
RMF file is given.

#1569 - Minor changes to the fake_pha test added in #1567
Internal changes to the test added for fake_pha in #1567

#1572 - Tests: fix a logical test error
Fix a logical error in a plotting test.

#1574 - Avoid occasional test errors from Tcl_AsyncDelete
Switch the matplotlib tests to use the Agg backend to avoid possible
Tcl_AsyncDelete errors (issue #1509)

#1578 - Gitlab: Reduce artifact retention period
reduces artifact retention from 2 weeks to 3 days due to new gitlab 5gb
restrictions

#1579 - Add back --python removed in #1566
reinserts --python flag that was accidentally removed in #1566

#1580 -add a versionchanged note for the fake_pha command
Update the documentation to note the change to fake_pha in #1567

#1585 - Tests: work around matplotlib 3.6.0 warning
Allow the tests to pass when run with matplotlib version 3.6.0.

#1589 - Set the language when building the documentation
Ensure the language setting is defined for recent versions of Sphinx

#1594 - gitlab-ci: Set build num to 0 if not set
Set the default Sherpa build number to 0 in our GitLab workflow to know which
package to run deploy tests on for official release builds.

#1600 - Change the histogram1d and 2d routines so that they do not sort the input arguments
Address some failures in histogram1d and histogram2d routines by making sure
they copy the input arguments before sorting them.

Caveats

  • There are known issues (#1602, #1605, #1606) in the histogram1d/histogram2d functions
    leading to failures which were not fully addressed in this release (see the failed
    case in the second histogram1d example). This is not the Sherpa core functionality
    and numpy.histogram can be used if needed.

Sherpa 4.14.1

20 May 16:14
Compare
Choose a tag to compare

Sherpa 4.14.1

This release of Sherpa includes various enhancements, documentation updates, bug fixes, and infrastructure changes.

  • enhancements:
    • various plotting backend improvements
    • various i/o backend improvements
    • data object class improvements
    • basic support for Xspec 12.12.1
    • beta support for python 3.10
  • documentation changes:
    • updated build with CIAO documentation
    • Add a missing class (DataOgipResponse) to the documentation
    • Improves the docstrings for DataPHA
    • fixed typos in plot docs
    • clean up readthedocs issues such as missing bullets
  • Infrastructure changes:
    • updates for compatibility with Clang 12.0
    • updates to the regression tests
  • bug fixes:
    • Improve the FITS headers created when writing out a PHA file (to better match OGIP standards)
    • addresses delete_model_component call failing if a key does not exist
    • fixed issue with writing a PHA dataset as a table rather than a PHA file
    • ensure FITS column access is case insensitive
    • image handling and image coordinates

Details

#1030 - Update lev3fft test to use PHYSICAL not WCS
Update a 2D image test to use physical rather than WCS coordinates for the fit.

#1185 - Simplify switching the astro.io backend
Add dummy_module, docs, and test case for switching the sherpa.astro.io backend.
io backend are now tried in a default order (crates, pyfits, dummy)

#1191 - Make it easier to switch the plotting backend
Make is easier to switch the plotting backend (note that we currently only have on
backend implemented anyway)

#1207 - Improve OGIP headers in PHA files
Improve the FITS headers created when writing out a PHA file (to better match OGIP
standards). Fixes #488 and #1209

#1314 - test: add requires_data decorator
Add a needed decorator for a test. There's no functional change to the code.

#1317 - Add requires group test decorators
Ensure the tests that require the group library are marked with the requires_group
decorator.

#1318 - Adjust a test for python 3.10
Adjust a test so that it passes with Python 3.10

#1326 - Write-up that environment variable in setup.cfg need to be expanded
Add a detail to developer docs about compiling in a conda ciao environment

#1328 - Versioneer cleanup
Update the versioneer module we use from 0.14 to 0.21 (latest).

#1331 - optmethods: remove Deprecation warning about invalid escape string
Remove a deprecation warning from sherpa.optmethods.optfcts and update some fake_pha
tests to each use a fixed random seed.

#1332 - Add Instrument test
improved the psf tests, adding low-level tests of the tcdData class

#1337 - Fix import statements
Change from using import to importlib.import_module.

#1338 - clean up some C/C++ code in the _psf.cc file
Minor clean up of C/C++ code

#1339 - Add codecov.yml to fix path issue and update codecov uploader
Fix path parsing issue on codecov as well as updated for the new codecov uploader

#1340 - Change how the sherpa config file is accessed
Support environments where the HOME environment variable is not set when accessing
the Sherpa configuration file.

#1347 - Refactored array classes cause std::vector has non-virtual destructor
std::vector has non-virtual destructor so in this PR the refactored Array (1D and 2D)
classes no longer inherit from std::vector

#1348 - Minor internal code cleanup tracking errors
Minor internal changes to how some errors are raised. There should be no
user-visible differences due to this changes.

#1351 - Update the sherpa-test-data repo to the latest from main
updates that reference to the latest copy

#1353 - Fix issue with delete_model_component
The delete_model_component call could fail in certain circumstances, so fix those
cases. Fixes #16

#1355 - Minor cleanup of the I/O code
Minor internal clean-up of the I/O code. There should be no user-visible changes.

#1359 - Improve writing out data objects as a table (fix #47)
Fix writing out of PHA datasets as a generic table (both ASCII and FITS formats).
Fixes #47

#1360 - Add missing export statement to clang 12 note
Update documentation to be clearer on how to build on clang 12 and avoid compiler
error on implicit function declarations

#1361 - Ensure FITS column access is case insensitive for the pyfits I/O backend (fix #143)
Allow FITS colummn access with the pyfits backend to be case insensitive. Fixes #143.

#1365 - Simplify a test (fix #541)
Remove duplicated code in a test (fix #541).

#1370 - Minor tweaks to handling of PHA settings
Improve the checking of the factor and rate settings of set_analysis and the
plot_fac attribute of the DataPHA class, and add a few tests that exercise some
corner cases of the DataPHA class.

#1374 - Address aarch/ppc64le test failures
Update tests to that they pass on aarch64. Fixes #1372

#1376 - Very-minor tweaks to docs/tests
Fix a minor test issue and an unused reference in the documentation.

#1387 - minimize C++ code duplications (rebase)
Remove code duplication in the XSPEC module.

#1399 - Allow conf/covar/proj to be used with XSPEC model parameters (regression)
Ensure that conf, covar, and proj can be called with an XSPEC model parameter.
Fixes #1397.

#1401 - Modified region code to remove implicit prototype error
This change updates the extern region code in sherpa to resolve a missing prototype
which causes build issues with clang 12.0.

#1403 - Updates to fix typos in the plot documentation
Update to fix a few typos in the plot documentation

#1410 - Add script and docs for pre-commit hook to update copyright
Add example script for a git pre-commit hook that checks the copyright is up to date.

#1411 - Add sphinx_rtd_theme to sphinx extensions and set min version
Our readthedocs pages have had some visual issues (in particular, bullets point
where missing from output) for a while. This fixes that by ensuring we are using
a recent version of the sphinx theme.

#1413 - Add more editor/OS exclusions to .gitignore
Add a VSCode workspace summary files and MacOS directory preview files to .gitignore

#1414 - Improve the handling of image coordinates
Address an error when converting between different coordinate systems for images.
Fixes #1380.

#1415 - RTD fix missing and changed symbols
Update the ReadTheDocs build to cope with changes in #1191

#1418 - Fix minor test issues
Address several minor test issues.

#1419 - Keep .rc file backwards compatible
Default rc files will work in older version of sherpa as well.

#1421 - Address usability issues with Data2DInt and DataIMGInt classes
Fix issues using the Data2DInt and DataIMGInt classes (#1379).

#1423 - fix a compiler bug on macOS
update to address compiler issue when compiling on macOS

#1424 - rm primini stat method
This PR removes the primini iterative statistical method. Please see issue #1392
for details

#1425 - Allow users to freeze models
Models can now be frozen or thawed, which just calls the requested on all the
parameters of the model (except for "alwaysfrozen" parameters which are skipped).
This is only relevant for users who are accessing the objects directly since the ui
versions of freeze and thaw already implemented this behavior. Fixes #1080.

#1429 - Tests: fix up test problems shown by pytest 7.0.0
Fix up several tests so they can be run with pytest 7.0.0. Fixes #1428

#1434 - Fix aarch64 test failures
Allow the tests to pass on aarch64 (numerical precision checks).

#1435 - Minor clean up of the data code
Improves the docstrings for DataPHA, adds tests for several corner-cases, and makes
some minor code improvements to the code.

#1440 - Minor clean up of the data routines
Address several minor code-style changes in the data handling (code and tests).

#1441 - Clean up the data tests
Clean up of the data tests which were added as part of the data-class rework in #614.

#1442 - Ensure channel and count fields for PHA are aliases of independent and dependent axes
Ensure that channel and the independent axis and counts and the dependent axis are
synonymous for the DataPHA class.#1451 - Tests: ensure sherpa smoke tests are done
in a clean environment

#1453 - Tests: mark those that require the group module
Note a number of tests that require the group module.

#1454 - RTD: update copyright year and fix WCS library
Update the sphinx build instructions so that changes from PR #1414 will be documented
correctly on systems where the documentation is being built without first compiling
the code (such as read-the-docs).

#1455 - RTD: update the build-from-CIAO documentation
Update the "build with CIAO" documentation to match the CIAO 4.14 conda instructions
and automate the process.

#1458 - Improve several issues when building and testing Sherpa
Minor improvements to the build and test installation. The use of setuptools has
been restricted to match the current advice from NumPy (< 60, from
https://numpy.org/devdocs/reference/distutils_status_migration.html).

#1461 - Minor grouping cleanup
Minor internal change to how the group routines work for PHA objects.

#1462 - Docs: fix up documentation of ui.set_grouping
Fix the documentation for set_grouping to match the code.

#1463 - rm a redundant call to calc_h
Removed a redundant call the the calc_h method in the class fdJac

#1464 - RTD: include the DataOgipResponse class in the documentation
Add a missing class (DataOgipResponse) to the documentation.

#1473 -...

Read more

Sherpa 4.14.0

07 Oct 16:03
Compare
Choose a tag to compare

Sherpa 4.14.0

This release of Sherpa includes various documentation updates, bug fixes, enhancements, and infrastructure changes.

  • enhancements:
    • filtering and grouping area for binned (1D) spectral data has been improved
      with changes to the default behavior and many bug fixes resulting in changes
      to the statistics, degrees-of-freedom and energy flux in comparison to the
      previous version for the same data with the same filter.
    • updates to allow users to change the hard limits of XSPEC model parameters
    • the sample_flux routine now returns correct information for the clip column
  • documentation changes:
    • improved PHA simulation documentation
    • improved Filtering and grouping of PHA data documentation
    • added sherpa.image module documentation
    • added section on running tests to developer docs
  • Infrastructure Changes:
    • updates to support Apple ARM
    • update to support Xspec version 12.12
    • update fftw from version 3.3.8 to 3.3.9
    • clean up of compiler and sphinx warnings
    • changes to support gcc 9.3.0 in conda defaults
    • updates to support python 3.9 including readline 8.1 upgrade, numpy minimum 1.19 (numpy 1.18 minimum for python 3.7/8)
    • test infrastructure clean up and updates
  • bug fixes:
    • updates to fix several 'unable to parse region string: None' errors
    • fix issue where save_all() of a loaded image with no region filter would fail on reload
    • fixed issue with plot_model() being called before notice or ignore could lead to filters not getting applied
    • fix to error out instead of crash when grouping data using an unsupported method

Details

#1031 - Update fwhm calculation
Update the estimation of FWHM for 1D profiles, and hence the guess method for
Gauss1D and related routines. The 2D models use the same routine so see these
changes.

#1073 - Allow fake_pha to be called with an identifier of None
The fake_pha command now treats id=None as the default id. This addresses #1064.

#1106 - The sample_flux routine now returns the correct information for the clip column
The sample_flux routine now returns correct information for the clip column
(that is, it matches the clipping done by this routine). There may be changes to
the reported error ranges because of this change.

#1107 - Add some grating related keywords for repr_html for ARF, RMF, PHA
Add keywords to the default output in the repr_html for some X-ray classes.

#1113 - XSPEC: support etable table models
Allow XSPEC ETABLE table model files to be read by load_xstable_model by
setting the etable parameter.

#1118 - Improve test cases for source plots with PHA data
Add additional test cases for source plots with PHA data to check out
rarely-used combinations.

#1127 - PHA filtering changes
Improve some corner cases for filtering PHA data, including fixing #921 (channel
bounds are integers, not half-integers).

#1131 - Test: fix a test failure when XSPEC installed but no fits backend
Avoid running a test we know to fail for an uncommon combination of options.

#1134 - This is a doc-string only update for load_multi_XXX
The previous example implied that a spectrum may contain both positive and
negative orders in the same spectrum. That can happen only after coadding -
and in that case one would co-add the arfs as well.

#1135 - Added docstring and removed unused no-op class
Remove sherpa.astro.models.MultiResponseSumModel which did nothing and seems
to be unused (except in a test that explicitly skip this class).

#1136 - Replace error message "too few columns" with a more generic word
Change the wording of an error message. Potentially breaking if someone tests
for the wording of the error message in their code, but certainly more correct.

#1137 - Correct docstring for fake_pha
The old docstring claims that the background is just scaled and not simulated,
but there is definitely a call to poisson_noise for the background in the code.

#1138 - Address NumPy 1.20 bool/int/float deprecation warnings
NumPy 1.20 notes that numpy.bool, numpy.int, and numpy.float will be removed
and users should just use bool, int, and float instead, so these symbols have
been changed. This is a follow on to #1092

#1140 - Fix some remaining master/main renames
clean up references to master with main

#1143 - add basic test and documentation for Integrate1D
Add basic testing of the integrate1d model class and improve its documentation.

#1144 - A minor cleanup of estmethods
A minor cleanup of the sherpa.estmethods code.

#1147 - Tests: support use of data directory being local, not absolute
Allow a test to pass when given a relative path for the test data directory.

#1154 - Update docs on RTD builds
Update docs on how the docs are build in CI

#1155 - Remove Meta class for fits hdu headers
Remove Meta class for header information that is used only rudimentary and
acts almost, but not quite, like a dict

#1163 - XMM/RGS triggers a notice/ignore bug because channels are in reverse-energy order in RMF
Recent work on the ignore / notice logic in #1127 implicitly assumes that the
energy grid in PHA/ARF/RMF files is in increasing order, which does not hold
true for XMM/RGS data

#1164 - Fix plots with wavelength general:visualization type:bug
For some data files, plots with a reversed grid (i.e. plots in wavelength) were
drawn with disjoint lines since #906.

#1165 - Add a section on running the tests to the developer docs
Add a section on running the tests to the developer docs

#1168 - Logging tweaks
Include the sherpa.utils.logging module in the documentation and update a test
to use the caplog feature of pytest (the code had been written to work with
python 2.7 version of unittest).

#1170 - Update Python and particularly number versions in documentation
Updates to doc pages that list dangerously old numpy versions

#1171- Improve the grouping/filtering tests
Add a number of tests for corner cases of filtering and grouping of PHA data.

#1172 - Improve data pha docs
Improve the documentation of the filtering and grouping of PHA data.

#1173 - Improve DataPha documentation
Minor improvements to the documentation of the DataPHA class.

#1175 - Store UI contour plots in a dictionary, not directly
Change the internal storage handling of contour objects

#1177 - minor rework of image handling for ui layer
Change the internal storage handling of image objects and improved testing

#1178 - Define physical constant hc in fewer places
hc (as in "Planck constant * speed of light") is a physical constant that does
not depend on the DataPHA and thus it should not be defined as a class attribute.

#1180 - Minor improvements to model/parameter documentation
Minor fixes and improvements to the documentation (both docstrings and RTD)
for the model- and parameter-related code.

#1182 - Simulations with multiple responses
Enable simulations with multiple ARF/RMF present (e.g. LETG/HRC).

#1183 - Check parameter link behavior
Minor tweaks to the parameter tests.

#1184 - Better pha model component plotting (fix #1020)
The use of plot_model_component and get_model_component will now automatically
add the response for PHA data sets, if there is one. Model expressions which
contain a response will not be changed. Fixes #1020.

#1187 - Conda GCC 9.3.0 update issue
update to support environment changes due to conda defaults updates for
gcc 9.3.0

#1192 - Remove Python 3.6 and add Python 3.9
updates to switch python support to python 3.7-3.9

#1194 - datastack: Improve show_stack and add repr_html for stack
Improve datastack display (via show_stack and in the notebook) for datastacks.

#1198 - XSPEC test cleanup
Very minor improvement to the XSPEC test suite.

#1199 - Move the regrid code out into a separate method
Very minor code reorganization for the regrid code.

#1203 - Update GitLab Conda recipe to numpy 1.19
updates gitlab conda recipe to python 1.19+ and adds run time pin

#1204 - region lib updates for CIAO 4.14
updates to fold in changes to CIAO region lib for CIAO 4.14. Specifically,
fixes for SM-89: bug in pie shape (extent/inside logic), SL-243: region -
deprecate obsoleted Warning.

#1205 - Remove the SherpaTestCase class
Remove the SherpaTestCase class from sherpa.utils.testing and switch the tests
that used it to use pytest functionality where appropriate.

#1208 - Fix get_xerr for Data1DInt when all data is filtered
The get_xerr method of Data1DInt would fail if all bins had been ignored and
it now returns the empty list.

#1215 - Restrict the values used in PHA notice/filter calls
Ensure that the low and high limits for notice and ignore calls for DataPHA
objects are sensible (hi >= lo and that for energy or wavelength filters they
are >= 0). When filtering DataPHA objects in channel units the lo and hi
arguments must be integers otherwise an error is raised.

#1216 - filter improvements for DataPHA and Data1DInt
Energy and wavelength filters (with notice and ignore) for PHA data are now
treated as lo <= x < hi in all cases, and channel filters are lo <= x <= hi
(where the channel values must be integers). For Data1DInt cases the notice
and ignore filters are treated as lo <= x < hi. This changes address a number
of corner cases.
This can result in slightly different fit results because the data used in the
fit can be changed and hence changing the number of degrees of freedom (by one
o...

Read more

Sherpa 4.13.1

18 May 16:20
Compare
Choose a tag to compare

Sherpa 4.13.1

This release of Sherpa includes various documentation updates, bug fixes, and infrastructure changes. The default branch in github has been migrated from master to main.

  • documentation changes:
    • updates to documentation for TableModel, Notice2D, cache support for evaluating models, and low level optimization code
    • jupyter notebook uopdates
  • Infrastructure Changes:
    • the master branch has been migrated from master to main
    • updates to support numpy 1.20
    • updates to support astropy 4.2.1
    • updates to support matplotlib 3.4
    • test infrastructure clean up and updates
  • bug fixes:
    • fix an issue with cache evaluation on 1D models using integrated bins
    • fix for aarch64 build issue
    • fix to sherpa citation command
    • fix to honor clearwindow setting for plot_source
    • fix errors from save_data when the output file exists
    • fix build issues using gcc 7.3 with -Werror=format-security compilation flag
    • fix for reg_proj and reg_unc erroring out when the min or max arguments are tuples rather than lists

Details

#754 - sample_flux now returns statistic values for each row
The sample_flux command now returns a statistic value for each iteration,
even if those rows are not used in the reported flux distribution. Fixes #751.

#769 - add basic cache tracking
Adds the cache_status and cache_clear methods to models for verifying the
cache behavior (this is only expected to be used in rare cases). The cache
code has seen documentation improvements.

#946 - rework stats tests
Update the stats tests to use pytest.

#960 - Fix model evaluation when changing the integrate setting (fix #958)
Fixes an issue with cache evaluation on 1D models using integrated bins and
the user has changed the integrate setting of the model.

#978 - Use C99 def for INFINITY, NAN, isfinite and isnan to build on aarch64 (fix issue #970)
Use the math constants (IFINITIY, NAN) and funcs (isfinite, isnan, signbit)
from a C99 compliant compiler if the compiler option -std=c99 or greater is
used, otherwise use the quantities as defined by the library.

#991 - lint changes
Applies a number of flake8-reported warnings to the code base (e.g. excessive
or missing spaces and new lines).

#1000 - Improve sherpa.citation (fix #994 #987)
Fixes the sherpa.citation() command with its default argument (issue #994) and
adds release 4.12.2 to the hard-coded list of releases. A typo in a warning
message was fixed (#987).

#1001 - Allow command-line arguments for sherpa_test
Allow command-line arguments to be passed to the sherpa_test script. This allows
running optional tests (e.g. the --runzenodo argument) and to configure the
pytest configuration (e.g. to run coverage checks with --cov sherpa).

#1002 - Fix error with clobber=False for paging - issue #996
Fix an error with clobber=False when the output file exists for several paging
commands (e.g. show_data and sherpa.citation). Instead of getting a Sherpa IOErr
being raised a NameError was being raised.

#1003 - Fix serialization of iter method data - issue #997
If set_iter_fit_method has been called with a value other than 'none' then the
output of save_all would be incorrect for the options for the iter-fit method.

#1004- flake8 F811 - fix repeated test names
Clean up of several test files to fix repeated test names.

#1005 - Add explicit get/set_datadir routines to sherpa.utils.testing
Internal changes to how the test data directory location is set and queried,
including removing direct support from SherpaTestCase. Added tests for some
of this functionality, and updated several test files to remove SherpaTestCase
or use the new datadir functionality.

#1008 - rm warning msgs, fix issue #980
Fix the compiler warning messages, by defining kwlist to be static const then
use the C++ const_cast to remove the const to conform to PyArg_ParseTupleAnd
Keywords prototype

#1012 - Tests: allow test_ui tests to be run with pytest-xdist
Allow the tests to be run with pytest-xdist.

#1016 - Jupyter notebook representation not ideal if model components don't have unique names - issue: #1013
Fix an error in the HTML display of a model (used in the notebook) when two
model components have the same name.

#1017 - reword remark on normalization of Lorentz function
Updated the comments pertaining to Lorentz function for clarity

#1018 - Fix ShekelModifiedInit missing init par vals
This PR fixes the missing initial fitted parameter values for the
ShekelModifiedInit function. A fix for issue #1011

#1028 - Update region lib code to correct build issues with gcc 7.3.0 compile
Corrects issue building with gcc 7.3.0+ compilers with the
-Werror=format-security compilation flag

#1034 - Add contextmanager and docs on how to control the output level of sherpa
Sherpa uses logging for much of its output, this adds a docs and a context
manager for controlling the output level for a particular piece of code.

#1039 - Add docs for basic.TableModel
Added missing documentation for TableModel class

#1049 - CI: pip submodule test to report coverage
Report the coverage data from the pip CI run. This only changes the GitHub
Actions runs.

#1053 - Release 4.13.0
Updates to support the 4.13.0 release

#1054 - Post 4.13.0 updates
Updates the Zenodo DOI reference in the README.md to include 4.13.0.

#1057 - Fix plot_source clearwindow setting
The plot_source function was ignoring the clearwindow parameter (always using
True) in calls to plot_source for non-PHA data. This was only for
sherpa.astro.ui.plot_source (so sherpa.ui.plot_source did not have this problem).

#1058 - Store the opstr of model combinations (unary and binary)
Store the operator string as well as the operator when creating the unary and
binary operator expressions for models.

#1062 - Minor code cleanup of sherpa.astro.ui.utils
The sherpa.astro.ui.utils module has seen a number of minor clean-ups, addressing
pylint-reported issues.

#1067 - Improve testing of sherpa.astro.ui.utils
Improve coverage of the sherpa.astro.ui.utils and require pytest 3.9.0 or later
for testing Sherpa.

#1068 - clean up typos in sherpa/plot code
Fixed several typos noticed while reviewing plot related fix for #1057

#1072 - Update load_data to match load_pha for PHA2 data
Ensure that load_data behaves like load_pha when given a PHA2 dataset.

#1076 - sample_flux now uses the id argument
The sample_flux routine now uses the id argument rather than always using the
data from the default dataset. Fixes #752

#1078 - Add error checking for exceptional cases for sample_flux
Ensure that sample_flux errors out if the Xrays argument is False (as this code
path is currently broken) or if the confidence argument is invalid.

#1082 - Improve documentation for notice2d
Minor improvements to the documentation of notice2d and ignore2d set of commands.
Fixes #1059

#1086 - Use the logging infrastructure for sample_flux output
The screen output from sample_flux is now generated by the Sherpa logger and
so can be hidden by the user if required.

#1088 - Allow two optimization test to pass
Address an issue in the optimization tests that meant two tests were failing.
This only changes the test code and makes no change to the behavior of the
optimizers.

#1092- Numpy 1.20 warnings
Avoid test failures due to new warnings added by NumPy 1.20

#1094 - Cleanup multi-plot code
Rework the code that handles the plot_fit_xxx and plot_bkg_fit_xxx calls.
There should be no user-visible changes.

#1096 - Reduce direct access to plot objects
Changes to the internals of the plot code, to access information via methods
rather than direct access, which improves encapsulation and reduces code
repetition.

#1098 - Bump DS9 version to 8.2 for CI
Bump DS9 version used in CI tests from 8.1 to 8.2.

#1100 - Address reg_proj and reg_unc failures (fix #1093)
Calls to reg_proj and reg_unc could error out when the min or max arguments
were set to tuples rather than lists. The code now converts these attributes
to lists, which can result in changes to the string output of the objects (use
of '[]' brackets rather than '()'). Fixes #1093

#1101 - Address upper limit issues with sample_flux (fix #457)
sample_flux no-longer excludes samples at the parameter bounds (soft) when
calculating the flux distribution. This could lead to an over-estimation of
the flux for upper limits (Fix #457).

#1104 - Add basic documentation for the low-level optimization code
Add and update documentation on the interfaces used by the low-level
optimization code. Ensure that the plot classes are fully included in the
documentation.

#1105 - Consolidate and harmonize the validation of dataset identifiers
Simplify the code used to validate dataset identifiers. Several names can
no-longer be used as an identifier ('astrocompmodel', 'astrocompsource',
'astrodata', 'astromodel', 'astrosource', 'model_component', and
'source_component') and two can now be used ('energy' and 'photon').

#1108 - Read RMFs where N_CHAN is an array
Allow the pyfits backend to read a wider range of RMF files

#1111 - Minor test updates
Minor updates to the test code, including a small enhancement to the tests run by
the smoke_test command.

#1112: XSPEC: require model evaluation to be sent low and high grid values
XSPEC model classes must now be evaluated with bin edges - that is with
...

Read more

Sherpa 4.13.0

08 Jan 17:07
Compare
Choose a tag to compare

Sherpa 4.13.0

This release of Sherpa coincides with the CIAO 4.13 release. The release contains a few minor documentation updates, a version number update to coincide with CIAO version 4.13.0, and infrastructure changes to migrate from Travis-CI to GitHub Actions for testing. No additional functionality has been introduced.

Details

#1043 - RTD: install more packages via pip
Install sphinx-astropy and ipykernel via pip instead of Conda for the Read the Docs
builds to avoid current indirect requirement conflicts.

#1035 - Travis to GitHub Actions
Replaces the Travis test infrastructure with two GitHub Actions workflows.

#1036 - Cleaned up several typos in the RELEASE_NOTES file
Updates the RELEASE_NOTES file to correct several typos.

#1038 - Docs: note Python version and new build status
Updates the build status badge to track GitHub Actions rather than Travis-CI and
report the python versions as 3.6, 3.7, and 3.8.

Sherpa 4.12.2

27 Oct 19:16
Compare
Choose a tag to compare

Sherpa 4.12.2

This release of Sherpa serves as the baseline release of Sherpa for CIAO 4.13. It contains numerous enhancements and fixes including items which are stand alone sherpa specific. Notable highlights include:

  • plotting improvements
    • improved support for matplotlib (linestyle changes in matplotlib 3.3, support of alpha channels)
    • overplot support for plot_fit_* plt_bkg_fit_*
    • updates to histograms, residual plots
  • data I/O and data handling
    • several bug fixes to handling of the PHA, ARF, RMF files
  • modeling
    • support for regrid models in the binary expressions
    • improvements and bug fixes to background treatment in spectral models
    • improvements in the flux calculations and resampling
    • added the Voigt model
  • documentation changes
    • improvements to Sherpa display in IPython/Jupyter notebooks
    • updates to the content of the docstrings for generation of ahelp files

Details

Testing and infrastructure fixes are not shown.

#483 - An initial release of simultaneous fit on multicores (slower for most…
Distributes the evaluations of the multiple independent data sets using the
multi-cores built-in the user's workstation. The current default setting for this
PR is to evaluate the multiple independent data sets sequentially since the
overhead for distributing the workload across multi-cores is high if the evaluation
of the data sets is not time consuming.

#631 - Add HTML representations of common classes for IPython display (fix #345)
An initial version of HTML display support for Sherpa objects for users of
IPython/Jupyter notebooks.

#634 - Added invitation for native software citation
Adds a citation method to the sherpa module and updates CITATION to refer to this
new functionality

#693 - Address matplotlib linestyle removal in Matplotlib version 3.3
Matplotlib version 3.3 now requires you to split out the drawstyle and linestyle
arguments. This set of PRs changes the code so that the two arguments are now set:
linestyle defaults to solid and drawstyle to default for plots and step-mid for
histograms. This appears to replicate the old version, and should be backwards
compatible (drawstyle is supported in Matplotlib 2.2.5 and 1.5.3)

#709 - Residual-style plots ignore the ylog setting (fi#586)
Residual, ratio, and delchi plots always use a linear scale for the y axis, no
matter what the ylog setting is.

#740 - resample_data: when the error range on a bin includes -1 and no-longer restrict
sampling to +/-1 sigma
Fixes resample_data/ReSampleData so that it correctly handles bins where the range
of data values (i.e. low to high limit) includes the value -1.

#741 - Fix issue 638, guess needs to update fwhm/sigma bounds
Adds support for guessing the fwhm or sigma parameters of the Gauss2D,
NormGauss2D, and SigmaGauss2D models

#750 - Add xspec convolution api
Adds support for XSPEC convolution-style models - this link is valid for XSPEC
12.10.1 documentation

#765 - Add docs for setting up all dependencies of the source build with conda
Adds documentation on how to use conda to install source build dependencies

#766 - No error for no-ops in ungroup and friends
Removes DataErrs when ungrouping a dataset that is not grouped or unsubtracting
a dataset that was not subtracted

#770 - Replace EmissionVoigt/AbsorptionVoigt models by Voigt model (fix #597)
Replaces the EmissionVoigt and AbsorptionVoigt models with a single model,
Voigt1D. The EmissionVoigt and AbsorptionVoigt models will error out when an
instance is created, pointing users to Voigt1D (as the parameter definitions
have changed).

#772 - Add XSPEC 12.11.0 support (HEAsoft 6.27)
Adds support for XSPEC 12.11.0 (released March 31 2020)

#782 - Add a pyproject.toml file
Adds a pyproject.toml file to the top level (PEP 518) to document build
requirements

#789 - fix issue #788, fit using moncar with verbose=1 and/or numcores!=1
Fixes NameError in moncar when verbose setting >0

#791 - Fix ignore/notice error-ing out when all bins have been set bad #790
Allow notice and ignore to be called on a dataset which has no "good" bins
after ignore_bad has been called

#793 - Accept masked arrays for Data XXX creation
Allows use the mask of numpy arrays when initializing DataXXX

#803 - Updates to sampling of energy and photon fluxes: bug fixes and calculate
unabsorbed components
Fixes and improvements to the energy_flux and photon_flux set of commands:
sample_energy_flux, sample_photon_flux, plot_energy_flux, plot_photon_flux,
get_energy_flux_hist, and get_photon_flux_hist

#811 - Remove all future imports
Removes future imports that were in place when sherpa supported python 2

#812 - Add unsubtract and ungroup to datastack
Adds corresponding unsubtract and ungroup methods to match subtract and group

#815 - fix typo in rst docs
Fixes a typo in the rst docs

#821 - Add hyperlink to similarly named SHERPA package
Documentation update to include a link to thethe similarly named package "SHERPA"
for hyperparameter tuning of machine learning models

#842 - Fix scaling of staterror when reading PHA file with rate instead of counts
Fixes scaling of STAT_ERR when reading a PHA spectra with a RATES column instead of
COUNTS

#845 - xspec table models: add out-of-bound check to avoid segfault
Adds explicit out of bounds checks to avoid segv when calling an Xspec table model

#851 - Updates to the Read-The-Docs build environment
Update the Read-The-Docs configuration to the latest version (2), and switch to a
cleaner build (using conda) for the documentation. The minimum Sphinx requirement is
now 1.8 (updated from 1.3).

#856 - Support setting the id value in load_pha with pha2 files (fix #666)
Updates load_pha to set the data ids of PHA2 datasets to: id to id + nfiles - 1
(when id is an integer), or "{}1".format(id) to "{}{}".format(id, nfiles) when id
is a string.

#858 - Minor documentation improvements to ReadTheDocs
Adds minor updates to the convolution, regrid, and model evaluation sections of
the ReadTheDocs documentation

#859 - Clean up of the XSPEC interface code
Internal changes to the XSPEC interface code, which reduces the amount of similar
(sometimes identical) code. There is no change to the behavior of the XSPEC models.

#865 - Minor documentation fixes
Several documentation fixes: XSPEC parameter names, avoiding confusion over links on
references (Sphinx pages), and adding some basic documentation to the
sherpa.astro.background module

#866 - Add parameter-clipping strategy to routines that generate samples (fix #846)
The addition of the clip parameter lets users control how parameter values are
clipped before use in sample_energy_flux, sample_photon_flux, plot_energy_flux,
plot_photon_flux, get_energy_flux_hist, and get_photon_flux_hist.

#868 - Add delete_pileup_model (fix #441), list_pileup_model_ids, list_psf_ids functions,
fix list_models (fix #749)
Add the delete_pileup_model() function to allow a pileup model to be removed from
a fit (issue #441), and list_psf_ids() and list_pileup_model_ids() routines to list
those datasets with an associated PSF or pileup model. The list_models() routine
no-longer returns an iterator but a list when given an option (issue #749).

#871 - Add MacOS LDFLAGS warning to devdocs
Copies the warning about setting PYTHON_LDFLAGS from the install page to the
developer docs

#884 - Move logic from ui layer to DataPHA class: background responses (fix #879, #880)
Moves the logic for adding a background response, if one doesn't exist, from the UI
layer to the DataPHA class to clear up several edge cases

#888 - Support vector backscales and bugfix for background modeling
Supports fitting backgrounds to PHA datasets which have a variable BACKSCAL array
(rather than a scalar), which can come from combining spectra (e.g. the CIAO contrib
script combine_spectra) or from the data extraction process. In doing so a number of
routines related to the scaling of background-to-source aperture data have seen
adjustments to behavior and some enhanced functionality (such as
sherpa.astro.ui.get_bkg_scale and the sherpa.astro.data.DataPHA.get_background_scale
method).

#897 - Add support for XSPEC 12.11.1
Allows Sherpa to be built against XSPEC 12.11.1. There are no new or changed models
in this release compared to XSPEC 12.11.0.

#899 - Update likelihood descriptions
Updates likelihood description in several doc-strings and clarifies descriptions
of statistics.

#900 - Ensure that 1D and 2D models are not combined in an expression.
Checks that models have the correct dimensionality when combining them, so
expressions like gauss2d.src + const1d.bgnd will now raise a ModelErr.

#906 - Improve and add support for histogram plots
Updates to the display of histogram-style plots, in particular for 1D integrated
datasets and some model display for PHA data. The histograms now cover the full
length of each bin (previously they only showed half the bin for the first and
last bins), and gaps in the histogram (where the high edge of a bin is less than
the lower edge of the next bin) are now correctly displayed.

#907 - FEATURE: support alpha transparency for matplotlib plots
Supports the 'alpha' preference setting for most plots and contours generated
by Matplotlib

#909 - Refactor: remove _get_model/source methods
Removes the get...

Read more

Sherpa 4.12.1

14 Jul 16:05
Compare
Choose a tag to compare

Sherpa 4.12.1

This release of Sherpa supports a patch for CIAO 4.12. This release is driven by fixes that were deemed necessary to warrant a patch to sherpa in the CIAO 4.12 release. The changes include issues which had the potential of impacting users by either stopping an analysis session or providing incorrect or potentially confusing results, particularly in the area of grating analysis and multiple datasets. Additionally, this patch includes several fixes and improvements such as initial support for Python 3.8.

This version of Sherpa has been tested with Python 3.5, 3.6, and 3.7. There has been limited python 3.8 testing as well.

Details

Testing and infrastructure fixes have been omitted

#832 - Support building with NumPy 1.19
Compatibility updates for numpy v1.19 with regards to numpy.distutils and tostring deprecation

#781 - Docs: fix typo in docstring for calc_kcorr
Fixed a typo in docstring for calc_kcorrFix a typo in the documentation
for calc_kcorr: change "0." to "0.5" in one of the examples.

#759 - revert PR #444 (caching)
Revert the ARF cache added in #444, as well as some of the related code
changes, as they caused problems with Analysis in wavelength space
(e.g. #746)

#756 - calculate_photon_flux/calculate_energy_flux fix and improvement
Bug fixes and improvements for calculate_photon_flux and calculate_energy_flux:
- address flux and flux-density calculation issues discussed (fix #619)
- fix documentation of the lo and hi arguments (fix #308)
- add model parameter to calc_photon/energy_flux which allows users to
easily calculate "unabsorbed" fluxes

#747 - reworked regrid to eval usr grid, but 0 every where else
Modifies the 1D grid implementation to evaluate over the user-supplied
range, anything outside that is set to 0

#745 - ensure that min/max limits are applied to linked parameters before use
Enforce parameter restrictions (they must lie within their min/max range)
even when the parameter is linked to another (which has a different range).

#739 - Post 4.12.0 Updates
Update readme to include DOI for 4.12.0

#738 - Release 4.12.0
Merge the 4.12 Release into master

#737 - Update copyright year for the documentation
Read-The-Docs: update copyright year

#735 - Remove ChIPS support
Remove the ChIPS plotting code and configuration options from the code base

#734 - Change datastack query_by_header_keyword to not error if keyword is missing
Change the sherpa.astro.datastack query_by_header_keyword routine so that
it skips data sets which do not have the keyword, rather than raising a
KeyError. This also affects query_by_obsid.

#733 - fix a bug with fit(cache=False) passing the runtime option while fitting
#732 - Remove unused Python 2.7 compatibility code
Remove unused code from the removal of Python 2.7 support.

#696 - Support python 3.8
Updates to the support python 3.8 including
- remove syntax warnings from use of is with a literal
- remove deprecation warnings about PY_SSIZE_T_CLEAN
- fix index error (use scalar indexes)
- update the documentation to highlight initial python 3.8 support

Sherpa 4.12.0

30 Jan 14:28
Compare
Choose a tag to compare

Sherpa 4.12.0

This release of Sherpa is based on the CIAO 4.12 release and includes additional
bug fixes and improvements.

This version of Sherpa has been tested with Python 3.5, 3.6, and 3.7.

This release also provides support for XSPEC 12.10.1 (patch 'a' or later) in
addition to versions 12.10.0 (included in CIAO) and version 12.9.1.

Details

Documentation and infrastructure fixes are not shown.

#388 - Address indexing DeprecationWarning/IndexError from NumPy for PHA data with filter + ignore_bad (fix #361)

#602 - Reduce integration tol
Changed integration routine tolerance from double epsilon to float epsilon
since opt routines hove tolerance of ~ 1.0e-7

#606 - stop using numpy.typeNA which is now deprecated
A numpy deprecation warning was fixed by removing the usage of typeNA, which
was not documented and will be removed in a future release of numpy. The
print_fields function has been changed to include a default mapping using
the current typeNA implementation.

#608 - update ciao default plotter to matplotlib
The default Sherpa plotting package has been changed to matplotlib for
CIAO users as well (it had been the default for standalone users for
several years). The update will be applied to new users when the
sherpa command is run. Users of previous versions would need to
edit/regenerate the file.

#616 - enable run-time-option to test cache (default=True)
Capability to allow the user to turn off caching at runtime for testing
purpose.

#622 - Do not create warnings about error bars in plots if no error bars are to be shown (fix #621)
Remove the The displayed errorbars have been supplied with the data or
calculated using chi2xspecvar... warnings that appear for data,
residual/ratio, and fit plots when the user has explicitly turned off
the display of errorbars (by setting the yerrorbars plot-preference
setting to False).

#626 - add plot_fit_ratio and plot_bkg_fit_ratio functions
Add the plot_fit_ratio function to the sherpa.ui layer (to match
plot_fit_resid and plot_fit_delchi) and plot_bkg_fit_ratio to the
sherpa.astro.ui layer. Added tests for a number of plot types.

#640 - fix 'tuple index out of range' error in the fit.est_errors method
Sherpa's Confidence class is confused if a parameter is frozen then
thawed after a fit resulting with an exception of the form: IndexError:
tuple index out of range. The error does not show up if conf is called
from the ui level

#647 - fix numpy hist warnings
When plotting a PDF Sherpa now calls numpy.histogram with density=True |
False rather than normed=True|False. There is no change visible to the
user other than a warning that will not be issued anymore. normed=True
was broken for non uniform bins, but our code always produces uniform
bins, so we should never hit the problematic case.

#658 - Handle files with MJD_OBS or MJD-OBS keywords (datastack module)
The sherpa.astro.datastack module has been updated to deal with files
that use the MJD-OBS keyword instead of MJD_OBS. This is only used by
the show_stack routine, which prints out several keywords from each
file in the stack.

#665 - Remove python 2.7 support (fix #498)
Remove support for Python 2.7 from Sherpa. The metadata used by pip now
requires python 3.5 or higher (but not version 4),

#667 - improve matplotlib plot_fit plots (order of data and model)
Changes to Zorder of plot objects drawn by matplotlib to be more readible

#674 - Add link/unlink parameter tests
This PR adds three tests for sherpa's un/link commands.

#677 - XSPEC: build against 12.10.1m by removing support for models
Remove support for XSrelline, XSrelline_lp, and XSrelline_lp_ext models.
These were added in 12.10.1 but removed in 12.10.1m. It does not seem
worth supporting just those versions where they were available.

#680 - Remove the unused parameter in sherpa.astro.optical.LogEmission model (fix #219)
Remove the unused parameter in the sherpa.astro.optical.LogEmission
model. The LogEmission model only has four parameters (fwhm, pos, flux
and skew) consistent within the calc method. The hidden parameter limit
and it doc were removed.

#682 - jointplot now respects the ratio argument (top plot is larger) with matplotlib backend
The matplotlib back end now makes the main (top) plot taller than the
secondary (bottom) plot when using the sherpa.ui.plot_fit_resid and
sherpa.ui.plot_fit_delchi routines (this also holds for the
sherpa.astro.ui variants).

#683 - Remove chips from the documentation
Remove mention of ChIPS from the documentation (both on read the docs
and in the sherpa.astro.ui and sherpa.ui modules), replacing with
matplotlib where appropriate.

#684 - Add default config options
Whenever an option is read from the configuration file (~/.sherpa.rc)
provide a default option in case the configuration file is missing
(or is missing this option).

#685 - raise ModelErr when model using Data1DInt have overlapping bins
Adds a check to regrid make sure the integrated bins do not overlap.
The PR is a fix for issue #569

#688 - Improve documentation and testing for get_source_plot when sent lo/hi arguments
Improve the documentation for the sherpa.astro.ui.get_source_plot routine,
describing how touse the result when the lo or hi arguments are sent.

#691 - add warning when chips is selected but cannot be imported (rebase of #648)
Sherpa now warns the user if Chips is selected as a backend but it is
not available in the installation

#692 - Allow users to override plot preferences when creating a plot
Change to allow kwargs to be specified to change plot preferences at
creation time

#698 - Add warnings in documentation about masked arrays
Updates docstring to indicate that sherpa doesn't support numpy masked
arrays

#701 - a fix for /data/lenin2/Test/CIAO4.11/SherpaRegressionBeta1/45
Enables the testers to turn on (or off) caching at runtime to test #444

#704 - change calc_ftest from delta dof to dof (similar to XSPEC) - fix for #641
Update to make sherpa's calc_ftest provide same results as XSPEC's
ftest (fix to #641)

#705 - modelCacher1d needs to have a couple of deep instead of shallow copy()
Update to make deep copy of cached function values (fix to #673)

#710 - Add warning about masked array to sherpa.astro.ui.load_arrays
Updates docstring to contain warning consistent with #698

#712 Minor typo in docs
Corrects a typo "is is" in the documentation.

#716 Fix for plot_cdf: plot() got an unexpected keyword argument 'clearwindpw'
Recent changes broke plot_cdf()due to a typo 'clearwindpw'. This update
corrects the typo.

#721 Docs: update installation notes for conda environment
Add a warning about the need to set PYTHON_LDFLAGS to ' ' on macOS when
building within an anaconda environment. This is a documentation-only
change.

#725 convert a list to np.array to avoid warning messages
Fixes issue #723 (a lot of warnings while running 'resample_data()' in
CIAO4.12 Sherpa)

#728 a fix cause using load_multi_arfs causes caching error
Fixes issue #717 (unable to fit if script uses load_multi_arfs/rmfs)