threeML.utils.spectrum package
Submodules
threeML.utils.spectrum.binned_spectrum module
- class threeML.utils.spectrum.binned_spectrum.BinnedSpectrum(counts, exposure, ebounds: ndarray | ChannelSet, count_errors: ndarray | None = None, sys_errors: ndarray | None = None, quality: Quality | None = None, scale_factor: float = 1.0, is_poisson: bool = False, mission: str | None = None, instrument: str | None = None, tstart: float | None = None, tstop: float | None = None)
Bases:
Histogram
- add_inverse_variance_weighted(other)
- clone(new_counts=None, new_count_errors=None, new_exposure=None, new_scale_factor=None)
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: ndarray | None
count error per channel
- Type:
return
- property counts: ndarray
counts per channel
- Type:
return
- property exposure: float
Exposure in seconds
- Returns:
exposure
- classmethod from_pandas(pandas_dataframe, exposure, scale_factor=1.0, is_poisson=False, mission=None, instrument=None)
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)
- Parameters:
time_series
use_poly
- Returns:
- property instrument: str
- property is_poisson: bool
- property mission: str
- property n_channel: int
- property n_channels: int
- property rate_errors: ndarray | None
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: ndarray
rates per channel
- Type:
return
- property scale_factor: float
- property sys_errors: ndarray
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)
make a pandas table from the spectrum.
- Parameters:
use_rate – if the table should use rates or counts
- Returns:
- property total_count: float
total counts
- Type:
return
- property total_count_error: float | None
total count error
- Type:
return
- property total_rate: float
total rate
- Type:
return
- property total_rate_error: float
total rate error
- Type:
return
- property tstart: float
- property tstop: float
- class threeML.utils.spectrum.binned_spectrum.BinnedSpectrumWithDispersion(counts, exposure, response: InstrumentResponse, count_errors: ndarray | None = None, sys_errors: ndarray | None = None, quality=None, scale_factor: float = 1.0, is_poisson: bool = False, mission: str | None = None, instrument: str | None = None, tstart: float | None = None, tstop: float | None = None)
Bases:
BinnedSpectrum
- clone(new_counts=None, new_count_errors=None, new_sys_errors=None, new_exposure=None, new_scale_factor=None)
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)
- Parameters:
time_series
use_poly
- Returns:
- property response: InstrumentResponse
- class threeML.utils.spectrum.binned_spectrum.Channel(start: float, stop: float, swap_if_inverted: bool = False)
Bases:
Interval
- property channel_width
- class threeML.utils.spectrum.binned_spectrum.ChannelSet(list_of_intervals=())
Bases:
IntervalSet
- property channels_widths
- classmethod from_instrument_response(instrument_response)
Build EBOUNDS interval from an instrument response
- Parameters:
instrument_response
- Returns:
- class threeML.utils.spectrum.binned_spectrum.Quality(quality: ndarray)
Bases:
object
- property bad: ndarray
- classmethod create_all_good(n_channels)
construct a quality object with all good channels :param n_channels: :return:
- classmethod from_ogip(ogip_quality)
Read in quality from an OGIP file
- Parameters:
cls
ogip_quality
- Returns:
- get_slice(idx)
- property good: ndarray
- property n_elements: int
- to_ogip() ndarray
makes a quality array following the OGIP standards: 0 = good 2 = warn 5 = bad
- Returns:
- property warn: ndarray
threeML.utils.spectrum.binned_spectrum_set module
- class threeML.utils.spectrum.binned_spectrum_set.BinnedSpectrumSet(binned_spectrum_list, reference_time=0.0, time_intervals=None)[source]
Bases:
object
- property count_errors_per_bin
- property counts_per_bin
- property exposure_per_bin
- property n_channels
- property quality_per_bin
- property rate_errors_per_bin
- property rates_per_bin
- property reference_time
- property sys_errors_per_bin
- property time_intervals
threeML.utils.spectrum.pha_spectrum module
- class threeML.utils.spectrum.pha_spectrum.PHASpectrum(pha_file_or_instance: str | Path | PHAII | FITSFile, spectrum_number: int | None = None, file_type: str = 'observed', rsp_file: str | InstrumentResponse | None = None, arf_file: str | None = None)[source]
Bases:
BinnedSpectrumWithDispersion
- property ancillary_file: str | None
Returns the ancillary file definied in the header, or None if there is none defined
- Returns:
a path to a file, or None
- property background_file: None | str
Returns the background file definied in the header, or None if there is none defined p
- return:
a path to a file, or None
- clone(new_counts=None, new_count_errors=None, new_exposure=None, new_scale_factor=None) PHASpectrum [source]
make a new spectrum with new counts and errors and all other parameters the same
- Parameters:
new_exposure – the new exposure for the clone
new_scale_factor – the new scale factor for the clone
new_counts – new counts for the spectrum
new_count_errors – new errors from the spectrum
- Returns:
new pha spectrum
- property filename: str
- property grouping: ndarray
- property response_file: str | None
Returns the response file definied in the header, or None if there is none defined
- Returns:
a path to a file, or None
- property scale_factor: float
This is a scale factor (in the BACKSCAL keyword) which must be used to rescale background and source regions
- Returns:
- set_ogip_grouping(grouping) None [source]
If the counts are rebinned, this updates the grouping :param grouping:
- to_binned_spectrum() BinnedSpectrumWithDispersion [source]
Convert directly to as Binned Spectrum :returns:
- class threeML.utils.spectrum.pha_spectrum.PHASpectrumSet(pha_file_or_instance: str | Path | PHAII, file_type: str = 'observed', rsp_file: str | None = None, arf_file: str | None = None)[source]
Bases:
BinnedSpectrumSet
- property ancillary_file
Returns the ancillary file definied in the header, or None if there is none defined
- Returns:
a path to a file, or None
- property background_file
Returns the background file definied in the header, or None if there is none defined p
- return:
a path to a file, or None
- clone(new_counts=None, new_count_errors=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:
new pha spectrum
- property filename
- classmethod from_dispersion_spectrum(dispersion_spectrum: BinnedSpectrumWithDispersion, file_type: str = 'observed') PHASpectrum [source]
- property grouping
- property response_file
Returns the response file definied in the header, or None if there is none defined
- Returns:
a path to a file, or None
- property scale_factor
This is a scale factor (in the BACKSCAL keyword) which must be used to rescale background and source regions
- Returns:
threeML.utils.spectrum.spectrum_likelihood module
- class threeML.utils.spectrum.spectrum_likelihood.BinnedStatistic(spectrum_plugin)[source]
Bases:
object
- threeML.utils.spectrum.spectrum_likelihood.GaussianObservedGaussianBackgroundStatistic
alias of
NotAvailableStatistic
- class threeML.utils.spectrum.spectrum_likelihood.GaussianObservedStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic
- class threeML.utils.spectrum.spectrum_likelihood.NotAvailableStatistic(spectrum_plugin)[source]
Bases:
object
- class threeML.utils.spectrum.spectrum_likelihood.PoissonObservedGaussianBackgroundStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic
- class threeML.utils.spectrum.spectrum_likelihood.PoissonObservedIdealBackgroundStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic
- class threeML.utils.spectrum.spectrum_likelihood.PoissonObservedModeledBackgroundStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic
- property synthetic_background_plugin
- class threeML.utils.spectrum.spectrum_likelihood.PoissonObservedNoBackgroundStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic
- class threeML.utils.spectrum.spectrum_likelihood.PoissonObservedPoissonBackgroundStatistic(spectrum_plugin)[source]
Bases:
BinnedStatistic