spectrum - 1D spectrum analysis


gammapy.spectrum holds functions and classes related to 1D region based spectral analysis. This includes also simulation tools.

The basic of 1D spectral analysis are explained in this talk. A good reference for the forward-folding on-off likelihood fitting methods is Section 7.5 “Spectra and Light Curves” in [Naurois2012], in publications usually the reference [Piron2001] is used. A standard reference for the unfolding method is [Albert2007].

Getting Started

The following code snippet demonstrates how to load an observation stored in OGIP format and fit a spectral model.

import astropy.units as u
from gammapy.datasets import gammapy_extra
from gammapy.spectrum import SpectrumObservation, SpectrumFit, models

filename = '$GAMMAPY_EXTRA/datasets/hess-crab4_pha/pha_obs23592.fits'
obs = SpectrumObservation.read(filename)

model = models.PowerLaw(
    index=2 * u.Unit(''),
    amplitude=1e-12*u.Unit('cm-2 s-1 TeV-1'),
fit = SpectrumFit(obs_list=obs, model=model)

It will print the following output to the console:

Fit result info
Model: PowerLaw
Parameter(name='index', value=2.1473880540790522, unit=Unit(dimensionless), min=0, max=None, frozen=False)
Parameter(name='amplitude', value=2.7914083679020973e-11, unit=Unit("1 / (cm2 s TeV)"), min=0, max=None, frozen=False)
Parameter(name='reference', value=1.0, unit=Unit("TeV"), min=None, max=None, frozen=True)

Covariance: [[  6.89132245e-03   1.12566759e-13   0.00000000e+00]
 [  1.12566759e-13   7.26865610e-24   0.00000000e+00]
 [  0.00000000e+00   0.00000000e+00   0.00000000e+00]]

Statistic: 46.051 (wstat)
Fit Range: [  5.99484250e+08   1.00000000e+11] keV

Using gammapy.spectrum

For more advanced use cases please go to the tutorial notebooks:

The following pages describe gammapy.spectrum in more detail:


gammapy.spectrum Package

Spectrum estimation and modeling methods (1-dimensional, with an energy axis).


cosmic_ray_flux(energy[, particle]) Cosmic ray flux at Earth.
integrate_spectrum(func, xmin, xmax[, …]) Integrate 1d function using the log-log trapezoidal rule.


CountsPredictor(model[, aeff, edisp, …]) Calculate number of predicted counts (npred).
CountsSpectrum(energy_lo, energy_hi[, data, …]) Generic counts spectrum.
CrabSpectrum([reference]) Crab nebula spectral model.
FluxPointEstimator(obs, groups, model) Flux point estimator.
FluxPointFitter([stat, optimizer, …]) Fit a set of flux points with a parametric model.
FluxPoints(table) Flux points container.
PHACountsSpectrum(energy_lo, energy_hi[, …]) Counts spectrum corresponding to OGIP PHA format.
PHACountsSpectrumList List of PHACountsSpectrum objects.
SensitivityEstimator(irf, livetime[, slope, …]) Estimate differential sensitivity for the ON/OFF method, ie 1D analysis
SpectrumEnergyGroup(energy_group_idx, …) Spectrum energy group.
SpectrumEnergyGroupMaker(obs) Energy bin groups for spectral analysis.
SpectrumEnergyGroups([initlist]) List of SpectrumEnergyGroup objects.
SpectrumExtraction(obs_list, bkg_estimate[, …]) Creating input data to 1D spectrum fitting.
SpectrumFit(obs_list, model[, stat, …]) Orchestrate a 1D counts spectrum fit.
SpectrumFitResult(model[, fit_range, …]) Result of a SpectrumFit
SpectrumObservation(on_vector[, aeff, …]) 1D spectral analysis storage class.
SpectrumObservationList([initlist]) List of SpectrumObservation objects.
SpectrumObservationStacker(obs_list) Stack observations in a SpectrumObservationList.
SpectrumResult(model, points) Class holding all results of a spectral analysis
SpectrumSimulation(livetime, source_model[, …]) Simulate SpectrumObservation.
SpectrumStats(**kwargs) Spectrum stats.

gammapy.spectrum.models Module

Spectral models for Gammapy.


SpectralModel Spectral model base class.
ConstantModel(const) Constant model
CompoundSpectralModel(model1, model2, operator) Represents the algebraic combination of two SpectralModel
PowerLaw([index, amplitude, reference]) Spectral power-law model.
PowerLaw2([amplitude, index, emin, emax]) Spectral power-law model with integral as amplitude parameter.
ExponentialCutoffPowerLaw([index, …]) Spectral exponential cutoff power-law model.
ExponentialCutoffPowerLaw3FGL([index, …]) Spectral exponential cutoff power-law model used for 3FGL.
PLSuperExpCutoff3FGL([index_1, index_2, …]) Spectral super exponential cutoff power-law model used for 3FGL.
LogParabola([amplitude, reference, alpha, beta]) Spectral log parabola model.
TableModel(energy, values[, scale, …]) A model generated from a table of energy and value arrays.
AbsorbedSpectralModel(spectral_model, …[, …]) Spectral model with EBL absorption.
Absorption(energy_lo, energy_hi, param_lo, …) Gamma-ray absorption models.