threeML.utils.spectrum.binned_spectrum module

class threeML.utils.spectrum.binned_spectrum.BinnedSpectrum(counts, exposure, ebounds, count_errors=None, sys_errors=None, quality=None, scale_factor=1.0, is_poisson=False, mission=None, instrument=None, tstart=None, tstop=None)[source]

Bases: threeML.utils.histogram.Histogram

INTERVAL_TYPE

alias of threeML.utils.spectrum.binned_spectrum.Channel

add_inverse_variance_weighted(other)[source]
clone(new_counts=None, new_count_errors=None, new_exposure=None, new_scale_factor=None)[source]

make a new spectrum with new counts and errors and all other parameters the same

Parameters
  • new_counts – new counts for the spectrum

  • new_count_errors – new errors from the spectrum

Returns

property count_errors

count error per channel

Type

return

property counts

counts per channel

Type

return

property exposure

Exposure in seconds

Returns

exposure

classmethod from_pandas(pandas_dataframe, exposure, scale_factor=1.0, is_poisson=False, mission=None, instrument=None)[source]

Build a spectrum from data contained within a pandas data frame.

The required columns are:

‘emin’: low energy bin edge ‘emax’: high energy bin edge ‘counts’: the counts in each bin

Optional column names are:

‘count_errors’: errors on the counts for non-Poisson data ‘sys_errors’: systematic error per channel ‘quality’ list of 3ML quality flags ‘good’, ‘warn’, ‘bad’

Parameters
  • pandas_dataframe – data frame containing information to be read into spectrum

  • exposure – the exposure of the spectrum

  • scale_factor – the scale factor of the spectrum

  • is_poisson – if the data are Poisson distributed

  • mission – (optional) the mission name

  • instrument – (optional) the instrument name

Returns

classmethod from_time_series(time_series, use_poly=False, from_model=False, **kwargs)[source]
Parameters
  • time_series

  • use_poly

Returns

property instrument
property is_poisson
property mission
property n_channel
property n_channels
property quality
property rate_errors

If the spectrum has no Poisson error (POISSER is False in the header), this will return the STAT_ERR column :return: errors on the rates

property rates

rates per channel

Type

return

property scale_factor
property sys_errors

Systematic errors per channel. This is nonzero only if the SYS_ERR column is present in the input file.

Returns

the systematic errors stored in the input spectrum

to_pandas(use_rate=True)[source]

make a pandas table from the spectrum.

Parameters

use_rate – if the table should use rates or counts

Returns

property total_count

total counts

Type

return

property total_count_error

total count error

Type

return

property total_rate

total rate

Type

return

property total_rate_error

total rate error

Type

return

property tstart
property tstop
class threeML.utils.spectrum.binned_spectrum.BinnedSpectrumWithDispersion(counts, exposure, response, count_errors=None, sys_errors=None, quality=None, scale_factor=1.0, is_poisson=False, mission=None, instrument=None, tstart=None, tstop=None)[source]

Bases: threeML.utils.spectrum.binned_spectrum.BinnedSpectrum

clone(new_counts=None, new_count_errors=None, new_sys_errors=None, new_exposure=None, new_scale_factor=None)[source]

make a new spectrum with new counts and errors and all other parameters the same

Parameters
  • new_sys_errors

  • new_exposure

  • new_scale_factor

  • new_counts – new counts for the spectrum

  • new_count_errors – new errors from the spectrum

Returns

classmethod from_time_series(time_series, response=None, use_poly=False, extract=False)[source]
Parameters
  • time_series

  • use_poly

Returns

property response
class threeML.utils.spectrum.binned_spectrum.Channel(start: float, stop: float, swap_if_inverted: bool = False)[source]

Bases: threeML.utils.interval.Interval

property channel_width
class threeML.utils.spectrum.binned_spectrum.ChannelSet(list_of_intervals=())[source]

Bases: threeML.utils.interval.IntervalSet

INTERVAL_TYPE

alias of threeML.utils.spectrum.binned_spectrum.Channel

property channels_widths
classmethod from_instrument_response(instrument_response)[source]

Build EBOUNDS interval from an instrument response

Parameters

instrument_response

Returns

class threeML.utils.spectrum.binned_spectrum.Quality(quality)[source]

Bases: object

property bad
classmethod create_all_good(n_channels)[source]

construct a quality object with all good channels :param n_channels: :return:

classmethod from_ogip(ogip_quality)[source]
get_slice(idx)[source]
property good
property n_elements
to_ogip()[source]

makes a quality array following the OGIP standards: 0 = good 2 = warn 5 = bad

Returns

property warn