sherpa.astro.ui.set_quality(id, val=None, bkg_id=None)

Apply a set of quality flags to a PHA data set.

A quality value of 0 indicates a good channel, otherwise (values >=1) the channel is considered bad and can be excluded using the ignore_bad function, as discussed in [1].

  • id (int or str, optional) – The identifier for the data set to use. If not given then the default identifier is used, as returned by get_default_id.
  • val (array of int) – This must be an array of quality values of the same length as the data array.
  • bkg_id (int or str, optional) – Set if the quality values should be associated with the background associated with the data set.

sherpa.utils.err.ArgumentErr – If the data set does not contain a PHA data set.

See also

Fit one or more data sets.
Return the quality array for a PHA data set.
Exclude channels marked as bad in a PHA data set.
Load the quality array from a file and add to a PHA data set.
Apply a set of grouping flags to a PHA data set.


The function does not follow the normal Python standards for parameter use, since it is designed for easy interactive use. When called with a single un-named argument, it is taken to be the val parameter. If given two un-named arguments, then they are interpreted as the id and val parameters, respectively.


The meaning of the quality column is taken from [1], which says that 0 indicates a “good” channel, 1 and 2 are for channels that are identified as “bad” or “dubious” (respectively) by software, 5 indicates a “bad” channel set by the user, and values of 3 or 4 are not used.


[1](1, 2) “The OGIP Spectral File Format”,


Copy the quality array from data set 2 into the default data set, and then ensure that any ‘bad’ channels are ignored:

>>> qual = get_data(2).quality
>>> set_quality(qual)
>>> ignore_bad()

Copy the quality array from data set “src1” to the source and background data sets of “src2”:

>>> qual = get_data("src1").quality
>>> set_quality("src2", qual)
>>> set_quality("src2", qual, bkg_id=1)